update test and test environment

This commit is contained in:
einhornimmond 2021-06-10 15:27:28 +02:00
parent e5c37606d2
commit 6f70d4c8b8
3 changed files with 82 additions and 9 deletions

View File

@ -2,14 +2,17 @@
#include "JSONInterface/JsonUpdateUserInfos.h"
#include "TestJsonUpdateUserInfos.h"
#include "lib/Profiler.h"
void TestJsonUpdateUserInfos::SetUp()
{
auto sm = SessionManager::getInstance();
sm->init();
//sm->init();
mUserSession = sm->getNewSession();
mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H");
auto user = controller::User::create();
user->getModel()->setEmail("Jeet_bb@gmail.com");
mUserSession->setUser(user);
}
void TestJsonUpdateUserInfos::TearDown()
@ -18,7 +21,6 @@ void TestJsonUpdateUserInfos::TearDown()
if (!mUserSession) {
sm->releaseSession(mUserSession);
}
sm->deinitalize();
}
Poco::JSON::Object::Ptr TestJsonUpdateUserInfos::chooseAccount(const Poco::JSON::Object::Ptr update)
@ -30,6 +32,7 @@ Poco::JSON::Object::Ptr TestJsonUpdateUserInfos::chooseAccount(const Poco::JSON:
return params;
}
TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword)
{
JsonUpdateUserInfos jsonCall;
@ -42,6 +45,11 @@ TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword)
auto errors = result->get("errors");
ASSERT_TRUE(errors.isArray());
auto valid_values_obj = result->get("valid_values");
ASSERT_TRUE(valid_values_obj.isInteger());
int valid_values = 0;
valid_values_obj.convert(valid_values);
ASSERT_EQ(valid_values, 0);
//User.password_old not found
Poco::JSON::Array error_array = errors.extract<Poco::JSON::Array>();
@ -50,3 +58,54 @@ TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword)
delete result;
}
TEST_F(TestJsonUpdateUserInfos, OnlyOldPassword)
{
JsonUpdateUserInfos jsonCall;
Poco::JSON::Object::Ptr update = new Poco::JSON::Object;
update->set("User.password_old", "TestP4ssword&H");
auto params = chooseAccount(update);
auto result = jsonCall.handle(params);
auto errors = result->get("errors");
ASSERT_TRUE(errors.isArray());
auto valid_values_obj = result->get("valid_values");
ASSERT_TRUE(valid_values_obj.isInteger());
int valid_values = 0;
valid_values_obj.convert(valid_values);
ASSERT_EQ(valid_values, 0);
Poco::JSON::Array error_array = errors.extract<Poco::JSON::Array>();
ASSERT_EQ(error_array.size(), 0);
delete result;
}
TEST_F(TestJsonUpdateUserInfos, WrongPassword)
{
JsonUpdateUserInfos jsonCall;
mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H");
Poco::JSON::Object::Ptr update = new Poco::JSON::Object;
update->set("User.password", "newPassword");
update->set("User.password_old", "TestP4sswordH");
auto params = chooseAccount(update);
Profiler timeUsed;
auto result = jsonCall.handle(params);
ASSERT_GE(timeUsed.millis(), ServerConfig::g_FakeLoginSleepTime-200);
auto errors = result->get("errors");
ASSERT_TRUE(errors.isArray());
auto valid_values_obj = result->get("valid_values");
ASSERT_TRUE(valid_values_obj.isInteger());
int valid_values = 0;
valid_values_obj.convert(valid_values);
ASSERT_EQ(valid_values, 0);
Poco::JSON::Array error_array = errors.extract<Poco::JSON::Array>();
ASSERT_EQ(error_array.size(), 1);
ASSERT_EQ(error_array.getElement<std::string>(0), "User.password_old didn't match");
delete result;
}

View File

@ -16,7 +16,7 @@ protected:
Poco::JSON::Object::Ptr chooseAccount(const Poco::JSON::Object::Ptr update);
Session* mUserSession;
std::string mEmail;
};

View File

@ -17,6 +17,8 @@
#include "../lib/Profiler.h"
#include "Crypto/SecretKeyCryptography.h"
std::list<Test*> gTests;
@ -85,6 +87,9 @@ int load(int argc, char* argv[]) {
ServerConfig::g_CPUScheduler = new UniLib::controller::CPUSheduler(worker_count, "Default Worker");
ServerConfig::g_CryptoCPUScheduler = new UniLib::controller::CPUSheduler(2, "Crypto Worker");
ServerConfig::g_disableEmail = true;
SessionManager::getInstance()->init();
// load up connection configs
// register MySQL connector
@ -129,6 +134,13 @@ int load(int argc, char* argv[]) {
}
}
printf("measure Time for secret key generation...\n");
Profiler timeForArgon2;
SecretKeyCryptography secret_cryptografie;
secret_cryptografie.createKey("test.email@gmx.de", "skaSI2WSEIs/");
ServerConfig::g_FakeLoginSleepTime = timeForArgon2.millis();
printf("time for secret key generation: %s\n", timeForArgon2.string().data());
std::string log_Path = "/var/log/grd_login/";
//#ifdef _WIN32
#if defined(_WIN32) || defined(_WIN64)
@ -150,7 +162,6 @@ int load(int argc, char* argv[]) {
log.error("Test Error");
SessionManager::getInstance()->init();
//errorLog
@ -226,7 +237,7 @@ int run()
return 0;
}
void ende()
void endegTests()
{
for (std::list<Test*>::iterator it = gTests.begin(); it != gTests.end(); it++)
{
@ -236,7 +247,7 @@ void ende()
}
gTests.clear();
SessionManager::getInstance()->deinitalize();
}
@ -254,10 +265,13 @@ int main(int argc, char** argv)
//printf ("\nStack Limit = %ld and %ld max\n", limit.rlim_cur, limit.rlim_max);
run();
ende();
::testing::InitGoogleTest(&argc, argv);
endegTests();
::testing::InitGoogleTest(&argc, argv);
auto result = RUN_ALL_TESTS();
SessionManager::getInstance()->deinitalize();
ServerConfig::unload();
return result;
}