diff options
Added files from project 1 (mirror)
1 files changed, 84 insertions, 0 deletions
| -rw-r--r-- | Year 1/Object-oriented Programming/Project 1/tests/Tests_Hall.h | 84 |
diff --git a/Year 1/Object-oriented Programming/Project 1/tests/Tests_Hall.h b/Year 1/Object-oriented Programming/Project 1/tests/Tests_Hall.h new file mode 100644 index 0000000..01e5979 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 1/tests/Tests_Hall.h @@ -0,0 +1,84 @@ +#include "../doctest/doctest/doctest.h" +#include "../src/Models/Hall.h" + +TEST_SUITE_BEGIN("ClassHall"); + +int number = 5; // valid values +unsigned rows = 10, seatsPerRow = 6; // valid values + +TEST_SUITE("Constructors") { + TEST_CASE("DefaultCtor_SetsValuesToZero_WhenCalled") { + Hall h; + + CHECK_EQ(h.get_number(), 0); + CHECK_EQ(h.get_rows(), 0); + CHECK_EQ(h.get_seatsPerRow(), 0); + } + TEST_CASE("NumberCtor_SetsNumberToParameterAndOthersToZeroes_WhenCalled") { + SUBCASE("NegativeNumber") { number = -843; } + SUBCASE("ZeroNumber") { number = 0; } + SUBCASE("PositiveNumber") { number = 571; } + + Hall h(number); + CHECK_EQ(h.get_number(), number); + } + TEST_CASE("Ctor_SetsValues_WhenGivenCorrectValues") { + SUBCASE("NegativeNumber") { number = -843; } + SUBCASE("ZeroNumber") { number = 0; } + SUBCASE("PositiveNumber") { number = 571; } + SUBCASE("ZeroRow") { rows = 0; } + SUBCASE("PositiveRow") { rows = 91; } + SUBCASE("ZeroSeatsPerRow") { seatsPerRow = 0; } + SUBCASE("PositiveSeatsPerRow") { seatsPerRow = 37; } + + Hall h(number, rows, seatsPerRow); + CHECK_EQ(h.get_number(), number); + CHECK_EQ(h.get_rows(), rows); + CHECK_EQ(h.get_seatsPerRow(), seatsPerRow); + } +} + +TEST_SUITE("GettersAndSetters") { + TEST_CASE("NumberGetter_ReturnsProperValue_WhenGivenCorrectValue") { + SUBCASE("CreatedWithZeroNumber") { number = 0; } + SUBCASE("CreatedWithPositiveNumber") { number = 473; } + SUBCASE("CretaedWithNegativeNumber") { number = -384; } + + Hall h(number, rows, seatsPerRow); + CHECK_EQ(h.get_number(), number); + } + TEST_CASE("RowsGetter_ReturnsProperValue_WhenGivenCorrectValue") { + SUBCASE("CreatedWithZeroRows") { rows = 0; } + SUBCASE("CreatedWithPositiveRows") { rows = 473; } + + Hall h(number, rows, seatsPerRow); + CHECK_EQ(h.get_rows(), rows); + } + TEST_CASE("SeatsPerRowGetter_ReturnsProperValue_WhenGivenCorrectValue") { + SUBCASE("CreatedWithZeroSeatsPerRow") { seatsPerRow = 0; } + SUBCASE("CreatedWithPositiveSeatsPerRow") { seatsPerRow = 473; } + + Hall h(number, rows, seatsPerRow); + CHECK_EQ(h.get_seatsPerRow(), seatsPerRow); + } +} + +TEST_SUITE("compare()") { + TEST_CASE("compare_ReturnsLessThanZero_WhenFirstHallNumberIsLessThanSecondHallNumber") { + Hall h1(number, rows, seatsPerRow), h2(number + 1, rows, seatsPerRow); + + CHECK_LT(h1.compare(h2), 0); + } + TEST_CASE("compare_ReturnsMoreThanZero_WhenFirstHallNumberIsMoreThanSecondHallNumber") { + Hall h1(number + 1, rows, seatsPerRow), h2(number, rows, seatsPerRow); + + CHECK_GT(h1.compare(h2), 0); + } + TEST_CASE("compare_ReturnsZero_WhenFirstHallNumberIsEqualToSecondHallNumber") { + Hall h1(number, rows, seatsPerRow), h2(number, rows, seatsPerRow); + + CHECK_EQ(h1.compare(h2), 0); + } +} + +TEST_SUITE_END(); |
