diff options
Diffstat (limited to 'Source/charon/tests/linked_list_test.c')
-rw-r--r-- | Source/charon/tests/linked_list_test.c | 104 |
1 files changed, 90 insertions, 14 deletions
diff --git a/Source/charon/tests/linked_list_test.c b/Source/charon/tests/linked_list_test.c index ca3cd6b54..f6254b991 100644 --- a/Source/charon/tests/linked_list_test.c +++ b/Source/charon/tests/linked_list_test.c @@ -103,7 +103,7 @@ void test_linked_list(tester_t *tester) /* * Description in header-file */ -void test_linked_list_forward_iterator(tester_t *tester) +void test_linked_list_iterator(tester_t *tester) { bool has_next; linked_list_element_t * element; @@ -116,39 +116,115 @@ void test_linked_list_forward_iterator(tester_t *tester) linked_list->insert_first(linked_list,"five"); linked_list_iterator_t * iterator; + linked_list_iterator_t * iterator2; - tester->assert_true(tester,(linked_list->create_iterator(linked_list,&iterator,TRUE) == SUCCESS), "create_iterator call check"); + tester->assert_true(tester,(linked_list->create_iterator(linked_list,&iterator,TRUE) == SUCCESS), "create_iterator for it 1 call check"); iterator->has_next(iterator,&has_next); - tester->assert_true(tester,has_next, "has_next value check"); + tester->assert_true(tester,has_next, "it 1 has_next value check"); iterator->current(iterator,&element); - tester->assert_true(tester,(strcmp((char *) element->value,"five") == 0), "current value check"); + tester->assert_true(tester,(strcmp((char *) element->value,"five") == 0), "it 1 current value check"); iterator->has_next(iterator,&has_next); - tester->assert_true(tester,has_next, "has_next value check"); + tester->assert_true(tester,has_next, "it 1 has_next value check"); iterator->current(iterator,&element); - tester->assert_true(tester,(strcmp((char *) element->value,"four") == 0), "current value check"); + tester->assert_true(tester,(strcmp((char *) element->value,"four") == 0), "it 1 current value check"); + + tester->assert_true(tester,(linked_list->create_iterator(linked_list,&iterator2,FALSE) == SUCCESS), "create_iterator for it 2 call check"); + + iterator2->has_next(iterator2,&has_next); + tester->assert_true(tester,has_next, "it 2 has_next value check"); + iterator2->current(iterator2,&element); + tester->assert_true(tester,(strcmp((char *) element->value,"one") == 0), "it 2 current value check"); iterator->has_next(iterator,&has_next); - tester->assert_true(tester,has_next, "has_next value check"); + tester->assert_true(tester,has_next, "it 1 has_next value check"); iterator->current(iterator,&element); - tester->assert_true(tester,(strcmp((char *) element->value,"three") == 0), "current value check"); + tester->assert_true(tester,(strcmp((char *) element->value,"three") == 0), "it 1 current value check"); + + iterator2->has_next(iterator2,&has_next); + tester->assert_true(tester,has_next, "it 2 has_next value check"); + iterator2->current(iterator2,&element); + tester->assert_true(tester,(strcmp((char *) element->value,"two") == 0), "it 2 current value check"); iterator->has_next(iterator,&has_next); - tester->assert_true(tester,has_next, "has_next value check"); + tester->assert_true(tester,has_next, "it 1 has_next value check"); iterator->current(iterator,&element); - tester->assert_true(tester,(strcmp((char *) element->value,"two") == 0), "current value check"); + tester->assert_true(tester,(strcmp((char *) element->value,"two") == 0), "it 1 current value check"); + + iterator2->has_next(iterator2,&has_next); + tester->assert_true(tester,has_next, "it 2 has_next value check"); + iterator2->current(iterator2,&element); + tester->assert_true(tester,(strcmp((char *) element->value,"three") == 0), "it 2 current value check"); iterator->has_next(iterator,&has_next); - tester->assert_true(tester,has_next, "has_next value check"); + tester->assert_true(tester,has_next, "it 1 has_next value check"); iterator->current(iterator,&element); - tester->assert_true(tester,(strcmp((char *) element->value,"one") == 0), "current value check"); + tester->assert_true(tester,(strcmp((char *) element->value,"one") == 0), "it 1 current value check"); iterator->has_next(iterator,&has_next); - tester->assert_false(tester,has_next, "has_next value check"); + tester->assert_false(tester,has_next, "it 1 has_next value check"); + + iterator2->has_next(iterator2,&has_next); + tester->assert_true(tester,has_next, "it 2 has_next value check"); + iterator2->has_next(iterator2,&has_next); + tester->assert_true(tester,has_next, "it 2 has_next value check"); + iterator2->has_next(iterator2,&has_next); + tester->assert_false(tester,has_next, "it 2 has_next value check"); - tester->assert_true(tester,(iterator->destroy(iterator) == SUCCESS), "destroy call check"); + tester->assert_true(tester,(iterator->destroy(iterator) == SUCCESS), "it 1 destroy call check"); + + tester->assert_true(tester,(iterator2->destroy(iterator2) == SUCCESS), "it 2 destroy call check"); + + linked_list->destroy(linked_list); +} + + /* + * Description in header-file + */ +void test_linked_list_insert_and_remove(tester_t *tester) +{ + bool has_next; + linked_list_element_t * element; + linked_list_iterator_t * iterator; + + linked_list_t *linked_list = linked_list_create(); + linked_list->insert_first(linked_list,"one"); + linked_list->insert_first(linked_list,"two"); + + linked_list->insert_first(linked_list,"three"); + linked_list->insert_first(linked_list,"four"); + linked_list->insert_first(linked_list,"five"); + + + + linked_list->create_iterator(linked_list,&iterator,TRUE); + + iterator->has_next(iterator,&has_next); + iterator->has_next(iterator,&has_next); + iterator->has_next(iterator,&has_next); + iterator->current(iterator,&element); + tester->assert_true(tester,(strcmp((char *) element->value,"three") == 0), "current value check"); + + tester->assert_true(tester,(linked_list->insert_before(linked_list,element,"before_three") == SUCCESS), "insert_before call check"); + + tester->assert_true(tester,(linked_list->insert_after(linked_list,element,"after_three") == SUCCESS), "insert_after call check"); + + tester->assert_true(tester,(linked_list->remove(linked_list,element) == SUCCESS), "remove call check"); + + iterator->reset(iterator); + + iterator->has_next(iterator,&has_next); + iterator->has_next(iterator,&has_next); + iterator->has_next(iterator,&has_next); + iterator->current(iterator,&element); + tester->assert_true(tester,(strcmp((char *) element->value,"before_three") == 0), "current value check"); + iterator->has_next(iterator,&has_next); + iterator->current(iterator,&element); + tester->assert_true(tester,(strcmp((char *) element->value,"after_three") == 0), "current value check"); + + iterator->destroy(iterator); linked_list->destroy(linked_list); } |