Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 1 / tests / Tests_Hall.h
blob: 01e597932299ac18a2e131c6fcef5522911f4544 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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();