Made tests for features of 462bd42

This commit is contained in:
E. Kozlovskaya 2021-01-04 18:55:48 +07:00
parent 462bd42521
commit 91a5de78e9
3 changed files with 157 additions and 7 deletions

View file

@ -6,11 +6,14 @@
#include "../iFacility/objects/userprofession.h"
#include "../iFacility/objects/profession.h"
#include "../iFacility/objects/user.h"
#include "../iFacility/db/database.h"
class iFacilityTest : public QObject {
private:
Q_OBJECT
User sampleUser;
public:
iFacilityTest() = default;
~iFacilityTest() = default;
@ -21,6 +24,11 @@ private slots:
void test_user_current_profession();
void test_user_serialization();
void test_db_add_user();
void test_db_get_user_by_uid();
void test_db_get_user_by_login();
void test_db_get_users_by_type();
void test_db_get_users_gy_profession();
};
@ -97,6 +105,65 @@ void iFacilityTest::test_user_serialization() {
QVERIFY(u1.getCurrentProfession() == u2.getCurrentProfession());
}
void iFacilityTest::test_db_add_user() {
// 3 administrators (except u7), 1 dispatcher and 2 workers (for later)
auto u1 = User::createUser("adm1", "test", UserType::ADMINISTRATOR, "f", "s", "t");
auto u2 = User::createUser("adm2", "test", UserType::ADMINISTRATOR, "f", "s", "t");
auto u3 = User::createUser("disp1", "test", UserType::DISPATCHER, "f", "s", "t");
auto u4 = User::createUser("worker1", "test", UserType::WORKER, "f", "s", "t");
auto u5 = User::createUser("worker2", "test", UserType::WORKER, "f", "s", "t");
auto u6 = User::createUser("adm3", "test", UserType::ADMINISTRATOR, "f", "s", "t");
auto u7 = User::createUser("adm1", "test", UserType::ADMINISTRATOR, "f", "s", "t");
QVERIFY(Database::instance()->addUser(u1)); // ok
QVERIFY(Database::instance()->addUser(u2)); // ok
QVERIFY(Database::instance()->addUser(u3)); // ok
QVERIFY(Database::instance()->addUser(u4)); // ok
QVERIFY(Database::instance()->addUser(u5)); // ok
QVERIFY(Database::instance()->addUser(u6)); // ok
QVERIFY(!Database::instance()->addUser(u7)); // u7 and u1 has same login
sampleUser = u1; // saved for later
}
void iFacilityTest::test_db_get_user_by_uid() {
auto usr1 = Database::instance()->getUser(sampleUser.uID());
UID nonExistentUuid = 0;
auto usr2 = Database::instance()->getUser(nonExistentUuid);
QVERIFY(usr1 != nullptr);
QVERIFY(usr2 == nullptr);
}
void iFacilityTest::test_db_get_user_by_login() {
auto usr1 = Database::instance()->getUser(sampleUser.getLogin());
QString nonExistentLogin = "not_really_exists";
auto usr2 = Database::instance()->getUser(nonExistentLogin);
QVERIFY(usr1 != nullptr);
QVERIFY(usr2 == nullptr);
}
void iFacilityTest::test_db_get_users_by_type() {
auto admins = Database::instance()->getUsersByType(UserType::ADMINISTRATOR);
auto dispatchers = Database::instance()->getUsersByType(UserType::DISPATCHER);
auto workers = Database::instance()->getUsersByType(UserType::WORKER);
QVERIFY(admins.size() == 3);
QVERIFY(dispatchers.size() == 1);
QVERIFY(workers.size() == 2);
}
void iFacilityTest::test_db_get_users_gy_profession() {
auto usr1 = Database::instance()->getUser(sampleUser.getLogin());
Profession p = Profession::createProfession("test_prof");
usr1->addProfession(p, 3);
auto usrs = Database::instance()->getUsersByProfession(p);
QVERIFY(usrs.size() == 1);
QVERIFY(usr1 == usrs[0]);
}
QTEST_APPLESS_MAIN(iFacilityTest)
#include "tst_ifacilitytest.moc"