Files
2026-07-12 14:34:52 +04:00

69 lines
1.6 KiB
C++

#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"