diff --git a/iFacilityProject.pro b/iFacilityProject.pro index 6659ec0..45367a7 100644 --- a/iFacilityProject.pro +++ b/iFacilityProject.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs SUBDIRS += \ - iFacility + iFacility \ + iFacilityTests diff --git a/iFacilityTests/iFacilityTests.pro b/iFacilityTests/iFacilityTests.pro new file mode 100644 index 0000000..18b452e --- /dev/null +++ b/iFacilityTests/iFacilityTests.pro @@ -0,0 +1,14 @@ +QT += testlib +QT -= gui + +CONFIG += qt console warn_on depend_includepath testcase +CONFIG -= app_bundle + +TEMPLATE = app + +SOURCES += tst_ifacilitytest.cpp \ + ..\iFacility\objects\profession.cpp \ + ..\iFacility\objects\user.cpp + +HEADERS += ..\iFacility\objects\profession.h \ + ..\iFacility\objects\user.h diff --git a/iFacilityTests/tst_ifacilitytest.cpp b/iFacilityTests/tst_ifacilitytest.cpp new file mode 100644 index 0000000..e6317de --- /dev/null +++ b/iFacilityTests/tst_ifacilitytest.cpp @@ -0,0 +1,73 @@ +#include + +#include "../iFacility/objects/profession.h" +#include "../iFacility/objects/user.h" + +class iFacilityTest : public QObject { +private: + Q_OBJECT + +public: + iFacilityTest() = default; + ~iFacilityTest() = default; + +private slots: + void test_user_add_profession(); + void test_user_remove_profession(); + void test_user_current_profession(); + +}; + + + +void iFacilityTest::test_user_add_profession() { + auto u = User::createUser("test", "test", "f", "s", "t"); + + auto p1 = Profession::createProfession("test1"); + auto p2 = Profession::createProfession("test2"); + auto p3 = Profession::createProfession("test3"); + auto p4 = Profession::createProfession("test4"); + auto p5 = Profession::createProfession("test5"); + + u.addProfession(p1); + QVERIFY(u.getProfessions().size() == 1); + + u.addProfession(p1); + QVERIFY(u.getProfessions().size() == 1); + + u.addProfession(p2); + u.addProfession(p3); + u.addProfession(p4); + u.addProfession(p5); + QVERIFY(u.getProfessions().front() == p2); + QVERIFY(u.getProfessions().back() == p5); +} + +void iFacilityTest::test_user_remove_profession() { + auto u = User::createUser("test", "test", "f", "s", "t"); + + auto p1 = Profession::createProfession("test1"); + + u.addProfession(p1); + QVERIFY(u.getProfessions().size() == 1); + + u.removeProfession(p1); + QVERIFY(u.getProfessions().isEmpty()); +} + +void iFacilityTest::test_user_current_profession() { + auto u = User::createUser("test", "test", "f", "s", "t"); + + auto p1 = Profession::createProfession("test1"); + auto p2 = Profession::createProfession("test2"); + + u.addProfession(p1); + + QVERIFY(!u.setCurrentProfession(p2)); + QVERIFY(u.setCurrentProfession(p1)); + QVERIFY(u.getCurrentProfession() == p1.pID()); +} + +QTEST_APPLESS_MAIN(iFacilityTest) + +#include "tst_ifacilitytest.moc"