/
UCS
/
sqlite_orm
Обзор
Документация
Войти
/
UCS
/
sqlite_orm
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/operators/cast.cpp
35 строк
1 KB
klaus triendl
Updated to Catch2 v3
15 янв 2023, 22:59
15 янв 2023, 22:59
3154d24
Код
Авторство
О чём код?
#include <sqlite_orm/sqlite_orm.h> #include <catch2/catch_all.hpp> using namespace sqlite_orm; TEST_CASE("Cast") { struct Student { int id; float scoreFloat; std::string scoreString; }; auto storage = make_storage("", make_table("students", make_column("id", &Student::id, primary_key()), make_column("score_float", &Student::scoreFloat), make_column("score_str", &Student::scoreString))); storage.sync_schema(); storage.replace(Student{1, 10.1f, "14.5"}); { auto rows = storage.select(columns(cast<int>(&Student::scoreFloat), cast<int>(&Student::scoreString))); REQUIRE(rows.size() == 1); auto& row = rows.front(); REQUIRE(std::get<0>(row) == 10); REQUIRE(std::get<1>(row) == 14); } { auto rows = storage.select(cast<std::string>(5)); REQUIRE(rows.size() == 1); auto& row = rows.front(); REQUIRE(row == "5"); } }