diff --git a/test/system/test_interactions/ignore_and_return.yml b/test/system/test_interactions/ignore_and_return.yml index 44fdaa8..17f95be 100644 --- a/test/system/test_interactions/ignore_and_return.yml +++ b/test/system/test_interactions/ignore_and_return.yml @@ -167,4 +167,163 @@ function(1, 2, 3); } + - :pass: TRUE + :should: 'we can override an ignore with an expect and pass' + :code: | + test() + { + bar_Ignore(); + + bar_Expect(2); + foo_ExpectAndReturn(1, 50); + foo_ExpectAndReturn(2, 60); + foo_ExpectAndReturn(3, 70); + TEST_ASSERT_EQUAL(180, function(1, 2, 3)); + + bar_Expect(5); + foo_ExpectAndReturn(4, 30); + foo_ExpectAndReturn(5, 80); + foo_ExpectAndReturn(6, 10); + TEST_ASSERT_EQUAL(120, function(4, 5, 6)); + + bar_Expect(8); + foo_ExpectAndReturn(7, 70); + foo_ExpectAndReturn(8, 20); + foo_ExpectAndReturn(9, 20); + TEST_ASSERT_EQUAL(110, function(7, 8, 9)); + } + + - :pass: FALSE + :should: 'we can override an ignore with an expect and fail' + :code: | + test() + { + bar_Ignore(); + + bar_Expect(2); + foo_ExpectAndReturn(1, 50); + foo_ExpectAndReturn(2, 60); + foo_ExpectAndReturn(3, 70); + TEST_ASSERT_EQUAL(180, function(1, 2, 3)); + + bar_Expect(5); + foo_ExpectAndReturn(4, 30); + foo_ExpectAndReturn(5, 80); + foo_ExpectAndReturn(6, 10); + TEST_ASSERT_EQUAL(120, function(4, 5, 6)); + + bar_Expect(9); + foo_ExpectAndReturn(7, 70); + foo_ExpectAndReturn(8, 20); + foo_ExpectAndReturn(9, 20); + TEST_ASSERT_EQUAL(110, function(7, 8, 9)); + } + + - :pass: TRUE + :should: 'we can override an ignore and return with an expect and pass' + :code: | + test() + { + bar_Ignore(); + foo_IgnoreAndReturn(30); + TEST_ASSERT_EQUAL(90, function(1, 2, 3)); + + bar_Expect(5); + foo_ExpectAndReturn(4, 30); + foo_ExpectAndReturn(5, 80); + foo_ExpectAndReturn(6, 10); + TEST_ASSERT_EQUAL(120, function(4, 5, 6)); + + bar_Expect(8); + foo_ExpectAndReturn(7, 70); + foo_ExpectAndReturn(8, 20); + foo_ExpectAndReturn(9, 20); + TEST_ASSERT_EQUAL(110, function(7, 8, 9)); + } + + - :pass: FALSE + :should: 'we can override an ignore and return with an expect and fail' + :code: | + test() + { + bar_Ignore(); + foo_IgnoreAndReturn(0); + TEST_ASSERT_EQUAL(0, function(1, 2, 3)); + + bar_Expect(5); + foo_ExpectAndReturn(4, 30); + foo_ExpectAndReturn(5, 80); + foo_ExpectAndReturn(6, 10); + TEST_ASSERT_EQUAL(120, function(4, 5, 6)); + + bar_Expect(9); + foo_ExpectAndReturn(7, 70); + foo_ExpectAndReturn(8, 20); + foo_ExpectAndReturn(9, 20); + TEST_ASSERT_EQUAL(110, function(7, 8, 9)); + } + + - :pass: TRUE + :should: 'we can override an an expect with an ignore' + :code: | + test() + { + bar_Expect(5); + bar_Ignore(); + foo_ExpectAndReturn(1, 50); + foo_ExpectAndReturn(2, 60); + foo_ExpectAndReturn(3, 70); + TEST_ASSERT_EQUAL(180, function(1, 2, 3)); + } + + - :pass: TRUE + :should: 'we can override an expect with an ignore and return and pass' + :code: | + test() + { + bar_Ignore(); + foo_IgnoreAndReturn(0); + TEST_ASSERT_EQUAL(0, function(1, 2, 3)); + + bar_Expect(5); + foo_ExpectAndReturn(4, 30); + foo_ExpectAndReturn(5, 80); + foo_IgnoreAndReturn(10); + TEST_ASSERT_EQUAL(120, function(4, 5, 6)); + + bar_Ignore(); + foo_IgnoreAndReturn(60); + TEST_ASSERT_EQUAL(180, function(7, 8, 9)); + } + + - :pass: FALSE + :should: 'we can override an expect with an ignore and return and fail after' + :code: | + test() + { + bar_Expect(5); + foo_ExpectAndReturn(4, 30); + foo_ExpectAndReturn(5, 50); + foo_IgnoreAndReturn(20); + TEST_ASSERT_EQUAL(100, function(4, 5, 6)); + + bar_Expect(5); + foo_ExpectAndReturn(9, 30); //THIS ONE WILL FAIL + foo_ExpectAndReturn(2, 80); + foo_ExpectAndReturn(3, 60); + TEST_ASSERT_EQUAL(170, function(1, 2, 3)); + } + + - :pass: TRUE + :should: 'we can override an expect with an ignore and return and the expected values are ignored' + :code: | + test() + { + bar_Expect(5); + foo_ExpectAndReturn(2, 30); //NOTE THIS WOULD NORMALLY FAIL + foo_ExpectAndReturn(5, 50); + foo_IgnoreAndReturn(20); //BUT WE SAID WE NO LONGER CARE + TEST_ASSERT_EQUAL(100, function(4, 5, 6)); + } + ...