#include #include "SchemaFixture.hpp" #include "matador/sql/backend_provider.hpp" #include "matador/sql/connection_pool.hpp" #include "matador/orm/schema.hpp" #include "../models/department.hpp" #include "../models/recipe.hpp" using namespace matador; using namespace matador::test; TEST_CASE_METHOD(SchemaFixture, "Test schema one-two-many", "[schema][one-to-many]") { using namespace matador::test; orm::schema repo(pool/*, "NoopSchema"*/); auto result = repo.attach("departments") .and_then( [&repo] { return repo.attach("employees"); } ); REQUIRE(result); result = repo.create(); REQUIRE(result); auto exists_result = repo.table_exists("departments"); REQUIRE(exists_result.is_ok()); REQUIRE(exists_result.value()); result = repo.drop(); REQUIRE(result); exists_result = repo.table_exists("departments"); REQUIRE(exists_result.is_ok()); REQUIRE(!exists_result.value()); } TEST_CASE_METHOD(SchemaFixture, "Test schema many-to-many", "[schema][many-to-many]") { using namespace matador::test; orm::schema repo(pool/*, "NoopSchema"*/); auto result = repo.attach("recipes") .and_then( [&repo] { return repo.attach("ingredients"); } ); REQUIRE(result); result = repo.create(); REQUIRE(result); auto exists_result = repo.table_exists("recipes"); REQUIRE(exists_result.is_ok()); REQUIRE(exists_result.value()); result = repo.drop(); REQUIRE(result); exists_result = repo.table_exists("recipes"); REQUIRE(exists_result.is_ok()); REQUIRE(!exists_result.value()); }