diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 67933ee..cda715a 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -1,7 +1,7 @@ -set(SOURCES - main.cpp) +#set(SOURCES +# main.cpp) -add_executable(eedb_app ${SOURCES}) +#add_executable(eedb_app ${SOURCES}) #target_link_libraries(eedb_app # wthttp # or {Wt_HTTP_DEBUG_LIBRARY} diff --git a/src/app/main.cpp b/src/app/main.cpp index 2b157ac..a5461b6 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt index 33b54aa..dc462d1 100644 --- a/src/libs/CMakeLists.txt +++ b/src/libs/CMakeLists.txt @@ -1,3 +1,5 @@ +cmake_minimum_required(VERSION 3.9) + add_subdirectory(eedb) add_subdirectory(db) diff --git a/src/libs/auth/CMakeLists.txt b/src/libs/auth/CMakeLists.txt index 2af9e2c..bc91cc4 100644 --- a/src/libs/auth/CMakeLists.txt +++ b/src/libs/auth/CMakeLists.txt @@ -1,3 +1,5 @@ +project(Auth VERSION 0.1.0 DESCRIPTION "Auth library") + set(LIB auth) file(GLOB auth_SOURCE src/*) @@ -17,10 +19,6 @@ target_link_libraries( ${LIB} PRIVATE eedb ) -target_link_libraries( ${LIB} - PUBLIC nlohmann_json -) - # add cotire set_target_properties( ${LIB} PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE) cotire(${LIB}) diff --git a/src/libs/auth/src/PgUserAuth.cpp b/src/libs/auth/src/PgUserAuth.cpp index 0c18f09..a5ef2eb 100644 --- a/src/libs/auth/src/PgUserAuth.cpp +++ b/src/libs/auth/src/PgUserAuth.cpp @@ -1,14 +1,14 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/libs/db/postgresql_connector/CMakeLists.txt b/src/libs/db/postgresql_connector/CMakeLists.txt index 590e55f..6cf20f9 100644 --- a/src/libs/db/postgresql_connector/CMakeLists.txt +++ b/src/libs/db/postgresql_connector/CMakeLists.txt @@ -31,4 +31,5 @@ set_target_properties( ${LIB} cotire(${LIB}) +add_subdirectory(mock) add_subdirectory(test) diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/all.hpp b/src/libs/db/postgresql_connector/include/db/pg/model/all.hpp deleted file mode 100644 index 3a1c52f..0000000 --- a/src/libs/db/postgresql_connector/include/db/pg/model/all.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -constexpr eedb::user_audit t_user_audit; -constexpr eedb::auth_identity t_auth_identity; -constexpr eedb::auth_info t_auth_info; -constexpr eedb::auth_token t_auth_token; -constexpr eedb::group t_group; -constexpr eedb::category t_category; diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgAuthIdentity.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgAuthIdentity.hpp similarity index 93% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgAuthIdentity.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgAuthIdentity.hpp index f2256ee..e6b6d13 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgAuthIdentity.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgAuthIdentity.hpp @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgAuthToken.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgAuthToken.hpp similarity index 94% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgAuthToken.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgAuthToken.hpp index 1dd48c6..58d2fd0 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgAuthToken.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgAuthToken.hpp @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgCategories.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategories.hpp similarity index 93% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgCategories.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategories.hpp index 8259822..13cdcf6 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgCategories.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategories.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgCategoriesRepository.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategoriesRepository.hpp similarity index 93% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgCategoriesRepository.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategoriesRepository.hpp index de88009..3b48581 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgCategoriesRepository.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategoriesRepository.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgCategory.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategory.hpp similarity index 95% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgCategory.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategory.hpp index 7e1b29c..1b249ae 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgCategory.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgCategory.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgItem.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgItem.hpp similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgItem.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgItem.hpp diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgItems.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgItems.hpp similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgItems.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgItems.hpp diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgUser.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgUser.hpp similarity index 90% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgUser.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgUser.hpp index ad425bd..496ed25 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgUser.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgUser.hpp @@ -1,8 +1,8 @@ #pragma once -#include +#include -#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/PgUsers.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgUsers.hpp similarity index 96% rename from src/libs/db/postgresql_connector/include/db/pg/data/PgUsers.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/PgUsers.hpp index e221e43..2f2e559 100644 --- a/src/libs/db/postgresql_connector/include/db/pg/data/PgUsers.hpp +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/PgUsers.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/include/db/pg/RawSql.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/RawSql.hpp similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/RawSql.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/RawSql.hpp diff --git a/src/libs/db/postgresql_connector/include/db/pg/data/Stats.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/Stats.hpp similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/data/Stats.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/Stats.hpp diff --git a/src/libs/db/postgresql_connector/include/db/pg/config.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/config.hpp similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/config.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/config.hpp diff --git a/src/libs/db/postgresql_connector/include/db/pg/connection.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/connection.hpp similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/connection.hpp rename to src/libs/db/postgresql_connector/include/eedb/db/pg/connection.hpp diff --git a/src/libs/db/postgresql_connector/include/eedb/db/pg/model/all.hpp b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/all.hpp new file mode 100644 index 0000000..aa42461 --- /dev/null +++ b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/all.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +constexpr eedb::user_audit t_user_audit; +constexpr eedb::auth_identity t_auth_identity; +constexpr eedb::auth_info t_auth_info; +constexpr eedb::auth_token t_auth_token; +constexpr eedb::group t_group; +constexpr eedb::category t_category; diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/auth_identity.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/auth_identity.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/auth_identity.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/auth_identity.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/auth_info.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/auth_info.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/auth_info.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/auth_info.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/auth_token.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/auth_token.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/auth_token.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/auth_token.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/category.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/category.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/category.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/category.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/group.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/group.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/group.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/group.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/stat.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/stat.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/stat.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/stat.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/system_info.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/system_info.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/system_info.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/system_info.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/user_audit.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/user_audit.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/user_audit.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/user_audit.h diff --git a/src/libs/db/postgresql_connector/include/db/pg/model/user_audit_action.h b/src/libs/db/postgresql_connector/include/eedb/db/pg/model/user_audit_action.h similarity index 100% rename from src/libs/db/postgresql_connector/include/db/pg/model/user_audit_action.h rename to src/libs/db/postgresql_connector/include/eedb/db/pg/model/user_audit_action.h diff --git a/src/libs/db/postgresql_connector/mock/CMakeLists.txt b/src/libs/db/postgresql_connector/mock/CMakeLists.txt new file mode 100644 index 0000000..bad8b31 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/CMakeLists.txt @@ -0,0 +1,13 @@ +set(LIB postgres_connector-mock) + +# create library +add_library(${LIB} INTERFACE) + +# link all +target_include_directories(${LIB} INTERFACE + include +) + +target_link_libraries(${LIB} INTERFACE + eedb-mock +) diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthIdentitiesMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthIdentitiesMock.hpp new file mode 100644 index 0000000..a56a08d --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthIdentitiesMock.hpp @@ -0,0 +1,23 @@ +/* + * file generated by gmock: AuthIdentitiesMock.hpp + */ +#ifndef AUTHIDENTITIESMOCK_HPP +#define AUTHIDENTITIESMOCK_HPP + +#include +#include "././eedb/db/AuthIdentities.hpp" + +namespace eedb { + +class AuthIdentitiesMock : public AuthIdentities +{ +public: + MOCK_METHOD1(addIdentity, AuthIdentity*(int)); + MOCK_CONST_METHOD1(byProvider, AuthIdentity*(int)); + MOCK_METHOD1(removeProvider, void(int)); +}; + +} // namespace eedb + +#endif // AUTHIDENTITIESMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthInfoMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthInfoMock.hpp new file mode 100644 index 0000000..572399d --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthInfoMock.hpp @@ -0,0 +1,23 @@ +/* + * file generated by gmock: AuthInfoMock.hpp + */ +#ifndef AUTHINFOMOCK_HPP +#define AUTHINFOMOCK_HPP + +#include +#include "././eedb/db/AuthInfo.hpp" + +namespace eedb { + +class AuthInfoMock : public AuthInfo +{ +public: + MOCK_CONST_METHOD0(password, const Password&()); + MOCK_CONST_METHOD0(email, const Email&()); + MOCK_CONST_METHOD0(emailVerified, bool()); +}; + +} // namespace eedb + +#endif // AUTHINFOMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthTokenMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthTokenMock.hpp new file mode 100644 index 0000000..9338ccf --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthTokenMock.hpp @@ -0,0 +1,38 @@ +#ifndef AUTHTOKENMOCK_HPP +#define AUTHTOKENMOCK_HPP + +#include + +#include + +#include +#include + +#include +#include + +#include + +namespace eedb::db { + +class AuthTokenMock : public ::eedb::AuthTokenMock { + public: + void _init(PgConnection & db, ::eedb::AuthTokenRole role, ::eedb::User & user, std::string hash) { + id = db(sqlpp::postgresql::insert_into(t_auth_token) // + .set( // + t_auth_token.value = hash, // + t_auth_token.auth_info_id = user.uid(), // + t_auth_token.role = static_cast< int16_t >(role), // + t_auth_token.expires = std::chrono::system_clock::now() + std::chrono::hours{1}) // + .returning(t_auth_token.id)) + .front() + .id; + } + + private: + uint64_t id; +}; + +} // namespace eedb::db + +#endif // AUTHTOKENMOCK_HPP diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthTokensMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthTokensMock.hpp new file mode 100644 index 0000000..4162d6c --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/AuthTokensMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: AuthTokensMock.hpp + */ +#ifndef AUTHTOKENSMOCK_HPP +#define AUTHTOKENSMOCK_HPP + +#include +#include "././eedb/db/AuthTokens.hpp" + +namespace eedb { + +class AuthTokensMock : public AuthTokens +{ +public: + MOCK_METHOD1(removeToken, void(int)); +}; + +} // namespace eedb + +#endif // AUTHTOKENSMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/CategoriesMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/CategoriesMock.hpp new file mode 100644 index 0000000..b05a703 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/CategoriesMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: CategoriesMock.hpp + */ +#ifndef CATEGORIESMOCK_HPP +#define CATEGORIESMOCK_HPP + +#include +#include "././eedb/db/Category.hpp" + +namespace eedb { + +class CategoriesMock : public Categories +{ +public: + MOCK_CONST_METHOD0(size, long()); +}; + +} // namespace eedb + +#endif // CATEGORIESMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/CategoryMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/CategoryMock.hpp new file mode 100644 index 0000000..d5005c2 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/CategoryMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: CategoryMock.hpp + */ +#ifndef CATEGORYMOCK_HPP +#define CATEGORYMOCK_HPP + +#include +#include "././eedb/db/Category.hpp" + +namespace eedb { + +class CategoryMock : public Category +{ +public: + MOCK_CONST_METHOD0(parent, Category*()); +}; + +} // namespace eedb + +#endif // CATEGORYMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemMock.hpp new file mode 100644 index 0000000..bfeb186 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: ItemMock.hpp + */ +#ifndef ITEMMOCK_HPP +#define ITEMMOCK_HPP + +#include +#include "././eedb/db/Item.hpp" + +namespace eedb { + +class ItemMock : public Item +{ +public: + MOCK_CONST_METHOD0(values, Values&()); +}; + +} // namespace eedb + +#endif // ITEMMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemQueryFiltersMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemQueryFiltersMock.hpp new file mode 100644 index 0000000..89d9faf --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemQueryFiltersMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: ItemQueryFiltersMock.hpp + */ +#ifndef ITEMQUERYFILTERSMOCK_HPP +#define ITEMQUERYFILTERSMOCK_HPP + +#include +#include "././eedb/db/Item.hpp" + +namespace eedb { + +class ItemQueryFiltersMock : public ItemQueryFilters +{ +public: + MOCK_CONST_METHOD0(category, Category*()); +}; + +} // namespace eedb + +#endif // ITEMQUERYFILTERSMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemsMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemsMock.hpp new file mode 100644 index 0000000..2a69451 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/ItemsMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: ItemsMock.hpp + */ +#ifndef ITEMSMOCK_HPP +#define ITEMSMOCK_HPP + +#include +#include "././eedb/db/Item.hpp" + +namespace eedb { + +class ItemsMock : public Items +{ +public: + MOCK_CONST_METHOD0(size, long()); +}; + +} // namespace eedb + +#endif // ITEMSMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/SessionMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/SessionMock.hpp new file mode 100644 index 0000000..1373778 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/SessionMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: SessionMock.hpp + */ +#ifndef SESSIONMOCK_HPP +#define SESSIONMOCK_HPP + +#include "././eedb/Session.hpp" +#include + +namespace eedb { + +class SessionMock : public Session { + public: + MOCK_METHOD0(db, eedb::()); + MOCK_CONST_METHOD0(enviroment, const Wt::WEnvironment &()); + MOCK_METHOD0(login, Wt::Auth::Login &()); +}; + +} // namespace eedb + +#endif // SESSIONMOCK_HPP diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/SignalBaseMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/SignalBaseMock.hpp new file mode 100644 index 0000000..c50515c --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/SignalBaseMock.hpp @@ -0,0 +1,22 @@ +/* + * file generated by gmock: SignalBaseMock.hpp + */ +#ifndef SIGNALBASEMOCK_HPP +#define SIGNALBASEMOCK_HPP + +#include +#include "/usr/local/include/Wt/WSignal.h" + +namespace Wt { + +class SignalBaseMock : public SignalBase +{ +public: + MOCK_CONST_METHOD0(isConnected, bool()); + MOCK_METHOD2(connect, Wt::Signals::connection(Wt::WObject *, WObject::Method)); +}; + +} // namespace Wt + +#endif // SIGNALBASEMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UserMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UserMock.hpp new file mode 100644 index 0000000..413da47 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UserMock.hpp @@ -0,0 +1,49 @@ +#pragma once + +#include + +#include + +#include +#include + +#include +#include + +#include + +namespace eedb::db { + +class UserMock : public ::eedb::UserMock { + public: + /// TODO chenge to transaction + void _init(db::PgConnection & db) { + using namespace testing; + + _id = db(sqlpp::postgresql::insert_into(t_auth_info) + .set( // + t_auth_info.password_hash = "$2y$07$RyytUhDhLDbAPjf0b0r2Y.dsg.FlQ7L.xzWHMmoelI81u0MfBrW7q", + t_auth_info.password_method = "bcrypt", + t_auth_info.password_salt = "OM/Z1c4WBFXvwkxh", + t_auth_info.email = "none@eedb.pl", // + t_auth_info.status = 0) + .returning(t_auth_info.id)) + .front() + .id; + + ON_CALL(*this, uid()).WillByDefault(Return(_id)); + } + + void _createIdentity(db::PgConnection & db, const ::eedb::AuthIdentityConst & id) { + db(insert_into(t_auth_identity) // + .set(t_auth_identity.auth_info_id = _id, + t_auth_identity.provider = std::string{id.provider()}, + t_auth_identity.identity = std::string{id.identity()})); + } + private: + int64_t _id; +}; + +class PgUserMock : public UserMock {}; + +} // namespace eedb::db diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UserNameMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UserNameMock.hpp new file mode 100644 index 0000000..9581c34 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UserNameMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: UserNameMock.hpp + */ +#ifndef USERNAMEMOCK_HPP +#define USERNAMEMOCK_HPP + +#include +#include "././eedb/db/User.hpp" + +namespace eedb { + +class UserNameMock : public UserName +{ +public: + MOCK_CONST_METHOD0(isValid, bool()); +}; + +} // namespace eedb + +#endif // USERNAMEMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UsersMock.hpp b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UsersMock.hpp new file mode 100644 index 0000000..3591436 --- /dev/null +++ b/src/libs/db/postgresql_connector/mock/include/eedb/mock/db/pg/UsersMock.hpp @@ -0,0 +1,22 @@ +/* + * file generated by gmock: UsersMock.hpp + */ +#ifndef USERSMOCK_HPP +#define USERSMOCK_HPP + +#include + +#include + +namespace eedb { + +class UsersMock : public Users +{ +public: + MOCK_CONST_METHOD1(removeUser, void(int)); +}; + +} // namespace eedb + +#endif // USERSMOCK_HPP + diff --git a/src/libs/db/postgresql_connector/src/RawSql.cpp b/src/libs/db/postgresql_connector/src/RawSql.cpp index 5dee242..eb36a6d 100644 --- a/src/libs/db/postgresql_connector/src/RawSql.cpp +++ b/src/libs/db/postgresql_connector/src/RawSql.cpp @@ -1,9 +1,9 @@ -#include +#include #include #include -#include +#include #include namespace eedb::db{ diff --git a/src/libs/db/postgresql_connector/src/config.cpp b/src/libs/db/postgresql_connector/src/config.cpp index c139e8c..9c6ae84 100644 --- a/src/libs/db/postgresql_connector/src/config.cpp +++ b/src/libs/db/postgresql_connector/src/config.cpp @@ -1,4 +1,4 @@ -#include "config.hpp" +#include "eedb/db/pg/config.hpp" namespace eedb::db { diff --git a/src/libs/db/postgresql_connector/src/connection.cpp b/src/libs/db/postgresql_connector/src/connection.cpp index f5e37e0..25bece7 100644 --- a/src/libs/db/postgresql_connector/src/connection.cpp +++ b/src/libs/db/postgresql_connector/src/connection.cpp @@ -1,5 +1,5 @@ -#include "config.hpp" -#include "connection.hpp" +#include "eedb/db/pg/config.hpp" +#include "eedb/db/pg/connection.hpp" namespace eedb::db { diff --git a/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.cpp b/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.cpp index ef6eb1a..aa040a9 100644 --- a/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.cpp @@ -1,8 +1,8 @@ -#include "data/PgAuthIdentity.hpp" +#include "eedb/db/pg/PgAuthIdentity.hpp" -#include -#include -#include +#include +#include +#include #include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.hpp b/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.hpp index f2256ee..e6b6d13 100644 --- a/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgAuthIdentity.hpp @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgAuthToken.cpp b/src/libs/db/postgresql_connector/src/data/PgAuthToken.cpp index 92a2745..c73b8b8 100644 --- a/src/libs/db/postgresql_connector/src/data/PgAuthToken.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgAuthToken.cpp @@ -1,9 +1,9 @@ -#include +#include -#include +#include -#include -#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgAuthToken.hpp b/src/libs/db/postgresql_connector/src/data/PgAuthToken.hpp index 1dd48c6..58d2fd0 100644 --- a/src/libs/db/postgresql_connector/src/data/PgAuthToken.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgAuthToken.hpp @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgCategories.cpp b/src/libs/db/postgresql_connector/src/data/PgCategories.cpp index 974b018..4828c78 100644 --- a/src/libs/db/postgresql_connector/src/data/PgCategories.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgCategories.cpp @@ -1,9 +1,8 @@ -#include "data/PgCategories.hpp" +#include "eedb/db/pg/PgCategories.hpp" -#include - -#include -#include +#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgCategories.hpp b/src/libs/db/postgresql_connector/src/data/PgCategories.hpp index 8259822..13cdcf6 100644 --- a/src/libs/db/postgresql_connector/src/data/PgCategories.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgCategories.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.cpp b/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.cpp index de9ebcc..753bb35 100644 --- a/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.cpp @@ -1,9 +1,9 @@ -#include +#include -#include +#include -#include -#include +#include +#include namespace eedb { struct PgCategoriesRepository::PgCategoriesRepositoryPriv { diff --git a/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.hpp b/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.hpp index de88009..3b48581 100644 --- a/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgCategoriesRepository.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgCategory.cpp b/src/libs/db/postgresql_connector/src/data/PgCategory.cpp index 157a7ab..4db0290 100644 --- a/src/libs/db/postgresql_connector/src/data/PgCategory.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgCategory.cpp @@ -1,10 +1,10 @@ -#include +#include -#include -#include -#include +#include +#include +#include -#include +#include #include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgCategory.hpp b/src/libs/db/postgresql_connector/src/data/PgCategory.hpp index 7e1b29c..1b249ae 100644 --- a/src/libs/db/postgresql_connector/src/data/PgCategory.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgCategory.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgUser.cpp b/src/libs/db/postgresql_connector/src/data/PgUser.cpp index e5f9ba8..bf0c088 100644 --- a/src/libs/db/postgresql_connector/src/data/PgUser.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgUser.cpp @@ -1,12 +1,10 @@ -#include +#include -#include -#include -#include - -#include - -#include +#include +#include +#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgUser.hpp b/src/libs/db/postgresql_connector/src/data/PgUser.hpp index ad425bd..496ed25 100644 --- a/src/libs/db/postgresql_connector/src/data/PgUser.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgUser.hpp @@ -1,8 +1,8 @@ #pragma once -#include +#include -#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgUsers.cpp b/src/libs/db/postgresql_connector/src/data/PgUsers.cpp index 4c086a8..c6e9511 100644 --- a/src/libs/db/postgresql_connector/src/data/PgUsers.cpp +++ b/src/libs/db/postgresql_connector/src/data/PgUsers.cpp @@ -1,16 +1,16 @@ -#include +#include -#include +#include -#include -#include -#include -#include +#include +#include +#include +#include -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/src/libs/db/postgresql_connector/src/data/PgUsers.hpp b/src/libs/db/postgresql_connector/src/data/PgUsers.hpp index e221e43..2f2e559 100644 --- a/src/libs/db/postgresql_connector/src/data/PgUsers.hpp +++ b/src/libs/db/postgresql_connector/src/data/PgUsers.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/db/postgresql_connector/test/CMakeLists.txt b/src/libs/db/postgresql_connector/test/CMakeLists.txt index 4c11b7d..646d695 100644 --- a/src/libs/db/postgresql_connector/test/CMakeLists.txt +++ b/src/libs/db/postgresql_connector/test/CMakeLists.txt @@ -11,6 +11,7 @@ file(GLOB_RECURSE TEST_FILES test_*.cpp ) add_executable( ${TEST_EXECUTABLE_NAME} ${TEST_FILES}) target_link_libraries(${TEST_EXECUTABLE_NAME} + PRIVATE postgres_connector-mock PRIVATE eedb PRIVATE postgres_connector PRIVATE GMock::main diff --git a/src/libs/db/postgresql_connector/test/DbTestBase.hpp b/src/libs/db/postgresql_connector/test/DbTestBase.hpp index 9d73697..9e149e9 100644 --- a/src/libs/db/postgresql_connector/test/DbTestBase.hpp +++ b/src/libs/db/postgresql_connector/test/DbTestBase.hpp @@ -1,8 +1,8 @@ #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentities.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentities.cpp index 287183a..d55974a 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentities.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentities.cpp @@ -1,32 +1,10 @@ #include -#include - -#include -#include -#include - -#include -#include +#include #include "DbTestBase.hpp" -namespace { -class UserMock : public eedb::User { - public: - MOCK_CONST_METHOD0(uid, int()); - const eedb::UserName & name() const {} - const eedb::UserConfig & config() const override {} - eedb::AuthTokens & authTokens() const override {} - void logout() override {} - eedb::AuthIdentities & authIdentities() const {} - int64_t _uid; - - // User interface - public: - eedb::AuthInfo & authInfo() const override {} -}; -} // namespace +#include class PgAuthIdentitiesTest : public DbTestBase< PgAuthIdentitiesTest > { public: @@ -34,35 +12,18 @@ class PgAuthIdentitiesTest : public DbTestBase< PgAuthIdentitiesTest > { using namespace testing; db().native()->start_transaction(); - authInfoId = db()(sqlpp::postgresql::insert_into(t_auth_info) - .set( // - t_auth_info.password_hash = "$2y$07$RyytUhDhLDbAPjf0b0r2Y.dsg.FlQ7L.xzWHMmoelI81u0MfBrW7q", - t_auth_info.password_method = "bcrypt", - t_auth_info.password_salt = "OM/Z1c4WBFXvwkxh", - t_auth_info.email = "none@eedb.pl", // - t_auth_info.status = 0) - .returning(t_auth_info.id)) - .front() - .id; + user._init(db()); + user._createIdentity(db(), {"identity", "provider"}); - EXPECT_CALL(user, uid()).WillRepeatedly(testing::Return(authInfoId)); sut = std::make_unique< eedb::PgAuthIdentities >(db(), &user); } - void createIdentity(const eedb::AuthIdentityConst id) { - db()(insert_into(t_auth_identity) // - .set(t_auth_identity.auth_info_id = authInfoId, - t_auth_identity.provider = std::string{id.provider()}, - t_auth_identity.identity = std::string{id.identity()})); - } - ~PgAuthIdentitiesTest() { db().native()->rollback_transaction(false); } protected: - UserMock user; - int64_t authInfoId{0}; + eedb::db::UserMock user; std::unique_ptr< eedb::PgAuthIdentities > sut; }; @@ -77,7 +38,6 @@ TEST_F(PgAuthIdentitiesTest, searchForFalseIdentity) { } TEST_F(PgAuthIdentitiesTest, findIdentity) { - createIdentity({"identity", "provider"}); EXPECT_TRUE(sut->byProvider("provider")); } @@ -87,7 +47,6 @@ TEST_F(PgAuthIdentitiesTest, addProvider) { } TEST_F(PgAuthIdentitiesTest, removeIdentity) { - createIdentity({"identity", "provider"}); sut->removeProvider("provider"); EXPECT_FALSE(sut->byProvider("provider")); } diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentity.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentity.cpp index b10e915..dd3e637 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentity.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthIdentity.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include "DbTestBase.hpp" diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthToken.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthToken.cpp index 6ce1025..b4ae027 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthToken.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthToken.cpp @@ -1,15 +1,16 @@ #include -#include +#include -#include -#include +#include +#include -#include +#include #include #include "DbTestBase.hpp" +#include class PgAuthTokenTest : public DbTestBase< PgAuthTokenTest > { public: @@ -17,20 +18,11 @@ class PgAuthTokenTest : public DbTestBase< PgAuthTokenTest > { using namespace testing; db().native()->start_transaction(); - authInfoId = db()(sqlpp::postgresql::insert_into(t_auth_info) - .set( // - t_auth_info.password_hash = "$2y$07$RyytUhDhLDbAPjf0b0r2Y.dsg.FlQ7L.xzWHMmoelI81u0MfBrW7q", - t_auth_info.password_method = "bcrypt", - t_auth_info.password_salt = "OM/Z1c4WBFXvwkxh", - t_auth_info.email = "none@eedb.pl", // - t_auth_info.status = 0) - .returning(t_auth_info.id)) - .front() - .id; + _user._init(db()); sutId = db()(sqlpp::postgresql::insert_into(t_auth_token) // .set( // - t_auth_token.auth_info_id = authInfoId, // + t_auth_token.auth_info_id = _user.uid(), // t_auth_token.expires = std::chrono::system_clock::now(), // t_auth_token.role = static_cast< int >(eedb::AuthTokenRole::Auth), // t_auth_token.value = "empty") // @@ -42,8 +34,8 @@ class PgAuthTokenTest : public DbTestBase< PgAuthTokenTest > { } void setExpireDate(std::chrono::system_clock::time_point exp) { - using namespace std::chrono; - db()(update(t_auth_token).set(t_auth_token.expires = time_point_cast< microseconds >(exp)).where(t_auth_token.id == sutId)); + using namespace std::chrono; + db()(update(t_auth_token).set(t_auth_token.expires = time_point_cast< microseconds >(exp)).where(t_auth_token.id == sutId)); } ~PgAuthTokenTest() { @@ -51,7 +43,8 @@ class PgAuthTokenTest : public DbTestBase< PgAuthTokenTest > { } protected: - int64_t authInfoId; + eedb::db::UserMock _user; + int64_t sutId; std::unique_ptr< eedb::PgAuthToken > sut; }; diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthTokens.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthTokens.cpp index 1845df8..e02d8c6 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthTokens.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgAuthTokens.cpp @@ -1,61 +1,25 @@ #include -#include - -#include -#include -#include - -#include -#include +#include #include "DbTestBase.hpp" -namespace { -class UserMock : public eedb::User { - public: - MOCK_CONST_METHOD0(uid, int()); - const eedb::UserName & name() const {} - const eedb::UserConfig & config() const override {} - eedb::AuthTokens & authTokens() const override {} - void logout() override {} - eedb::AuthIdentities & authIdentities() const {} - int64_t _uid; - - // User interface - public: - eedb::AuthInfo & authInfo() const override {} -}; -} // namespace +#include +#include class PgAuthTokensTest : public DbTestBase< PgAuthTokensTest > { public: PgAuthTokensTest() { using namespace testing; db().native()->start_transaction(); + user._init(db()); - authInfoId = db()(sqlpp::postgresql::insert_into(t_auth_info) - .set( // - t_auth_info.password_hash = "$2y$07$RyytUhDhLDbAPjf0b0r2Y.dsg.FlQ7L.xzWHMmoelI81u0MfBrW7q", - t_auth_info.password_method = "bcrypt", - t_auth_info.password_salt = "OM/Z1c4WBFXvwkxh", - t_auth_info.email = "none@eedb.pl", // - t_auth_info.status = 0) - .returning(t_auth_info.id)) - .front() - .id; - - EXPECT_CALL(user, uid()).WillRepeatedly(testing::Return(authInfoId)); sut = std::make_unique< eedb::PgAuthTokens >(db(), &user); } void createToken(std::string hash, eedb::AuthTokenRole role) { - db()(sqlpp::postgresql::insert_into(t_auth_token) // - .set( // - t_auth_token.value = hash, // - t_auth_token.auth_info_id = authInfoId, // - t_auth_token.role = static_cast< int16_t >(role), // - t_auth_token.expires = std::chrono::system_clock::now() + std::chrono::hours{1})); + eedb::db::AuthTokenMock token; + token._init(db(), role, user, hash); } ~PgAuthTokensTest() { @@ -63,8 +27,7 @@ class PgAuthTokensTest : public DbTestBase< PgAuthTokensTest > { } protected: - UserMock user; - int64_t authInfoId{0}; + eedb::db::UserMock user; std::unique_ptr< eedb::PgAuthTokens > sut; }; @@ -72,7 +35,7 @@ template <> std::unique_ptr< PgTestDatabasePrepare > DbTestBase< PgAuthTokensTest >::_test_db = {}; using namespace sqlpp; -using namespace eedb; +using namespace eedb; TEST_F(PgAuthTokensTest, authTokenFound) { createToken("token", AuthTokenRole::Auth); diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategories.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategories.cpp index bafd4fa..34648f3 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategories.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategories.cpp @@ -1,4 +1,4 @@ -#include +#include #include "DbTestBase.hpp" diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategoriesRepository.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategoriesRepository.cpp index 90047de..f8dfb28 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategoriesRepository.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategoriesRepository.cpp @@ -1,14 +1,17 @@ #include -#include +#include #include "DbTestBase.hpp" +#include + class PgCategoriesRepositoryTest : public DbTestBase< PgCategoriesRepositoryTest > { public: PgCategoriesRepositoryTest() { db().native()->start_transaction(); - sut = std::make_unique< eedb::PgCategoriesRepository >(db(), static_cast< eedb::User * >(nullptr)); + _userMock._init(db()); + sut = std::make_unique< eedb::PgCategoriesRepository >(db(), &_userMock); } ~PgCategoriesRepositoryTest() { @@ -16,13 +19,17 @@ class PgCategoriesRepositoryTest : public DbTestBase< PgCategoriesRepositoryTest } protected: + eedb::db::UserMock _userMock; std::unique_ptr< eedb::PgCategoriesRepository > sut; }; template <> std::unique_ptr< PgTestDatabasePrepare > DbTestBase< PgCategoriesRepositoryTest >::_test_db = {}; +using namespace testing; + TEST_F(PgCategoriesRepositoryTest, rootNotNull) { + EXPECT_CALL(_userMock, uid()).WillOnce(Return(1)); auto root = sut->root(); ASSERT_TRUE(root); // EXPECT_FALSE(root->detached()); diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategory.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategory.cpp index 2c3982a..e8eee29 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategory.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgCategory.cpp @@ -1,28 +1,15 @@ -#include +#include #include "DbTestBase.hpp" -#include -#include -#include -#include - -#include -#include +#include class PgCategoryTest : public DbTestBase< PgCategoryTest > { public: PgCategoryTest() { db().native()->start_transaction(); - - eedb::PgUsers(db()) // - .addUser( // - std::make_unique< eedb::AuthInfoConst >(eedb::Password{"", "", ""}, // - eedb::Email{"root@eedb.pl"}), - std::make_unique< eedb::AuthIdentityConst >("root", "loginname")); - - user = eedb::PgUsers(db()).findWith(eedb::AuthIdentityConst{"root", "loginname"}); - sut = std::make_unique< eedb::PgCategory >(db(), user.get()); + user._init(db()); + sut = std::make_unique< eedb::PgCategory >(db(), &user); } auto insertCategory(std::string name, int64_t parentId) { @@ -36,7 +23,7 @@ class PgCategoryTest : public DbTestBase< PgCategoryTest > { } protected: - std::unique_ptr< eedb::User> user; + eedb::db::UserMock user; std::unique_ptr< eedb::PgCategory > sut; }; @@ -47,7 +34,7 @@ TEST_F(PgCategoryTest, rootCategoryHasNoParent) { EXPECT_FALSE(sut->parent()); } -//TEST_F(PgCategoryTest, rootCategoryIsNotDetached) { +// TEST_F(PgCategoryTest, rootCategoryIsNotDetached) { // EXPECT_FALSE(sut->detached()); //} @@ -63,7 +50,7 @@ TEST_F(PgCategoryTest, getChildren) { EXPECT_EQ(children->size(), 0); } -TEST_F(PgCategoryTest, childHasParent ) { +TEST_F(PgCategoryTest, childHasParent) { sut->create("name1", "description"); sut->create("name2", "description"); diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgUser.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgUser.cpp index bfd29c2..04441e8 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgUser.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgUser.cpp @@ -1,10 +1,10 @@ -#include +#include -#include -#include -#include +#include +#include +#include +#include -#include #include #include "DbTestBase.hpp" diff --git a/src/libs/db/postgresql_connector/test/test_eedb_data_PgUsers.cpp b/src/libs/db/postgresql_connector/test/test_eedb_data_PgUsers.cpp index e0f1b96..3df5343 100644 --- a/src/libs/db/postgresql_connector/test/test_eedb_data_PgUsers.cpp +++ b/src/libs/db/postgresql_connector/test/test_eedb_data_PgUsers.cpp @@ -1,9 +1,9 @@ -#include +#include -#include -#include +#include +#include +#include -#include #include #include "DbTestBase.hpp" diff --git a/src/libs/eedb/CMakeLists.txt b/src/libs/eedb/CMakeLists.txt index 1bbee5e..758f787 100644 --- a/src/libs/eedb/CMakeLists.txt +++ b/src/libs/eedb/CMakeLists.txt @@ -1,6 +1,6 @@ set(LIB eedb) -file(GLOB_RECURSE eedb_SOURCE src/*) +file(GLOB_RECURSE eedb_SOURCE src/dummy*) # find packages find_package(nlohmann_json CONFIG REQUIRED) @@ -23,3 +23,6 @@ target_link_libraries(${LIB} # add cotire set_target_properties(${LIB} PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE) cotire(${LIB}) + +# add tests +add_subdirectory(test) diff --git a/src/libs/eedb/include/eedb/db/AuthIdentitiesConst.hpp b/src/libs/eedb/include/eedb/db/AuthIdentitiesConst.hpp index 97dc2a2..1146ef7 100644 --- a/src/libs/eedb/include/eedb/db/AuthIdentitiesConst.hpp +++ b/src/libs/eedb/include/eedb/db/AuthIdentitiesConst.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include namespace eebd { diff --git a/src/libs/eedb/include/eedb/db/AuthIdentityConst.hpp b/src/libs/eedb/include/eedb/db/AuthIdentityConst.hpp index cb31ee1..5115aee 100644 --- a/src/libs/eedb/include/eedb/db/AuthIdentityConst.hpp +++ b/src/libs/eedb/include/eedb/db/AuthIdentityConst.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include namespace eedb { class AuthIdentityConst final : public AuthIdentity { diff --git a/src/libs/eedb/include/eedb/db/AuthInfo.hpp b/src/libs/eedb/include/eedb/db/AuthInfo.hpp index 5f017a6..4c9bae6 100644 --- a/src/libs/eedb/include/eedb/db/AuthInfo.hpp +++ b/src/libs/eedb/include/eedb/db/AuthInfo.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include namespace eedb { diff --git a/src/libs/eedb/include/eedb/db/AuthInfoConst.hpp b/src/libs/eedb/include/eedb/db/AuthInfoConst.hpp index 75bbb32..ae48704 100644 --- a/src/libs/eedb/include/eedb/db/AuthInfoConst.hpp +++ b/src/libs/eedb/include/eedb/db/AuthInfoConst.hpp @@ -1,9 +1,9 @@ #pragma once -#include +#include -#include -#include +#include +#include namespace eedb { class AuthInfoConst final : public AuthInfo { diff --git a/src/libs/eedb/include/eedb/db/AuthTokenConst.hpp b/src/libs/eedb/include/eedb/db/AuthTokenConst.hpp index 03b99a6..908b104 100644 --- a/src/libs/eedb/include/eedb/db/AuthTokenConst.hpp +++ b/src/libs/eedb/include/eedb/db/AuthTokenConst.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include namespace eedb { diff --git a/src/libs/eedb/include/eedb/db/AuthTokens.hpp b/src/libs/eedb/include/eedb/db/AuthTokens.hpp index 96e6b9c..6d19325 100644 --- a/src/libs/eedb/include/eedb/db/AuthTokens.hpp +++ b/src/libs/eedb/include/eedb/db/AuthTokens.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/src/libs/eedb/src/EEDB.cpp b/src/libs/eedb/src/EEDB.cpp index 72ef75e..8845b73 100644 --- a/src/libs/eedb/src/EEDB.cpp +++ b/src/libs/eedb/src/EEDB.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/libs/eedb/src/WebSession.cpp b/src/libs/eedb/src/WebSession.cpp index b54dd0e..f84ed11 100644 --- a/src/libs/eedb/src/WebSession.cpp +++ b/src/libs/eedb/src/WebSession.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include namespace eedb { WebSession::WebSession(std::unique_ptr< eedb::db::PgConnection > dbConnection, const Wt::WEnvironment & env) diff --git a/src/libs/eedb/test/CMakeLists.txt b/src/libs/eedb/test/CMakeLists.txt new file mode 100644 index 0000000..e07b9ed --- /dev/null +++ b/src/libs/eedb/test/CMakeLists.txt @@ -0,0 +1,9 @@ +set(LIB eedb-mock) + +# create library +add_library(${LIB} INTERFACE) + +# link all +target_include_directories(${LIB} INTERFACE + include +) diff --git a/src/libs/eedb/test/include/eedb/mock/db/AuthIdentitiesMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/AuthIdentitiesMock.hpp new file mode 100644 index 0000000..a56a08d --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/AuthIdentitiesMock.hpp @@ -0,0 +1,23 @@ +/* + * file generated by gmock: AuthIdentitiesMock.hpp + */ +#ifndef AUTHIDENTITIESMOCK_HPP +#define AUTHIDENTITIESMOCK_HPP + +#include +#include "././eedb/db/AuthIdentities.hpp" + +namespace eedb { + +class AuthIdentitiesMock : public AuthIdentities +{ +public: + MOCK_METHOD1(addIdentity, AuthIdentity*(int)); + MOCK_CONST_METHOD1(byProvider, AuthIdentity*(int)); + MOCK_METHOD1(removeProvider, void(int)); +}; + +} // namespace eedb + +#endif // AUTHIDENTITIESMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/AuthInfoMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/AuthInfoMock.hpp new file mode 100644 index 0000000..572399d --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/AuthInfoMock.hpp @@ -0,0 +1,23 @@ +/* + * file generated by gmock: AuthInfoMock.hpp + */ +#ifndef AUTHINFOMOCK_HPP +#define AUTHINFOMOCK_HPP + +#include +#include "././eedb/db/AuthInfo.hpp" + +namespace eedb { + +class AuthInfoMock : public AuthInfo +{ +public: + MOCK_CONST_METHOD0(password, const Password&()); + MOCK_CONST_METHOD0(email, const Email&()); + MOCK_CONST_METHOD0(emailVerified, bool()); +}; + +} // namespace eedb + +#endif // AUTHINFOMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/AuthTokenMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/AuthTokenMock.hpp new file mode 100644 index 0000000..d1e7caa --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/AuthTokenMock.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include + +#include + +namespace eedb { + +class AuthTokenMock : public AuthToken { + public: + MOCK_CONST_METHOD0(token, std::string_view()); + MOCK_CONST_METHOD0(expireTimepoint, us_point()); + MOCK_CONST_METHOD0(expired, bool()); + MOCK_METHOD1(update, void(std::string)); +}; + +} // namespace eedb diff --git a/src/libs/eedb/test/include/eedb/mock/db/AuthTokensMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/AuthTokensMock.hpp new file mode 100644 index 0000000..4162d6c --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/AuthTokensMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: AuthTokensMock.hpp + */ +#ifndef AUTHTOKENSMOCK_HPP +#define AUTHTOKENSMOCK_HPP + +#include +#include "././eedb/db/AuthTokens.hpp" + +namespace eedb { + +class AuthTokensMock : public AuthTokens +{ +public: + MOCK_METHOD1(removeToken, void(int)); +}; + +} // namespace eedb + +#endif // AUTHTOKENSMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/CategoriesMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/CategoriesMock.hpp new file mode 100644 index 0000000..b05a703 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/CategoriesMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: CategoriesMock.hpp + */ +#ifndef CATEGORIESMOCK_HPP +#define CATEGORIESMOCK_HPP + +#include +#include "././eedb/db/Category.hpp" + +namespace eedb { + +class CategoriesMock : public Categories +{ +public: + MOCK_CONST_METHOD0(size, long()); +}; + +} // namespace eedb + +#endif // CATEGORIESMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/CategoryMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/CategoryMock.hpp new file mode 100644 index 0000000..d5005c2 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/CategoryMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: CategoryMock.hpp + */ +#ifndef CATEGORYMOCK_HPP +#define CATEGORYMOCK_HPP + +#include +#include "././eedb/db/Category.hpp" + +namespace eedb { + +class CategoryMock : public Category +{ +public: + MOCK_CONST_METHOD0(parent, Category*()); +}; + +} // namespace eedb + +#endif // CATEGORYMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/ItemMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/ItemMock.hpp new file mode 100644 index 0000000..bfeb186 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/ItemMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: ItemMock.hpp + */ +#ifndef ITEMMOCK_HPP +#define ITEMMOCK_HPP + +#include +#include "././eedb/db/Item.hpp" + +namespace eedb { + +class ItemMock : public Item +{ +public: + MOCK_CONST_METHOD0(values, Values&()); +}; + +} // namespace eedb + +#endif // ITEMMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/ItemQueryFiltersMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/ItemQueryFiltersMock.hpp new file mode 100644 index 0000000..89d9faf --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/ItemQueryFiltersMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: ItemQueryFiltersMock.hpp + */ +#ifndef ITEMQUERYFILTERSMOCK_HPP +#define ITEMQUERYFILTERSMOCK_HPP + +#include +#include "././eedb/db/Item.hpp" + +namespace eedb { + +class ItemQueryFiltersMock : public ItemQueryFilters +{ +public: + MOCK_CONST_METHOD0(category, Category*()); +}; + +} // namespace eedb + +#endif // ITEMQUERYFILTERSMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/ItemsMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/ItemsMock.hpp new file mode 100644 index 0000000..2a69451 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/ItemsMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: ItemsMock.hpp + */ +#ifndef ITEMSMOCK_HPP +#define ITEMSMOCK_HPP + +#include +#include "././eedb/db/Item.hpp" + +namespace eedb { + +class ItemsMock : public Items +{ +public: + MOCK_CONST_METHOD0(size, long()); +}; + +} // namespace eedb + +#endif // ITEMSMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/SessionMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/SessionMock.hpp new file mode 100644 index 0000000..1373778 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/SessionMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: SessionMock.hpp + */ +#ifndef SESSIONMOCK_HPP +#define SESSIONMOCK_HPP + +#include "././eedb/Session.hpp" +#include + +namespace eedb { + +class SessionMock : public Session { + public: + MOCK_METHOD0(db, eedb::()); + MOCK_CONST_METHOD0(enviroment, const Wt::WEnvironment &()); + MOCK_METHOD0(login, Wt::Auth::Login &()); +}; + +} // namespace eedb + +#endif // SESSIONMOCK_HPP diff --git a/src/libs/eedb/test/include/eedb/mock/db/SignalBaseMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/SignalBaseMock.hpp new file mode 100644 index 0000000..c50515c --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/SignalBaseMock.hpp @@ -0,0 +1,22 @@ +/* + * file generated by gmock: SignalBaseMock.hpp + */ +#ifndef SIGNALBASEMOCK_HPP +#define SIGNALBASEMOCK_HPP + +#include +#include "/usr/local/include/Wt/WSignal.h" + +namespace Wt { + +class SignalBaseMock : public SignalBase +{ +public: + MOCK_CONST_METHOD0(isConnected, bool()); + MOCK_METHOD2(connect, Wt::Signals::connection(Wt::WObject *, WObject::Method)); +}; + +} // namespace Wt + +#endif // SIGNALBASEMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/UserMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/UserMock.hpp new file mode 100644 index 0000000..361f01e --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/UserMock.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include + +#include +#include +#include +#include +#include + +namespace eedb { + +class UserMock : public User { + public: + MOCK_CONST_METHOD0(uid, int()); + MOCK_CONST_METHOD0(name, const UserName &()); + MOCK_CONST_METHOD0(config, const UserConfig &()); + MOCK_CONST_METHOD0(authTokens, AuthTokens &()); + MOCK_CONST_METHOD0(authIdentities, AuthIdentities &()); + MOCK_CONST_METHOD0(authInfo, AuthInfo &()); + MOCK_METHOD0(logout, void()); +}; + +} // namespace eedb diff --git a/src/libs/eedb/test/include/eedb/mock/db/UserNameMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/UserNameMock.hpp new file mode 100644 index 0000000..9581c34 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/UserNameMock.hpp @@ -0,0 +1,21 @@ +/* + * file generated by gmock: UserNameMock.hpp + */ +#ifndef USERNAMEMOCK_HPP +#define USERNAMEMOCK_HPP + +#include +#include "././eedb/db/User.hpp" + +namespace eedb { + +class UserNameMock : public UserName +{ +public: + MOCK_CONST_METHOD0(isValid, bool()); +}; + +} // namespace eedb + +#endif // USERNAMEMOCK_HPP + diff --git a/src/libs/eedb/test/include/eedb/mock/db/UsersMock.hpp b/src/libs/eedb/test/include/eedb/mock/db/UsersMock.hpp new file mode 100644 index 0000000..3591436 --- /dev/null +++ b/src/libs/eedb/test/include/eedb/mock/db/UsersMock.hpp @@ -0,0 +1,22 @@ +/* + * file generated by gmock: UsersMock.hpp + */ +#ifndef USERSMOCK_HPP +#define USERSMOCK_HPP + +#include + +#include + +namespace eedb { + +class UsersMock : public Users +{ +public: + MOCK_CONST_METHOD1(removeUser, void(int)); +}; + +} // namespace eedb + +#endif // USERSMOCK_HPP + diff --git a/src/libs/widgets/include/widget/CategoryThree.hpp b/src/libs/widgets/include/widget/CategoryThree.hpp index 5f51c18..c4366e0 100644 --- a/src/libs/widgets/include/widget/CategoryThree.hpp +++ b/src/libs/widgets/include/widget/CategoryThree.hpp @@ -2,7 +2,7 @@ #include -#include +#include namespace Wt { class WContainerWidget; diff --git a/src/libs/widgets/src/DefaultCategoryTree.cpp b/src/libs/widgets/src/DefaultCategoryTree.cpp index 0ce2398..ff86c1c 100644 --- a/src/libs/widgets/src/DefaultCategoryTree.cpp +++ b/src/libs/widgets/src/DefaultCategoryTree.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include