Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 1 / tests / Tests_Event.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_Event.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, 89 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Project 1/tests/Tests_Event.h89
diff --git a/Year 1/Object-oriented Programming/Project 1/tests/Tests_Event.h b/Year 1/Object-oriented Programming/Project 1/tests/Tests_Event.h
new file mode 100644
index 0000000..a27142a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/tests/Tests_Event.h
@@ -0,0 +1,89 @@
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+#include "../doctest/doctest/doctest.h"
+#include "../src/Models/Event.h"
+#include "../src/Generic/String/String.h"
+
+TEST_SUITE_BEGIN("ClassEvent");
+
+TEST_SUITE("Constructors") {
+ TEST_CASE("DefaultCtor_CallsDefaultCtorsOnData_WhenCalled") {
+ Event e;
+
+ CHECK_EQ(e.get_hall().compare(Hall()), 0);
+ CHECK_EQ(e.get_name().compare(String()), 0);
+ CHECK_EQ(e.get_date().compare(Date()), 0);
+ }
+ TEST_CASE("Ctor_SavesParameters_WhenCalledWithProperParameters") {
+ Hall h(1, 2, 3);
+ String n("Test");
+ Date d(21, 3, 2012);
+
+ Event e(h, n, d);
+ CHECK_EQ(e.get_hall().compare(h), 0);
+ CHECK_EQ(e.get_name().compare(n), 0);
+ CHECK_EQ(e.get_date().compare(d), 0);
+ }
+}
+
+TEST_SUITE("GettersAndSetters") {
+ TEST_CASE("HallGetter_ReturnsProperHall_WhenCreatedWithProperHall") {
+ Hall h(1, 2, 3);
+ String n("Test");
+ Date d(21, 3, 2012);
+
+ Event e(h, n, d);
+ CHECK_EQ(e.get_hall().compare(h), 0);
+ }
+
+ TEST_CASE("NameGetter_ReturnsProperName_WhenCreatedWithProperName") {
+ Hall h(1, 2, 3);
+ String n("Test");
+ Date d(21, 3, 2012);
+
+ Event e(h, n, d);
+ CHECK_EQ(e.get_name().compare(n), 0);
+ }
+
+ TEST_CASE("DateGetter_ReturnsProperDate_WhenCreatedWithProperDate") {
+ Hall h(1, 2, 3);
+ String n("Test");
+ Date d(21, 3, 2012);
+
+ Event e(h, n, d);
+ CHECK_EQ(e.get_date().compare(d), 0);
+ }
+
+ TEST_CASE("TicketsGetter_ReturnsEmptyList_WhenCreatedWithDefaultCtor") {
+ Event e;
+
+ CHECK_EQ(e.get_tickets().get_count(), 0);
+ }
+
+ TEST_CASE("ReservationsGetter_ReturnsEmptyList_WhenCreatedWithDefaultCtor") {
+ Event e;
+
+ CHECK_EQ(e.get_reservations().get_count(), 0);
+ }
+}
+
+TEST_SUITE("compare()") {
+ TEST_CASE("compare_ReturnsCompareBetweenHallsAndDates_WhenCalled") {
+ Hall h1(1, 2, 3), h2(3, 4, 5);
+ Date d1(1, 4, 2009), d2(19, 5, 2010);
+
+ SUBCASE("HallIsLessThanOtherHall") {}
+ SUBCASE("HallIsBiggerThanOtherHall") { Hall temp = h2; h2 = h1; h1 = temp; }
+ SUBCASE("HallsAreEqual") { h1 = h2; }
+ SUBCASE("HallsAreEqualAndDateIsLessThanOther") {}
+ SUBCASE("HallsAreEqualAndDateIsMoreThanOther") { Date temp = d2; d2 = d1; d1 = temp; }
+ SUBCASE("HallsAreEqualAndDatesAreEqual") { h1 = h2; d1 = d2; }
+ Event e1(h1, "Test1", d1), e2(h2, "Test2", d2);
+
+ if (h1.compare(h2) == 0)
+ CHECK_EQ(e1.compare(e2), d1.compare(d2));
+ else
+ CHECK_EQ(e1.compare(e2), h1.compare(h2));
+ }
+}
+
+TEST_SUITE_END();