#include #include "matador/sql/value.hpp" #include "matador/utils/types.hpp" using namespace matador::sql; TEST_CASE("Test value class", "[value]") { value v; REQUIRE(v.is_unknown()); REQUIRE(v.type() == data_type_t::type_unknown); REQUIRE(v.size() == 0); v = 7; REQUIRE(v.is_integer()); REQUIRE(v.type() == data_type_t::type_int); REQUIRE(v.size() == 0); REQUIRE(v.as() == 7); REQUIRE(v.as() == 7); v = "test"; REQUIRE(v.is_varchar()); REQUIRE(v.type() == data_type_t::type_char_pointer); REQUIRE(v.size() == 4); v = std::string{"hello"}; REQUIRE(v.is_varchar()); REQUIRE(v.type() == data_type_t::type_varchar); REQUIRE(v.size() == 5); v = 4.5; REQUIRE(v.is_floating_point()); REQUIRE(v.type() == data_type_t::type_double); REQUIRE(v.size() == 0); v = 6.7f; REQUIRE(v.is_floating_point()); REQUIRE(v.type() == data_type_t::type_float); REQUIRE(v.size() == 0); v = std::string(); REQUIRE(v.is_string()); REQUIRE(v.type() == data_type_t::type_text); REQUIRE(v.size() == 0); v = true; REQUIRE(v.is_bool()); REQUIRE(v.type() == data_type_t::type_bool); REQUIRE(v.size() == 0); v = nullptr; REQUIRE(v.is_null()); REQUIRE(v.type() == data_type_t::type_null); REQUIRE(v.size() == 0); v = matador::utils::blob{ 1, 2, 3, 4 }; REQUIRE(v.is_blob()); REQUIRE(v.type() == data_type_t::type_blob); REQUIRE(v.size() == 4); }