forked from loafle/openapi-generator-original
252 lines
6.8 KiB
C++
252 lines
6.8 KiB
C++
#include "UserApiTests.h"
|
|
|
|
#include <QJsonDocument>
|
|
#include <QNetworkAccessManager>
|
|
#include <QNetworkReply>
|
|
#include <QDebug>
|
|
#include <QRandomGenerator>
|
|
UserApiTests::UserApiTests () {}
|
|
|
|
UserApiTests::~UserApiTests () {
|
|
exit(0);
|
|
}
|
|
|
|
OAIUserApi* UserApiTests::getApi() {
|
|
auto api = new OAIUserApi();
|
|
api->setHost("http://petstore.swagger.io");
|
|
return api;
|
|
}
|
|
|
|
void UserApiTests::runTests() {
|
|
UserApiTests* tests = new UserApiTests();
|
|
QTest::qExec(tests);
|
|
delete tests;
|
|
}
|
|
|
|
OAIUser UserApiTests::createRandomUser() {
|
|
OAIUser user;
|
|
user.setId(QDateTime::currentMSecsSinceEpoch());
|
|
user.setEmail(QString("Jane.Doe@openapitools.io"));
|
|
user.setFirstName(QString("Jane"));
|
|
user.setLastName(QString("Doe"));
|
|
user.setPhone(QString("123456789"));
|
|
user.setUsername(QString("janedoe"));
|
|
user.setPassword(QString("secretPassword"));
|
|
user.setUserStatus(static_cast<int>(QRandomGenerator::system()->generate()));
|
|
return user;
|
|
}
|
|
|
|
void UserApiTests::createUserTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(14000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this]() {
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::createUserSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
|
|
api->createUser(createRandomUser());
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::createUsersWithArrayInputTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(14000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this]() {
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::createUsersWithArrayInputSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
QList<OAIUser> users;
|
|
users.append(createRandomUser());
|
|
users.append(createRandomUser());
|
|
users.append(createRandomUser());
|
|
api->createUsersWithArrayInput(users);
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::createUsersWithListInputTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(14000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this]() {
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::createUsersWithListInputSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
QList<OAIUser> users;
|
|
auto johndoe = createRandomUser();
|
|
johndoe.setUsername(QString("johndoe"));
|
|
auto rambo = createRandomUser();
|
|
rambo.setUsername(QString("rambo"));
|
|
users.append(johndoe);
|
|
users.append(rambo);
|
|
users.append(createRandomUser());
|
|
api->createUsersWithListInput(users);
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::deleteUserTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(14000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this]() {
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::deleteUserSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
|
|
api->deleteUser(QString("rambo"));
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::getUserByNameTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(30000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this](OAIUser summary) {
|
|
qDebug() << summary.getUsername();
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::getUserByNameSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
|
|
api->getUserByName(QString("johndoe"));
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::loginUserTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(30000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this](QString summary) {
|
|
qDebug() << summary;
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::loginUserSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
|
|
api->loginUser(QString("johndoe"), QString("123456789"));
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::logoutUserTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(30000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this]() {
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::logoutUserSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
|
|
api->logoutUser();
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|
|
|
|
void UserApiTests::updateUserTest(){
|
|
auto api = getApi();
|
|
QEventLoop loop;
|
|
QTimer timer;
|
|
timer.setInterval(30000);
|
|
timer.setSingleShot(true);
|
|
|
|
auto validator = [this]() {
|
|
emit quit();
|
|
};
|
|
auto finalizer = [&]() {
|
|
loop.quit();
|
|
};
|
|
connect(this, &UserApiTests::quit, finalizer);
|
|
connect(api, &OAIUserApi::updateUserSignal, this, validator);
|
|
connect(&timer, &QTimer::timeout, &loop, finalizer);
|
|
|
|
auto johndoe = createRandomUser();
|
|
johndoe.setUsername(QString("johndoe"));
|
|
api->updateUser(QString("johndoe"), johndoe);
|
|
timer.start();
|
|
loop.exec();
|
|
QVERIFY2(timer.isActive(), "didn't finish within timeout");
|
|
disconnect(this, nullptr, nullptr, nullptr);
|
|
delete api;
|
|
}
|