2018-07-09 21:42:38 +02:00
|
|
|
#define BOOST_TEST_MODULE database
|
|
|
|
|
|
|
|
#include "../src/core/database.h"
|
2018-07-11 15:57:39 +02:00
|
|
|
#include "../src/core/seller.h"
|
2018-07-09 21:42:38 +02:00
|
|
|
|
2018-07-10 14:12:37 +02:00
|
|
|
#include <filesystem>
|
|
|
|
|
2018-07-09 21:42:38 +02:00
|
|
|
#include <boost/test/included/unit_test.hpp>
|
|
|
|
|
2018-07-10 15:46:55 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(create_database)
|
|
|
|
{
|
2018-07-17 10:19:41 +02:00
|
|
|
BOOST_CHECK_NO_THROW(Database db(":memory:"));
|
2018-07-11 15:57:39 +02:00
|
|
|
}
|
2018-07-10 15:46:55 +02:00
|
|
|
|
2018-07-11 15:57:39 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(store_seller_fail)
|
|
|
|
{
|
|
|
|
Database db(":memory:");
|
2018-07-16 15:30:24 +02:00
|
|
|
std::vector<std::unique_ptr<Seller>> sellers;
|
|
|
|
sellers.push_back(std::make_unique<Seller>());
|
|
|
|
sellers.push_back(std::make_unique<Seller>());
|
2018-07-11 15:57:39 +02:00
|
|
|
BOOST_CHECK_THROW(db.storeSellers(sellers), std::runtime_error);
|
|
|
|
}
|
|
|
|
BOOST_AUTO_TEST_CASE(store_sellers_succ)
|
|
|
|
{
|
|
|
|
Database db(":memory:");
|
2018-07-16 15:30:24 +02:00
|
|
|
std::vector<std::unique_ptr<Seller>> sellers;
|
|
|
|
auto a = std::make_unique<Seller>();
|
2018-07-13 13:06:08 +02:00
|
|
|
a->createUuid();
|
|
|
|
a->setSellerNo(1);
|
2018-07-16 15:30:24 +02:00
|
|
|
auto b = std::make_unique<Seller>("Max", "Mustermann");
|
2018-07-13 13:06:08 +02:00
|
|
|
b->createUuid();
|
|
|
|
b->setSellerNo(2);
|
2018-07-20 11:52:26 +02:00
|
|
|
auto c = std::make_unique<Article>();
|
2018-07-13 13:06:08 +02:00
|
|
|
c->createUuid();
|
|
|
|
c->setPrice(500);
|
|
|
|
c->setDescription("Test");
|
2018-07-20 11:52:26 +02:00
|
|
|
b->addArticle(std::move(c));
|
2018-07-13 13:06:08 +02:00
|
|
|
BOOST_TEST(a->getUuid() != b->getUuid());
|
2018-07-16 15:30:24 +02:00
|
|
|
sellers.push_back(std::move(a));
|
|
|
|
sellers.push_back(std::move(b));
|
2018-07-11 15:57:39 +02:00
|
|
|
BOOST_CHECK_NO_THROW(db.storeSellers(sellers));
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(seller_states)
|
|
|
|
{
|
|
|
|
Database db(":memory:");
|
2018-07-16 15:30:24 +02:00
|
|
|
std::vector<std::unique_ptr<Seller>> sellers;
|
|
|
|
auto a = std::make_unique<Seller>();
|
2018-07-13 13:06:08 +02:00
|
|
|
a->setSellerNo(3);
|
|
|
|
a->createUuid();
|
2018-07-16 15:30:24 +02:00
|
|
|
sellers.push_back(std::move(a));
|
2018-07-13 13:06:08 +02:00
|
|
|
BOOST_TEST((sellers.at(0)->getState() == Entity::State::NEW));
|
2018-07-11 15:57:39 +02:00
|
|
|
BOOST_TEST(db.storeSellers(sellers) == 1);
|
2018-07-13 13:06:08 +02:00
|
|
|
BOOST_TEST((sellers.at(0)->getState() == Entity::State::OK));
|
2018-07-11 15:57:39 +02:00
|
|
|
BOOST_TEST(db.storeSellers(sellers) == 0);
|
2018-07-09 21:42:38 +02:00
|
|
|
}
|