Files
sqlgen/tests/test_to_create_table.cpp
Dr. Patrick Urbanke 54e0d5e332 Added tests
2025-03-29 06:09:34 +01:00

36 lines
1.2 KiB
C++

#include <gtest/gtest.h>
#include <sqlgen.hpp>
#include <sqlgen/parsing/to_create_table.hpp>
TEST(general, test_to_create_table) {
struct TestTable {
std::string field1;
int32_t field2;
sqlgen::PrimaryKey<uint32_t> id;
std::optional<std::string> nullable;
};
const auto create_table_stmt = sqlgen::parsing::to_create_table<TestTable>();
const auto get_properties = [](const auto& _t) { return _t.properties; };
EXPECT_EQ(create_table_stmt.table.name, "TestTable");
EXPECT_EQ(create_table_stmt.columns.size(), 4);
EXPECT_EQ(create_table_stmt.columns.at(0).name, "field1");
EXPECT_EQ(create_table_stmt.columns.at(1).name, "field2");
EXPECT_EQ(create_table_stmt.columns.at(2).name, "id");
EXPECT_EQ(create_table_stmt.columns.at(3).name, "nullable");
EXPECT_EQ(create_table_stmt.columns.at(0).type.visit(get_properties).primary,
false);
EXPECT_EQ(create_table_stmt.columns.at(0).type.visit(get_properties).nullable,
false);
EXPECT_EQ(create_table_stmt.columns.at(2).type.visit(get_properties).primary,
true);
EXPECT_EQ(create_table_stmt.columns.at(3).type.visit(get_properties).nullable,
true);
}