forked from loafle/openapi-generator-original
Update tests to prevent memory leakage (#4164)
Install C and C++ tools in Travis
This commit is contained in:
parent
c32fa5d012
commit
f901a84743
15
.travis.yml
15
.travis.yml
@ -94,16 +94,11 @@ before_install:
|
|||||||
# - Rely on `kerl` for [pre-compiled versions available](https://docs.travis-ci.com/user/languages/erlang#Choosing-OTP-releases-to-test-against). Rely on installation path chosen by [`travis-erlang-builder`](https://github.com/travis-ci/travis-erlang-builder/blob/e6d016b1a91ca7ecac5a5a46395bde917ea13d36/bin/compile#L18).
|
# - Rely on `kerl` for [pre-compiled versions available](https://docs.travis-ci.com/user/languages/erlang#Choosing-OTP-releases-to-test-against). Rely on installation path chosen by [`travis-erlang-builder`](https://github.com/travis-ci/travis-erlang-builder/blob/e6d016b1a91ca7ecac5a5a46395bde917ea13d36/bin/compile#L18).
|
||||||
# - . ~/otp/18.2.1/activate && erl -version
|
# - . ~/otp/18.2.1/activate && erl -version
|
||||||
#- curl -f -L -o ./rebar3 https://s3.amazonaws.com/rebar3/rebar3 && chmod +x ./rebar3 && ./rebar3 version && export PATH="${TRAVIS_BUILD_DIR}:$PATH"
|
#- curl -f -L -o ./rebar3 https://s3.amazonaws.com/rebar3/rebar3 && chmod +x ./rebar3 && ./rebar3 version && export PATH="${TRAVIS_BUILD_DIR}:$PATH"
|
||||||
# install valgrind for C++ memory test
|
# install C++ tools
|
||||||
- sudo apt-get install valgrind
|
- sudo apt install -y --no-install-recommends valgrind cmake build-essential
|
||||||
# install Qt 5.10
|
# install Qt5
|
||||||
# comment out the following due to failure in downloading http://ppa.launchpad.net/beineri/opt-qt-5.10.1-trusty/ubuntu/dists/xenial/main/binary-amd64/Packages
|
- sudo apt install -y --no-install-recommends qt5-default
|
||||||
#- sudo add-apt-repository --yes ppa:beineri/opt-qt-5.10.1-trusty
|
- cmake --version
|
||||||
#- sudo apt-get update -qq
|
|
||||||
#- sudo apt-get install qt510-meta-minimal
|
|
||||||
#- source /opt/qt510/bin/qt510-env.sh
|
|
||||||
#- qmake -v
|
|
||||||
|
|
||||||
# show host table to confirm petstore.swagger.io is mapped to localhost
|
# show host table to confirm petstore.swagger.io is mapped to localhost
|
||||||
- cat /etc/hosts
|
- cat /etc/hosts
|
||||||
# show java version
|
# show java version
|
||||||
|
2
pom.xml
2
pom.xml
@ -1037,7 +1037,7 @@
|
|||||||
<module>samples/server/petstore/python-aiohttp</module>
|
<module>samples/server/petstore/python-aiohttp</module>
|
||||||
<!-- clients -->
|
<!-- clients -->
|
||||||
<module>samples/client/petstore/c</module>
|
<module>samples/client/petstore/c</module>
|
||||||
<!-- <module>samples/client/petstore/cpp-qt5</module> -->
|
<module>samples/client/petstore/cpp-qt5</module>
|
||||||
<module>samples/client/petstore/elm-0.18</module>
|
<module>samples/client/petstore/elm-0.18</module>
|
||||||
<module>samples/client/petstore/rust</module>
|
<module>samples/client/petstore/rust</module>
|
||||||
<!--<module>samples/client/petstore/perl</module>-->
|
<!--<module>samples/client/petstore/perl</module>-->
|
||||||
|
@ -3,12 +3,6 @@
|
|||||||
#include <QTest>
|
#include <QTest>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
OAIPetApi* PetApiTests::getApi() {
|
|
||||||
auto api = new OAIPetApi();
|
|
||||||
api->setHost("http://petstore.swagger.io");
|
|
||||||
return api;
|
|
||||||
}
|
|
||||||
|
|
||||||
OAIPet PetApiTests::createRandomPet() {
|
OAIPet PetApiTests::createRandomPet() {
|
||||||
OAIPet pet;
|
OAIPet pet;
|
||||||
qint64 id = QDateTime::currentMSecsSinceEpoch();
|
qint64 id = QDateTime::currentMSecsSinceEpoch();
|
||||||
@ -19,11 +13,12 @@ OAIPet PetApiTests::createRandomPet() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PetApiTests::findPetsByStatusTest() {
|
void PetApiTests::findPetsByStatusTest() {
|
||||||
OAIPetApi* api = getApi();
|
OAIPetApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool petFound = false;
|
bool petFound = false;
|
||||||
|
|
||||||
connect(api, &OAIPetApi::findPetsByStatusSignal, [&](QList<OAIPet> pets) {
|
connect(&api, &OAIPetApi::findPetsByStatusSignal, [&](QList<OAIPet> pets) {
|
||||||
petFound = true;
|
petFound = true;
|
||||||
foreach(OAIPet pet, pets) {
|
foreach(OAIPet pet, pets) {
|
||||||
QVERIFY(pet.getStatus().startsWith("available") || pet.getStatus().startsWith("sold"));
|
QVERIFY(pet.getStatus().startsWith("available") || pet.getStatus().startsWith("sold"));
|
||||||
@ -31,19 +26,19 @@ void PetApiTests::findPetsByStatusTest() {
|
|||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->findPetsByStatus({"available", "sold"});
|
api.findPetsByStatus({"available", "sold"});
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petFound, "didn't finish within timeout");
|
QVERIFY2(petFound, "didn't finish within timeout");
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PetApiTests::createAndGetPetTest() {
|
void PetApiTests::createAndGetPetTest() {
|
||||||
OAIPetApi* api = getApi();
|
OAIPetApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool petCreated = false;
|
bool petCreated = false;
|
||||||
|
|
||||||
connect(api, &OAIPetApi::addPetSignal, [&]() {
|
connect(&api, &OAIPetApi::addPetSignal, [&]() {
|
||||||
// pet created
|
// pet created
|
||||||
petCreated = true;
|
petCreated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
@ -52,30 +47,30 @@ void PetApiTests::createAndGetPetTest() {
|
|||||||
OAIPet pet = createRandomPet();
|
OAIPet pet = createRandomPet();
|
||||||
qint64 id = pet.getId();
|
qint64 id = pet.getId();
|
||||||
|
|
||||||
api->addPet(pet);
|
api.addPet(pet);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petCreated, "didn't finish within timeout");
|
QVERIFY2(petCreated, "didn't finish within timeout");
|
||||||
|
|
||||||
bool petFetched = false;
|
bool petFetched = false;
|
||||||
|
|
||||||
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
||||||
QVERIFY(pet.getId() > 0);
|
QVERIFY(pet.getId() > 0);
|
||||||
QVERIFY(pet.getStatus().compare("freaky") == 0);
|
QVERIFY(pet.getStatus().compare("freaky") == 0);
|
||||||
loop.quit();
|
loop.quit();
|
||||||
petFetched = true;
|
petFetched = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
api->getPetById(id);
|
api.getPetById(id);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petFetched, "didn't finish within timeout");
|
QVERIFY2(petFetched, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PetApiTests::updatePetTest() {
|
void PetApiTests::updatePetTest() {
|
||||||
OAIPetApi* api = getApi();
|
OAIPetApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
|
|
||||||
OAIPet pet = createRandomPet();
|
OAIPet pet = createRandomPet();
|
||||||
OAIPet petToCheck;
|
OAIPet petToCheck;
|
||||||
@ -83,13 +78,13 @@ void PetApiTests::updatePetTest() {
|
|||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool petAdded = false;
|
bool petAdded = false;
|
||||||
|
|
||||||
connect(api, &OAIPetApi::addPetSignal, [&](){
|
connect(&api, &OAIPetApi::addPetSignal, [&](){
|
||||||
petAdded = true;
|
petAdded = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
// create pet
|
// create pet
|
||||||
api->addPet(pet);
|
api.addPet(pet);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petAdded, "didn't finish within timeout");
|
QVERIFY2(petAdded, "didn't finish within timeout");
|
||||||
@ -97,50 +92,49 @@ void PetApiTests::updatePetTest() {
|
|||||||
// fetch it
|
// fetch it
|
||||||
|
|
||||||
bool petFetched = false;
|
bool petFetched = false;
|
||||||
connect(api, &OAIPetApi::getPetByIdSignal, this, [&](OAIPet pet) {
|
connect(&api, &OAIPetApi::getPetByIdSignal, this, [&](OAIPet pet) {
|
||||||
petFetched = true;
|
petFetched = true;
|
||||||
petToCheck = pet;
|
petToCheck = pet;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
// create pet
|
// create pet
|
||||||
api->getPetById(id);
|
api.getPetById(id);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petFetched, "didn't finish within timeout");
|
QVERIFY2(petFetched, "didn't finish within timeout");
|
||||||
|
|
||||||
// update it
|
// update it
|
||||||
bool petUpdated = false;
|
bool petUpdated = false;
|
||||||
connect(api, &OAIPetApi::updatePetSignal, [&]() {
|
connect(&api, &OAIPetApi::updatePetSignal, [&]() {
|
||||||
petUpdated = true;
|
petUpdated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
// update pet
|
// update pet
|
||||||
petToCheck.setStatus(QString("scary"));
|
petToCheck.setStatus(QString("scary"));
|
||||||
api->updatePet(petToCheck);
|
api.updatePet(petToCheck);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petUpdated, "didn't finish within timeout");
|
QVERIFY2(petUpdated, "didn't finish within timeout");
|
||||||
|
|
||||||
// check it
|
// check it
|
||||||
bool petFetched2 = false;
|
bool petFetched2 = false;
|
||||||
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
||||||
petFetched2 = true;
|
petFetched2 = true;
|
||||||
QVERIFY(pet.getId() == petToCheck.getId());
|
QVERIFY(pet.getId() == petToCheck.getId());
|
||||||
QVERIFY(pet.getStatus().compare(petToCheck.getStatus()) == 0);
|
QVERIFY(pet.getStatus().compare(petToCheck.getStatus()) == 0);
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
api->getPetById(id);
|
api.getPetById(id);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petFetched2, "didn't finish within timeout");
|
QVERIFY2(petFetched2, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PetApiTests::updatePetWithFormTest() {
|
void PetApiTests::updatePetWithFormTest() {
|
||||||
OAIPetApi* api = getApi();
|
OAIPetApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
|
|
||||||
OAIPet pet = createRandomPet();
|
OAIPet pet = createRandomPet();
|
||||||
OAIPet petToCheck;
|
OAIPet petToCheck;
|
||||||
@ -149,54 +143,52 @@ void PetApiTests::updatePetWithFormTest() {
|
|||||||
|
|
||||||
// create pet
|
// create pet
|
||||||
bool petAdded = false;
|
bool petAdded = false;
|
||||||
connect(api, &OAIPetApi::addPetSignal, [&](){
|
connect(&api, &OAIPetApi::addPetSignal, [&](){
|
||||||
petAdded = true;
|
petAdded = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->addPet(pet);
|
api.addPet(pet);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petAdded, "didn't finish within timeout");
|
QVERIFY2(petAdded, "didn't finish within timeout");
|
||||||
|
|
||||||
// fetch it
|
// fetch it
|
||||||
bool petFetched = false;
|
bool petFetched = false;
|
||||||
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
||||||
petFetched = true;
|
petFetched = true;
|
||||||
petToCheck = pet;
|
petToCheck = pet;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->getPetById(id);
|
api.getPetById(id);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petFetched, "didn't finish within timeout");
|
QVERIFY2(petFetched, "didn't finish within timeout");
|
||||||
|
|
||||||
// update it
|
// update it
|
||||||
bool petUpdated = false;
|
bool petUpdated = false;
|
||||||
connect(api, &OAIPetApi::updatePetWithFormSignal, [&](){
|
connect(&api, &OAIPetApi::updatePetWithFormSignal, [&](){
|
||||||
petUpdated = true;
|
petUpdated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
QString name("gorilla");
|
QString name("gorilla");
|
||||||
api->updatePetWithForm(id, name, nullptr);
|
api.updatePetWithForm(id, name, nullptr);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petUpdated, "didn't finish within timeout");
|
QVERIFY2(petUpdated, "didn't finish within timeout");
|
||||||
|
|
||||||
// fetch it
|
// fetch it
|
||||||
bool petUpdated2 = false;
|
bool petUpdated2 = false;
|
||||||
connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
|
||||||
petUpdated2 = true;
|
petUpdated2 = true;
|
||||||
QVERIFY(pet.getName().compare(QString("gorilla")) == 0);
|
QVERIFY(pet.getName().compare(QString("gorilla")) == 0);
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->getPetById(id);
|
api.getPetById(id);
|
||||||
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(petUpdated2, "didn't finish within timeout");
|
QVERIFY2(petUpdated2, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ using namespace OpenAPI;
|
|||||||
class PetApiTests: public QObject {
|
class PetApiTests: public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
OAIPetApi* getApi();
|
|
||||||
OAIPet createRandomPet();
|
OAIPet createRandomPet();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
@ -15,4 +14,6 @@ private slots:
|
|||||||
void createAndGetPetTest();
|
void createAndGetPetTest();
|
||||||
void updatePetTest();
|
void updatePetTest();
|
||||||
void updatePetWithFormTest();
|
void updatePetWithFormTest();
|
||||||
|
private:
|
||||||
|
const QString PetStoreHost = QStringLiteral("http://petstore.swagger.io");
|
||||||
};
|
};
|
||||||
|
@ -4,25 +4,20 @@
|
|||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
OAIStoreApi* StoreApiTests::getApi() {
|
|
||||||
auto api = new OAIStoreApi();
|
|
||||||
api->setHost("http://petstore.swagger.io");
|
|
||||||
return api;
|
|
||||||
}
|
|
||||||
|
|
||||||
void StoreApiTests::placeOrderTest() {
|
void StoreApiTests::placeOrderTest() {
|
||||||
auto api = getApi();
|
OAIStoreApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool orderPlaced = false;
|
bool orderPlaced = false;
|
||||||
|
|
||||||
connect(api, &OAIStoreApi::placeOrderSignal, [&](OAIOrder order) {
|
connect(&api, &OAIStoreApi::placeOrderSignal, [&](OAIOrder order) {
|
||||||
orderPlaced = true;
|
orderPlaced = true;
|
||||||
QVERIFY(order.getPetId() == 10000);
|
QVERIFY(order.getPetId() == 10000);
|
||||||
QVERIFY((order.getId() == 500));
|
QVERIFY((order.getId() == 500));
|
||||||
qDebug() << order.getShipDate();
|
qDebug() << order.getShipDate();
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
connect(api, &OAIStoreApi::placeOrderSignalE, [&](){
|
connect(&api, &OAIStoreApi::placeOrderSignalE, [&](){
|
||||||
QFAIL("shouldn't trigger error");
|
QFAIL("shouldn't trigger error");
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
@ -34,20 +29,20 @@ void StoreApiTests::placeOrderTest() {
|
|||||||
order.setComplete(false);
|
order.setComplete(false);
|
||||||
order.setStatus("shipping");
|
order.setStatus("shipping");
|
||||||
order.setShipDate(QDateTime::currentDateTime());
|
order.setShipDate(QDateTime::currentDateTime());
|
||||||
api->placeOrder(order);
|
api.placeOrder(order);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(orderPlaced, "didn't finish within timeout");
|
QVERIFY2(orderPlaced, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StoreApiTests::getOrderByIdTest() {
|
void StoreApiTests::getOrderByIdTest() {
|
||||||
auto api = getApi();
|
OAIStoreApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool orderFetched = false;
|
bool orderFetched = false;
|
||||||
|
|
||||||
connect(api, &OAIStoreApi::getOrderByIdSignal, [&](OAIOrder order) {
|
connect(&api, &OAIStoreApi::getOrderByIdSignal, [&](OAIOrder order) {
|
||||||
orderFetched = true;
|
orderFetched = true;
|
||||||
QVERIFY(order.getPetId() == 10000);
|
QVERIFY(order.getPetId() == 10000);
|
||||||
QVERIFY((order.getId() == 500));
|
QVERIFY((order.getId() == 500));
|
||||||
@ -55,20 +50,20 @@ void StoreApiTests::getOrderByIdTest() {
|
|||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->getOrderById(500);
|
api.getOrderById(500);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(orderFetched, "didn't finish within timeout");
|
QVERIFY2(orderFetched, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StoreApiTests::getInventoryTest() {
|
void StoreApiTests::getInventoryTest() {
|
||||||
auto api = getApi();
|
OAIStoreApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool inventoryFetched = false;
|
bool inventoryFetched = false;
|
||||||
|
|
||||||
connect(api, &OAIStoreApi::getInventorySignal, [&](QMap<QString, qint32> status) {
|
connect(&api, &OAIStoreApi::getInventorySignal, [&](QMap<QString, qint32> status) {
|
||||||
inventoryFetched = true;
|
inventoryFetched = true;
|
||||||
for(const auto& key : status.keys()) {
|
for(const auto& key : status.keys()) {
|
||||||
qDebug() << (key) << " Quantities " << status.value(key);
|
qDebug() << (key) << " Quantities " << status.value(key);
|
||||||
@ -76,10 +71,9 @@ void StoreApiTests::getInventoryTest() {
|
|||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->getInventory();
|
api.getInventory();
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(inventoryFetched, "didn't finish within timeout");
|
QVERIFY2(inventoryFetched, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,10 @@ using namespace OpenAPI;
|
|||||||
class StoreApiTests: public QObject {
|
class StoreApiTests: public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
OAIStoreApi* getApi();
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void placeOrderTest();
|
void placeOrderTest();
|
||||||
void getOrderByIdTest();
|
void getOrderByIdTest();
|
||||||
void getInventoryTest();
|
void getInventoryTest();
|
||||||
|
private:
|
||||||
|
const QString PetStoreHost = QStringLiteral("http://petstore.swagger.io");
|
||||||
};
|
};
|
||||||
|
@ -4,12 +4,6 @@
|
|||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
OAIUserApi* UserApiTests::getApi() {
|
|
||||||
auto api = new OAIUserApi();
|
|
||||||
api->setHost("http://petstore.swagger.io");
|
|
||||||
return api;
|
|
||||||
}
|
|
||||||
|
|
||||||
OAIUser UserApiTests::createRandomUser() {
|
OAIUser UserApiTests::createRandomUser() {
|
||||||
OAIUser user;
|
OAIUser user;
|
||||||
user.setId(QDateTime::currentMSecsSinceEpoch());
|
user.setId(QDateTime::currentMSecsSinceEpoch());
|
||||||
@ -24,29 +18,29 @@ OAIUser UserApiTests::createRandomUser() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::createUserTest(){
|
void UserApiTests::createUserTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool userCreated = false;
|
bool userCreated = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::createUserSignal, [&](){
|
connect(&api, &OAIUserApi::createUserSignal, [&](){
|
||||||
userCreated = true;
|
userCreated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->createUser(createRandomUser());
|
api.createUser(createRandomUser());
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(userCreated, "didn't finish within timeout");
|
QVERIFY2(userCreated, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::createUsersWithArrayInputTest(){
|
void UserApiTests::createUsersWithArrayInputTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool usersCreated = false;
|
bool usersCreated = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::createUsersWithArrayInputSignal, [&](){
|
connect(&api, &OAIUserApi::createUsersWithArrayInputSignal, [&](){
|
||||||
usersCreated = true;
|
usersCreated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
@ -55,20 +49,19 @@ void UserApiTests::createUsersWithArrayInputTest(){
|
|||||||
users.append(createRandomUser());
|
users.append(createRandomUser());
|
||||||
users.append(createRandomUser());
|
users.append(createRandomUser());
|
||||||
users.append(createRandomUser());
|
users.append(createRandomUser());
|
||||||
api->createUsersWithArrayInput(users);
|
api.createUsersWithArrayInput(users);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(usersCreated, "didn't finish within timeout");
|
QVERIFY2(usersCreated, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::createUsersWithListInputTest(){
|
void UserApiTests::createUsersWithListInputTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool usersCreated = false;
|
bool usersCreated = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::createUsersWithListInputSignal, [&](){
|
connect(&api, &OAIUserApi::createUsersWithListInputSignal, [&](){
|
||||||
usersCreated = true;
|
usersCreated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
@ -81,105 +74,98 @@ void UserApiTests::createUsersWithListInputTest(){
|
|||||||
users.append(johndoe);
|
users.append(johndoe);
|
||||||
users.append(rambo);
|
users.append(rambo);
|
||||||
users.append(createRandomUser());
|
users.append(createRandomUser());
|
||||||
api->createUsersWithListInput(users);
|
api.createUsersWithListInput(users);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(usersCreated, "didn't finish within timeout");
|
QVERIFY2(usersCreated, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::deleteUserTest(){
|
void UserApiTests::deleteUserTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool userDeleted = false;
|
bool userDeleted = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::deleteUserSignal, [&](){
|
connect(&api, &OAIUserApi::deleteUserSignal, [&](){
|
||||||
userDeleted = true;
|
userDeleted = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->deleteUser("rambo");
|
api.deleteUser("rambo");
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(userDeleted, "didn't finish within timeout");
|
QVERIFY2(userDeleted, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::getUserByNameTest(){
|
void UserApiTests::getUserByNameTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool userFetched = false;
|
bool userFetched = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::getUserByNameSignal, [&](OAIUser summary) {
|
connect(&api, &OAIUserApi::getUserByNameSignal, [&](OAIUser summary) {
|
||||||
userFetched = true;
|
userFetched = true;
|
||||||
qDebug() << summary.getUsername();
|
qDebug() << summary.getUsername();
|
||||||
QVERIFY(summary.getUsername() == "johndoe");
|
QVERIFY(summary.getUsername() == "johndoe");
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->getUserByName("johndoe");
|
api.getUserByName("johndoe");
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(userFetched, "didn't finish within timeout");
|
QVERIFY2(userFetched, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::loginUserTest(){
|
void UserApiTests::loginUserTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool userLogged = false;
|
bool userLogged = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::loginUserSignal, [&](QString summary) {
|
connect(&api, &OAIUserApi::loginUserSignal, [&](QString summary) {
|
||||||
userLogged = true;
|
userLogged = true;
|
||||||
qDebug() << summary;
|
qDebug() << summary;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->loginUser("johndoe", "123456789");
|
api.loginUser("johndoe", "123456789");
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(userLogged, "didn't finish within timeout");
|
QVERIFY2(userLogged, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::logoutUserTest(){
|
void UserApiTests::logoutUserTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool userLoggedOut = false;
|
bool userLoggedOut = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::logoutUserSignal, [&](){
|
connect(&api, &OAIUserApi::logoutUserSignal, [&](){
|
||||||
userLoggedOut = true;
|
userLoggedOut = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
api->logoutUser();
|
api.logoutUser();
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(userLoggedOut, "didn't finish within timeout");
|
QVERIFY2(userLoggedOut, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserApiTests::updateUserTest(){
|
void UserApiTests::updateUserTest(){
|
||||||
auto api = getApi();
|
OAIUserApi api;
|
||||||
|
api.setHost(PetStoreHost);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool userUpdated = false;
|
bool userUpdated = false;
|
||||||
|
|
||||||
connect(api, &OAIUserApi::updateUserSignal, [&]() {
|
connect(&api, &OAIUserApi::updateUserSignal, [&]() {
|
||||||
userUpdated = true;
|
userUpdated = true;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
auto johndoe = createRandomUser();
|
auto johndoe = createRandomUser();
|
||||||
johndoe.setUsername("johndoe");
|
johndoe.setUsername("johndoe");
|
||||||
api->updateUser("johndoe", johndoe);
|
api.updateUser("johndoe", johndoe);
|
||||||
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
QVERIFY2(userUpdated, "didn't finish within timeout");
|
QVERIFY2(userUpdated, "didn't finish within timeout");
|
||||||
|
|
||||||
delete api;
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ using namespace OpenAPI;
|
|||||||
class UserApiTests: public QObject {
|
class UserApiTests: public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
OAIUserApi* getApi();
|
|
||||||
OAIUser createRandomUser();
|
OAIUser createRandomUser();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
@ -19,4 +18,6 @@ private slots:
|
|||||||
void loginUserTest();
|
void loginUserTest();
|
||||||
void logoutUserTest();
|
void logoutUserTest();
|
||||||
void updateUserTest();
|
void updateUserTest();
|
||||||
|
private:
|
||||||
|
const QString PetStoreHost = QStringLiteral("http://petstore.swagger.io");
|
||||||
};
|
};
|
||||||
|
@ -1,42 +1,48 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
# export RUN_VALGRIND_TESTS=TRUE
|
||||||
|
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
qmake ../PetStore/PetStore.pro CONFIG+=debug
|
cmake ..
|
||||||
|
|
||||||
make
|
make
|
||||||
|
|
||||||
valgrind --leak-check=full ./PetStore |& tee result.log || exit 1
|
if [[ -z "${RUN_VALGRIND_TESTS}" ]]; then
|
||||||
|
echo "Running Qt5 Petstore Tests"
|
||||||
echo "Make sure the tests are launched:"
|
./cpp-qt5-petstore
|
||||||
testCount=$(cat result.log | grep 'Finished testing of' | wc -l)
|
|
||||||
if [ $testCount == 3 ]
|
|
||||||
then
|
|
||||||
echo "Ok"
|
|
||||||
else
|
else
|
||||||
|
echo "Running Qt5 Petstore Tests with Valgrind"
|
||||||
|
valgrind --leak-check=full ./cpp-qt5-petstore |& tee result.log || exit 1
|
||||||
|
testCount=$(cat result.log | grep 'Finished testing of' | wc -l)
|
||||||
|
if [ $testCount == 3 ]
|
||||||
|
then
|
||||||
|
echo "Ok"
|
||||||
|
else
|
||||||
echo "The tests were not run!!!"
|
echo "The tests were not run!!!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Make sure the tests passed:"
|
echo "Make sure the tests passed:"
|
||||||
successCount=$(cat result.log | grep '0 failed' | wc -l)
|
successCount=$(cat result.log | grep '0 failed' | wc -l)
|
||||||
if [ $successCount == 3 ]
|
if [ $successCount == 3 ]
|
||||||
then
|
then
|
||||||
echo "Ok"
|
echo "Ok"
|
||||||
else
|
else
|
||||||
echo "The tests failed!!!"
|
echo "The tests failed!!!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Check if no memory leaks occured:"
|
echo "Check if no memory leaks occured:"
|
||||||
leakCount=$(cat result.log | grep 'lost: 0 bytes in 0 blocks' | wc -l)
|
leakCount=$(cat result.log | grep 'lost: 0 bytes in 0 blocks' | wc -l)
|
||||||
if [ $leakCount == 3 ]
|
if [ $leakCount == 3 ]
|
||||||
then
|
then
|
||||||
echo "Ok"
|
echo "Ok"
|
||||||
else
|
else
|
||||||
echo "There was memory leaks!!!"
|
echo "There was memory leaks!!!"
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user