diff --git a/iFacilityTests/tst_ifacilitytest.cpp b/iFacilityTests/tst_ifacilitytest.cpp index e6317de..18b0aa9 100644 --- a/iFacilityTests/tst_ifacilitytest.cpp +++ b/iFacilityTests/tst_ifacilitytest.cpp @@ -1,5 +1,8 @@ #include +#include +#include + #include "../iFacility/objects/profession.h" #include "../iFacility/objects/user.h" @@ -15,6 +18,7 @@ private slots: void test_user_add_profession(); void test_user_remove_profession(); void test_user_current_profession(); + void test_user_serialization(); }; @@ -39,8 +43,8 @@ void iFacilityTest::test_user_add_profession() { u.addProfession(p3); u.addProfession(p4); u.addProfession(p5); - QVERIFY(u.getProfessions().front() == p2); - QVERIFY(u.getProfessions().back() == p5); + QVERIFY(u.getProfessions().front() == p2.pID()); + QVERIFY(u.getProfessions().back() == p5.pID()); } void iFacilityTest::test_user_remove_profession() { @@ -68,6 +72,30 @@ void iFacilityTest::test_user_current_profession() { QVERIFY(u.getCurrentProfession() == p1.pID()); } +void iFacilityTest::test_user_serialization() { + QByteArray bytes; + QDataStream qdsw(&bytes, QIODevice::WriteOnly); + QDataStream qdsr(&bytes, QIODevice::ReadOnly); + + auto u1 = User::createUser("test", "test", "f", "s", "t"); + + auto p1 = Profession::createProfession("test1"); + auto p2 = Profession::createProfession("test2"); + + u1.addProfession(p1); + u1.addProfession(p2); + u1.setCurrentProfession(p1); + + qdsw << u1; + + User u2; + qdsr >> u2; + + QVERIFY(u1 == u2); + QVERIFY(u1.getProfessions() == u2.getProfessions()); + QVERIFY(u1.getCurrentProfession() == u2.getCurrentProfession()); +} + QTEST_APPLESS_MAIN(iFacilityTest) #include "tst_ifacilitytest.moc"