diff --git a/test_stack.c b/test_stack.c index 3b4fc48..79d85cc 100644 --- a/test_stack.c +++ b/test_stack.c @@ -42,6 +42,40 @@ void test_topReturnsCorrectValues(void) { clearStack(testStack); } +void test_popRemovesCorrectly(void) { + printf("Starting third test...\n"); + StackNode* testStack = NULL; + int data1 = 1; + testStack = push(testStack, &data1); + int data2 = 0; + testStack = push(testStack, &data2); + int data3 = 3; + testStack = push(testStack, &data3); + int data4 = 9; + testStack = push(testStack, &data4); + + int* returnData1 = (int*) top(testStack); + testStack = pop(testStack); + int* returnData2 = (int*) top(testStack); + testStack = pop(testStack); + int* returnData3 = (int*) top(testStack); + testStack = pop(testStack); + int* returnData4 = (int*) top(testStack); + testStack = pop(testStack); + + size_t counter = 0; + if(*returnData1 == 9) + counter++; + if(*returnData2 == 3) + counter++; + if(*returnData3 == 0) + counter++; + if(*returnData4 == 1) + counter++; + TEST_ASSERT_EQUAL_INT(4, counter); + clearStack(testStack); +} + void setUp(void) { } @@ -57,6 +91,7 @@ int main(void) { printf("\n----------------------------Stack-Tests----------------------------\n"); RUN_TEST(test_firstNodeAddedCorrectly); RUN_TEST(test_topReturnsCorrectValues); + RUN_TEST(test_popRemovesCorrectly); return UNITY_END(); } \ No newline at end of file