Update tests to prevent memory leakage (#4164)

Install C and C++ tools in Travis
This commit is contained in:
sunn
2019-10-17 11:48:35 +02:00
committed by GitHub
parent c32fa5d012
commit f901a84743
9 changed files with 122 additions and 147 deletions

View File

@@ -3,12 +3,6 @@
#include <QTest>
#include <QTimer>
OAIPetApi* PetApiTests::getApi() {
auto api = new OAIPetApi();
api->setHost("http://petstore.swagger.io");
return api;
}
OAIPet PetApiTests::createRandomPet() {
OAIPet pet;
qint64 id = QDateTime::currentMSecsSinceEpoch();
@@ -19,11 +13,12 @@ OAIPet PetApiTests::createRandomPet() {
}
void PetApiTests::findPetsByStatusTest() {
OAIPetApi* api = getApi();
OAIPetApi api;
api.setHost(PetStoreHost);
QEventLoop loop;
bool petFound = false;
connect(api, &OAIPetApi::findPetsByStatusSignal, [&](QList<OAIPet> pets) {
connect(&api, &OAIPetApi::findPetsByStatusSignal, [&](QList<OAIPet> pets) {
petFound = true;
foreach(OAIPet pet, pets) {
QVERIFY(pet.getStatus().startsWith("available") || pet.getStatus().startsWith("sold"));
@@ -31,19 +26,19 @@ void PetApiTests::findPetsByStatusTest() {
loop.quit();
});
api->findPetsByStatus({"available", "sold"});
api.findPetsByStatus({"available", "sold"});
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFound, "didn't finish within timeout");
delete api;
}
void PetApiTests::createAndGetPetTest() {
OAIPetApi* api = getApi();
OAIPetApi api;
api.setHost(PetStoreHost);
QEventLoop loop;
bool petCreated = false;
connect(api, &OAIPetApi::addPetSignal, [&]() {
connect(&api, &OAIPetApi::addPetSignal, [&]() {
// pet created
petCreated = true;
loop.quit();
@@ -52,30 +47,30 @@ void PetApiTests::createAndGetPetTest() {
OAIPet pet = createRandomPet();
qint64 id = pet.getId();
api->addPet(pet);
api.addPet(pet);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petCreated, "didn't finish within timeout");
bool petFetched = false;
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
QVERIFY(pet.getId() > 0);
QVERIFY(pet.getStatus().compare("freaky") == 0);
loop.quit();
petFetched = true;
});
api->getPetById(id);
api.getPetById(id);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched, "didn't finish within timeout");
delete api;
}
void PetApiTests::updatePetTest() {
OAIPetApi* api = getApi();
OAIPetApi api;
api.setHost(PetStoreHost);
OAIPet pet = createRandomPet();
OAIPet petToCheck;
@@ -83,13 +78,13 @@ void PetApiTests::updatePetTest() {
QEventLoop loop;
bool petAdded = false;
connect(api, &OAIPetApi::addPetSignal, [&](){
connect(&api, &OAIPetApi::addPetSignal, [&](){
petAdded = true;
loop.quit();
});
// create pet
api->addPet(pet);
api.addPet(pet);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petAdded, "didn't finish within timeout");
@@ -97,50 +92,49 @@ void PetApiTests::updatePetTest() {
// fetch it
bool petFetched = false;
connect(api, &OAIPetApi::getPetByIdSignal, this, [&](OAIPet pet) {
connect(&api, &OAIPetApi::getPetByIdSignal, this, [&](OAIPet pet) {
petFetched = true;
petToCheck = pet;
loop.quit();
});
// create pet
api->getPetById(id);
api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched, "didn't finish within timeout");
// update it
bool petUpdated = false;
connect(api, &OAIPetApi::updatePetSignal, [&]() {
connect(&api, &OAIPetApi::updatePetSignal, [&]() {
petUpdated = true;
loop.quit();
});
// update pet
petToCheck.setStatus(QString("scary"));
api->updatePet(petToCheck);
api.updatePet(petToCheck);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petUpdated, "didn't finish within timeout");
// check it
bool petFetched2 = false;
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
petFetched2 = true;
QVERIFY(pet.getId() == petToCheck.getId());
QVERIFY(pet.getStatus().compare(petToCheck.getStatus()) == 0);
loop.quit();
});
api->getPetById(id);
api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched2, "didn't finish within timeout");
delete api;
}
void PetApiTests::updatePetWithFormTest() {
OAIPetApi* api = getApi();
OAIPetApi api;
api.setHost(PetStoreHost);
OAIPet pet = createRandomPet();
OAIPet petToCheck;
@@ -149,54 +143,52 @@ void PetApiTests::updatePetWithFormTest() {
// create pet
bool petAdded = false;
connect(api, &OAIPetApi::addPetSignal, [&](){
connect(&api, &OAIPetApi::addPetSignal, [&](){
petAdded = true;
loop.quit();
});
api->addPet(pet);
api.addPet(pet);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petAdded, "didn't finish within timeout");
// fetch it
bool petFetched = false;
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
petFetched = true;
petToCheck = pet;
loop.quit();
});
api->getPetById(id);
api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched, "didn't finish within timeout");
// update it
bool petUpdated = false;
connect(api, &OAIPetApi::updatePetWithFormSignal, [&](){
connect(&api, &OAIPetApi::updatePetWithFormSignal, [&](){
petUpdated = true;
loop.quit();
});
QString name("gorilla");
api->updatePetWithForm(id, name, nullptr);
api.updatePetWithForm(id, name, nullptr);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petUpdated, "didn't finish within timeout");
// fetch it
bool petUpdated2 = false;
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
petUpdated2 = true;
QVERIFY(pet.getName().compare(QString("gorilla")) == 0);
loop.quit();
});
api->getPetById(id);
api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petUpdated2, "didn't finish within timeout");
delete api;
}