/
UCS
/
sqlite_orm
Обзор
Документация
Войти
/
UCS
/
sqlite_orm
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/operators/is_null.cpp
30 строк
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("Is null") { struct User { int id = 0; std::unique_ptr<std::string> name; #ifndef SQLITE_ORM_AGGREGATE_NSDMI_SUPPORTED User() = default; User(int id, decltype(name) name = nullptr) : id{id}, name{move(name)} {} #endif }; auto storage = make_storage( "", make_table("users", make_column("id", &User::id, primary_key()), make_column("name", &User::name))); storage.sync_schema(); REQUIRE(storage.count<User>() == 0); storage.replace(User{1, std::make_unique<std::string>("Sheldon")}); REQUIRE(storage.count<User>() == 1); storage.replace(User{2}); REQUIRE(storage.count<User>() == 2); storage.replace(User{3, std::make_unique<std::string>("Leonard")}); REQUIRE(storage.count<User>() == 3); REQUIRE(storage.count<User>(where(is_null(&User::name))) == 1); REQUIRE(storage.count<User>(where(is_not_null(&User::name))) == 2); }