Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 1 / tests / Tests_Hall.h
diff options
context:
space:
mode:
Commit24bdf39e6c21ab846f6c86803761d78a094e05c0 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-26 20:31:26 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-26 20:31:26 +0300
Files1b2077b088098cc7ae6afc946b10a4d680110294 /Year 1/Object-oriented Programming/Project 1/tests/Tests_Hall.h
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.tar
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.tar.gz
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.zip
Parentcbe944835cc0951a946d01f034b4d28ff9874a4e (diff)
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.h84
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();