Initial commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
#include "reservation_manager.h"
|
||||
#include <QtTest>
|
||||
|
||||
class ReservationManagerTest : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
void testReserveFailure();
|
||||
void testReserveSuccess();
|
||||
void testReserveBound();
|
||||
};
|
||||
|
||||
void ReservationManagerTest::testReserveFailure() {
|
||||
DayManager dayManager(QTime(8, 0), QTime(9, 0));
|
||||
ReservationManager manager(3, 3, dayManager);
|
||||
|
||||
QDateTime begin;
|
||||
QTime end;
|
||||
|
||||
std::tie(begin, end) = manager.reserve(QTime(2, 0));
|
||||
QVERIFY(!begin.isValid());
|
||||
QVERIFY(!end.isValid());
|
||||
}
|
||||
|
||||
void ReservationManagerTest::testReserveSuccess() {
|
||||
DayManager dayManager(QTime(8, 0), QTime(9, 0));
|
||||
ReservationManager manager(3, 4, dayManager);
|
||||
|
||||
QDateTime begin;
|
||||
QTime end;
|
||||
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
std::tie(begin, end) = manager.reserve(QTime(1, 0));
|
||||
QVERIFY(begin.isValid());
|
||||
QVERIFY(end.isValid());
|
||||
}
|
||||
QCOMPARE(manager.days_.size(), 1);
|
||||
|
||||
const auto &keys = manager.days_.keys();
|
||||
auto it = std::find_if(keys.cbegin(), keys.cend(), [](const auto &key) {
|
||||
for (auto expected : {1, 2, 3, 4}) {
|
||||
if (key == expected) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
QVERIFY(it != keys.cend());
|
||||
}
|
||||
|
||||
void ReservationManagerTest::testReserveBound() {
|
||||
DayManager dayManager(QTime(8, 0), QTime(9, 0));
|
||||
ReservationManager manager(3, 4, dayManager);
|
||||
|
||||
QDateTime begin;
|
||||
QTime end;
|
||||
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
std::tie(begin, end) = manager.reserve(QTime(1, 0));
|
||||
QVERIFY(begin.isValid());
|
||||
QVERIFY(end.isValid());
|
||||
}
|
||||
QVERIFY(manager.days_.isEmpty());
|
||||
}
|
||||
|
||||
QTEST_MAIN(ReservationManagerTest)
|
||||
#include "reservation_manager_test.moc"
|
||||
Reference in New Issue
Block a user