-
Notifications
You must be signed in to change notification settings - Fork 166
Expand file tree
/
Copy pathnullptr_uniqueptr.cc
More file actions
27 lines (24 loc) · 1.04 KB
/
nullptr_uniqueptr.cc
File metadata and controls
27 lines (24 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
#include <vector>
#include <sqlite_modern_cpp.h>
#include <catch2/catch.hpp>
using namespace std;
using namespace sqlite;
TEST_CASE("nullptr & unique_ptr", "[null_ptr_unique_ptr]") {
database db(":memory:");
db << "CREATE TABLE tbl (id integer,age integer, name string, img blob);";
db << "INSERT INTO tbl VALUES (?, ?, ?, ?);" << 1 << 24 << "bob" << vector<int> { 1, 2 , 3};
unique_ptr<string> ptr_null;
db << "INSERT INTO tbl VALUES (?, ?, ?, ?);" << 2 << nullptr << ptr_null << nullptr;
db << "select age,name,img from tbl where id = 1" >> [](unique_ptr<int> age_p, unique_ptr<string> name_p, unique_ptr<vector<int>> img_p) {
REQUIRE(age_p != nullptr);
REQUIRE(name_p != nullptr);
REQUIRE(img_p != nullptr);
};
db << "select age,name,img from tbl where id = 2" >> [](unique_ptr<int> age_p, unique_ptr<string> name_p, unique_ptr<vector<int>> img_p) {
REQUIRE(age_p == nullptr);
REQUIRE(name_p == nullptr);
REQUIRE(img_p == nullptr);
};
}