From 53666163b471ed695d04dcfd15867e49cf8f78de Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Tue, 10 Jul 2018 15:46:15 +0200 Subject: [PATCH 1/2] ? --- .vscode/settings.json | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 42e3347..4d57c80 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,60 @@ "**/CVS": true, "**/.DS_Store": true, "**/build": true + }, + "files.associations": { + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "*.ipp": "cpp", + "array": "cpp", + "atomic": "cpp", + "strstream": "cpp", + "*.tcc": "cpp", + "bitset": "cpp", + "chrono": "cpp", + "codecvt": "cpp", + "complex": "cpp", + "cstdint": "cpp", + "deque": "cpp", + "list": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "fstream": "cpp", + "functional": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "memory": "cpp", + "new": "cpp", + "numeric": "cpp", + "optional": "cpp", + "ostream": "cpp", + "ratio": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "thread": "cpp", + "type_traits": "cpp", + "tuple": "cpp", + "typeindex": "cpp", + "typeinfo": "cpp", + "utility": "cpp", + "variant": "cpp", + "algorithm": "cpp" } } \ No newline at end of file From eeae4fe6092153845ca5d1162940cccef782e660 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Tue, 10 Jul 2018 15:46:55 +0200 Subject: [PATCH 2/2] more on database (tests) --- src/core/database.cpp | 25 ++++++++++--------------- test/CMakeLists.txt | 4 ++-- test/test_database.cpp | 19 ++++++++++++++----- test/test_seller.cpp | 2 +- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/core/database.cpp b/src/core/database.cpp index 5fc1ca5..42603ad 100644 --- a/src/core/database.cpp +++ b/src/core/database.cpp @@ -1,7 +1,7 @@ #include "database.h" -#include #include +#include Database::Database(const std::string& dbname) : db_(nullptr) { @@ -24,16 +24,14 @@ void Database::exec(const std::string& sql) void Database::init() { - std::string sqlCreateSellers{ - "CREATE TABLE IF NOT EXISTS sellers (" - "id TEXT PRIMARY KEY NOT NULL, " - "seller_no INTEGER, " - "first_name TEXT, " - "last_name TEXT, " - "offered_articles INTEGER, " - "UNIQUE (seller_no)" - ");" - }; + std::string sqlCreateSellers{"CREATE TABLE IF NOT EXISTS sellers (" + "id TEXT PRIMARY KEY NOT NULL, " + "seller_no INTEGER, " + "first_name TEXT, " + "last_name TEXT, " + "offered_articles INTEGER, " + "UNIQUE (seller_no)" + ");"}; std::string sqlCreateArticles{ "CREATE TABLE IF NOT EXISTS articles (" @@ -46,10 +44,7 @@ void Database::init() "UNIQUE (source_no, article_no), " "FOREIGN KEY (seller_id) REFERENCES sellers(id) ON DELETE CASCADE, " "CHECK (article_no BETWEEN 0 AND 99999)" - ");" - }; - - std::cout << sqlCreateArticles << "\n"; + ");"}; beginTransaction(); exec(sqlCreateSellers); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 02007e1..2c68a6d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,8 +2,8 @@ find_package(Boost COMPONENTS unit_test_framework REQUIRED) add_executable(test_seller test_seller.cpp) target_link_libraries(test_seller core Boost::unit_test_framework) -add_test(Seller ${CMAKE_BINARY_DIR}/bin/test_seller) +add_test(NAME Seller COMMAND ${CMAKE_BINARY_DIR}/bin/test_seller) add_executable(test_database test_database.cpp) target_link_libraries(test_database core Boost::unit_test_framework stdc++fs) -add_test(Database ${CMAKE_BINARY_DIR}/bin/test_database) +add_test(NAME Database COMMAND ${CMAKE_BINARY_DIR}/bin/test_database) diff --git a/test/test_database.cpp b/test/test_database.cpp index 8e6d8ba..28d47dc 100644 --- a/test/test_database.cpp +++ b/test/test_database.cpp @@ -6,11 +6,20 @@ #include -//using namespace boost::unit_test; +BOOST_AUTO_TEST_CASE(create_database) +{ + std::filesystem::path testPath = std::filesystem::temp_directory_path() / "kima2test.db"; + if (std::filesystem::exists(testPath)) { + std::filesystem::remove(testPath); + } -BOOST_AUTO_TEST_CASE( create_database ) { - std::filesystem::path testPath = std::filesystem::temp_directory_path() / "test.db"; - Database db(testPath.c_str()); + std::string filename = testPath.generic_string(); + + Database db(filename); db.init(); - std::filesystem::remove(testPath); + + BOOST_TEST(std::filesystem::exists(testPath) == true); + if (std::filesystem::exists(testPath)) { + std::filesystem::remove(testPath); + } } \ No newline at end of file diff --git a/test/test_seller.cpp b/test/test_seller.cpp index c467906..d193340 100644 --- a/test/test_seller.cpp +++ b/test/test_seller.cpp @@ -4,7 +4,7 @@ #include -using namespace boost::unit_test; +//using namespace boost::unit_test; BOOST_AUTO_TEST_CASE( create_uuid_nil ) { Seller seller{};