#include "stack.h" #include "unity.h" void test_firstNodeAddedCorrectly(void) { printf("\nStarting first test...\n"); StackNode* modelStack = malloc(sizeof(StackNode)); int modelData = 5; modelStack->below = NULL; modelStack->stackData = &modelData; StackNode* testStack = NULL; int testData = 5; testStack = push(testStack, &testData); TEST_ASSERT_EQUAL_INT(*(int*)modelStack->stackData, *(int*)testStack->stackData); TEST_ASSERT_NULL(testStack->below); clearStack(modelStack); clearStack(testStack); } void test_topReturnsCorrectValues(void) { printf("Starting second test...\n"); StackNode* testStack = NULL; int data1 = 1; testStack = push(testStack, &data1); int* returnData1 = (int*) top(testStack); int data2 = 0; testStack = push(testStack, &data2); int* returnData2 = (int*) top(testStack); int data3 = 3; testStack = push(testStack, &data3); int* returnData3 = (int*) top(testStack); size_t counter = 0; if(*returnData1 == 1) counter++; if(*returnData2 == 0) counter++; if(*returnData3 == 3) counter++; TEST_ASSERT_EQUAL_INT(3, counter); 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) { } void tearDown(void) { } int main(void) { UNITY_BEGIN(); printf("\n----------------------------Stack-Tests----------------------------\n"); RUN_TEST(test_firstNodeAddedCorrectly); RUN_TEST(test_topReturnsCorrectValues); RUN_TEST(test_popRemovesCorrectly); return UNITY_END(); }