query/test/RecordTest.cpp

49 lines
1.1 KiB
C++

#include <catch2/catch_test_macros.hpp>
#include <matador/sql/record.hpp>
#include <list>
using namespace matador::sql;
TEST_CASE("Create record", "[record]") {
record rec({
make_pk_column<unsigned long>("id"),
make_column<std::string>("name", 255),
make_column<std::string>("color", 255)
});
REQUIRE(rec.size() == 3);
std::list<std::string> expected_columns = {"id", "name", "color"};
for(const auto &col : expected_columns) {
REQUIRE(rec.find(col) != rec.end());
}
for(const auto& col : rec) {
expected_columns.remove(col.name());
}
REQUIRE(expected_columns.empty());
}
TEST_CASE("Append to record", "[record]") {
record rec;
rec.append(make_pk_column<unsigned long>("id"));
rec.append<std::string>("name", 255);
rec.append<std::string>("color", 63);
REQUIRE(rec.size() == 3);
std::list<std::string> expected_columns = {"id", "name", "color"};
for(const auto &col : expected_columns) {
REQUIRE(rec.find(col) != rec.end());
}
for(const auto& col : rec) {
expected_columns.remove(col.name());
}
REQUIRE(expected_columns.empty());
}