#include "easyunit/test.h" #include "stack.h" using namespace easyunit; TEST(Stack,Constructor) { Stack s; ASSERT_TRUE(s.size() == 0); ASSERT_TRUE(s.pull() == 0); } TEST(Stack, PushTop) { Stack s; s.push(1); ASSERT_TRUE(s.top() == 1); s.push(2); s.push(3); ASSERT_TRUE(s.top() == 3); } TEST(Stack, PushPull) { Stack s; s.push(1); ASSERT_TRUE(s.pull() == 1); s.push(2); s.push(3); s.pull(); // This test will fail ASSERT_TRUE(s.pull() == 2); } TEST(Stack, PushSize) { Stack s; s.push(1); ASSERT_TRUE(s.size() == 1); s.push(2); ASSERT_TRUE(s.size() == 2); } TEST(Stack, PushPullSize) { Stack s; s.push(1); s.push(2); s.pull(); // This is essentially the same tests ASSERT_TRUE(s.size() == 1); ASSERT_EQUALS(s.size(),1); // Display a message if this is a failure ASSERT_EQUALS_M(s.size(),1,"size != 1 but should == 1"); // Display the value of each parameter instead of the litteral // SimpleString StringFrom(type) method must be declared for // this type. // This would output: Expected: 1 but Actual: 2 ASSERT_EQUALS_V(s.size(),1); // See also ASSERT_EQUALS_DELTA s.pull(); s.pull(); if (s.size() < 0) { // This will add a failure FAIL_M("s.size() < 0"); } }