| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "gate/data/providers.hpp" | ||
| 2 | #include "gate/utilities.hpp" | ||
| 3 | #include "gate/tests.hpp" | ||
| 4 | |||
| 5 | 2 | static void createTestTables(gate::data::DataConnection& conn) | |
| 6 | { | ||
| 7 | using namespace gate; | ||
| 8 | |||
| 9 | // table with standard types | ||
| 10 | { | ||
| 11 | static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl0 (" | ||
| 12 | "id INTEGER PRIMARY KEY, " | ||
| 13 | "value INTEGER" | ||
| 14 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | ");"; |
| 15 | |||
| 16 |
3/10✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW( |
| 17 | gate::data::DataStatement stmt = conn.createStatement(sql); | ||
| 18 | stmt.execute(); | ||
| 19 | ); | ||
| 20 | } | ||
| 21 | |||
| 22 | // table with standard types | ||
| 23 | { | ||
| 24 | static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl1 (" | ||
| 25 | "id INTEGER PRIMARY KEY, " | ||
| 26 | "name TEXT, " | ||
| 27 | "age_years INTEGER, " | ||
| 28 | "birthday_unix INTEGER, " | ||
| 29 | "height_mm INTEGER, " | ||
| 30 | "weight_kg REAL, " | ||
| 31 | "picture BLOB" | ||
| 32 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | ");"; |
| 33 | |||
| 34 |
3/10✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW( |
| 35 | gate::data::DataStatement stmt = conn.createStatement(sql); | ||
| 36 | stmt.execute(); | ||
| 37 | ); | ||
| 38 | } | ||
| 39 | |||
| 40 | // table with special types | ||
| 41 | { | ||
| 42 | static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl2 (" | ||
| 43 | "id INTEGER PRIMARY KEY, " | ||
| 44 | "txt TEXT, " | ||
| 45 | "date_created TEXT, " | ||
| 46 | "date_accessed TEXT, " | ||
| 47 | "date_modified TEXT, " | ||
| 48 | "guid TEXT" | ||
| 49 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | ");"; |
| 50 | |||
| 51 |
3/10✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW( |
| 52 | gate::data::DataStatement stmt = conn.createStatement(sql); | ||
| 53 | stmt.execute(); | ||
| 54 | ); | ||
| 55 | } | ||
| 56 | 2 | } | |
| 57 | |||
| 58 | 2 | static void dropTestTables(gate::data::DataConnection& conn) | |
| 59 | { | ||
| 60 | using namespace gate; | ||
| 61 | |||
| 62 | { | ||
| 63 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | static StaticString const sql = "DROP TABLE unit_test_tbl0"; |
| 64 | |||
| 65 |
3/10✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW( |
| 66 | gate::data::DataStatement stmt = conn.createStatement(sql); | ||
| 67 | stmt.execute(); | ||
| 68 | ); | ||
| 69 | } | ||
| 70 | |||
| 71 | { | ||
| 72 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | static StaticString const sql = "DROP TABLE unit_test_tbl1"; |
| 73 | |||
| 74 |
3/10✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW( |
| 75 | gate::data::DataStatement stmt = conn.createStatement(sql); | ||
| 76 | stmt.execute(); | ||
| 77 | ); | ||
| 78 | } | ||
| 79 | |||
| 80 | { | ||
| 81 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | static StaticString const sql = "DROP TABLE unit_test_tbl2;"; |
| 82 | |||
| 83 |
3/10✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW( |
| 84 | gate::data::DataStatement stmt = conn.createStatement(sql); | ||
| 85 | stmt.execute(); | ||
| 86 | ); | ||
| 87 | } | ||
| 88 | 2 | } | |
| 89 | |||
| 90 | 1 | static void insertNamedParametersTestData(gate::data::DataConnection& conn) | |
| 91 | { | ||
| 92 | using namespace gate; | ||
| 93 | typedef gate::data::DataStatement DataStatement; | ||
| 94 | |||
| 95 | static StaticString const sql = "INSERT INTO unit_test_tbl1 " | ||
| 96 | "(name, age_years, birthday_unix, height_mm, weight_kg, picture) " | ||
| 97 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
1 | "VALUES (:name, :age, :birthday, :height, :weight, :picture);" |
| 98 | ; | ||
| 99 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | DataStatement stmt = conn.createStatement(sql); |
| 100 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
1 | GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 6); |
| 101 | |||
| 102 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | String strName("Danny"); |
| 103 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | Value valName(*strName.c_impl()); |
| 104 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Value valAge(gate::int8_t(81)); |
| 105 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | gate::uint32_t unixDate = static_cast<gate::uint32_t>(DateTime(1944, 11, 17, 12, 0).toTime().toUnix()); |
| 106 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Value valBirthday(unixDate); |
| 107 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Value valHeight(gate::uint16_t(1520)); |
| 108 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Value valWeight(gate::real64_t(75.6)); |
| 109 | |||
| 110 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | Blob blob("abcd", 4); |
| 111 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | Value valBlob(*blob.c_impl()); |
| 112 | |||
| 113 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | stmt.setNamedParam(":name", valName); |
| 114 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | stmt.setNamedParam(":age", valAge); |
| 115 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
1 | stmt.setNamedParam(":birthday", unixDate); |
| 116 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | stmt.setNamedParam(":height", valHeight); |
| 117 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | stmt.setNamedParam(":weight", valWeight); |
| 118 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | stmt.setNamedParam(":picture", valBlob); |
| 119 | |||
| 120 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(stmt.execute()); |
| 121 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(stmt.reset()); |
| 122 | 1 | } | |
| 123 | |||
| 124 | 2 | static void insertSimpleIndexedParametersTestData(gate::data::DataConnection& conn) | |
| 125 | { | ||
| 126 | using namespace gate; | ||
| 127 | typedef gate::data::DataStatement DataStatement; | ||
| 128 | |||
| 129 | static StaticString const sql = "INSERT INTO unit_test_tbl0 " | ||
| 130 | "(value) " | ||
| 131 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | "VALUES (?);" |
| 132 | ; | ||
| 133 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataStatement stmt = conn.createStatement(sql); |
| 134 |
5/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 1); |
| 135 | |||
| 136 | 2 | gate::int32_t value = 123; | |
| 137 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valValue(value); |
| 138 | |||
| 139 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(1, valValue); |
| 140 | |||
| 141 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(stmt.execute()); |
| 142 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(stmt.reset()); |
| 143 | 2 | } | |
| 144 | |||
| 145 | 2 | static void insertIndexedParametersTestData(gate::data::DataConnection& conn) | |
| 146 | { | ||
| 147 | using namespace gate; | ||
| 148 | typedef gate::data::DataStatement DataStatement; | ||
| 149 | |||
| 150 | static StaticString const sql = "INSERT INTO unit_test_tbl1 " | ||
| 151 | "(name, age_years, birthday_unix, height_mm, weight_kg, picture) " | ||
| 152 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | "VALUES (?, ?, ?, ?, ?, ?);" |
| 153 | ; | ||
| 154 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataStatement stmt = conn.createStatement(sql); |
| 155 |
5/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 6); |
| 156 | |||
| 157 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | String strName("Arnold"); |
| 158 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
4 | Value valName(*strName.c_impl()); |
| 159 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valAge(gate::int8_t(81)); |
| 160 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
2 | gate::int32_t unixDate = static_cast<gate::int32_t>(DateTime(1947, 7, 30, 12, 0).toTime().toUnix()); |
| 161 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valBirthday(unixDate); |
| 162 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valHeight(gate::int16_t(1880)); |
| 163 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valWeight(gate::real32_t(109.5f)); |
| 164 | |||
| 165 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Blob blob("abcd", 4); |
| 166 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
4 | Value valBlob(*blob.c_impl()); |
| 167 | |||
| 168 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(1, valName); |
| 169 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(2, valAge); |
| 170 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | stmt.setParam(3, unixDate); |
| 171 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(4, valHeight); |
| 172 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(5, valWeight); |
| 173 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(6, valBlob); |
| 174 | |||
| 175 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(stmt.execute()); |
| 176 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(stmt.reset()); |
| 177 | 2 | } | |
| 178 | |||
| 179 | |||
| 180 | 2 | static void insertSpecialTestData(gate::data::DataConnection& conn) | |
| 181 | { | ||
| 182 | using namespace gate; | ||
| 183 | typedef gate::data::DataStatement DataStatement; | ||
| 184 | |||
| 185 | static StaticString const sql = "INSERT INTO unit_test_tbl2 " | ||
| 186 | "(txt, date_created, date_accessed, date_modified, guid)" | ||
| 187 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | "VALUES (?, ?, ?, ?, ?);"; |
| 188 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataStatement stmt = conn.createStatement(sql); |
| 189 |
5/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 5); |
| 190 | |||
| 191 | static wchar_t const wtxt[] = L"Test"; | ||
| 192 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | Date dtCreated(2026, 1, 1); |
| 193 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | DateTime dtAccessed(2026, 1, 2, 12, 15, 30); |
| 194 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | DateTime dtModified(2026, 1, 3, 18, 19, 20); |
| 195 | |||
| 196 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valTxt(&wtxt[0]); |
| 197 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valCreated(dtCreated); |
| 198 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | Value valAccessed(dtAccessed); |
| 199 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
4 | Value valModified(dtModified.toTime()); |
| 200 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
4 | Value valGuid(Guid::generate()); |
| 201 | |||
| 202 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(1, valTxt); |
| 203 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(2, valCreated); |
| 204 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(3, valAccessed); |
| 205 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(4, valModified); |
| 206 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | stmt.setParam(5, valGuid); |
| 207 | |||
| 208 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(stmt.execute()); |
| 209 |
4/14✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(stmt.reset()); |
| 210 | 2 | } | |
| 211 | |||
| 212 | 9 | static void readResults(gate::data::DataReader& reader) | |
| 213 | { | ||
| 214 | using namespace gate; | ||
| 215 |
2/2✓ Branch 1 taken 5 times.
✓ Branch 2 taken 4 times.
|
9 | while (reader.next()) |
| 216 | { | ||
| 217 |
1/2✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
|
5 | GATEXX_TEST_CHECK(reader.isValid()); |
| 218 | 5 | gate::size_t const count = reader.getFieldCount(); | |
| 219 |
2/2✓ Branch 0 taken 33 times.
✓ Branch 1 taken 5 times.
|
38 | for (gate::size_t ndx = 0; ndx != count; ++ndx) |
| 220 | { | ||
| 221 |
1/2✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
|
66 | String name = reader.getFieldName(ndx); |
| 222 |
1/2✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
|
33 | gate::type_id_t tp = reader.getFieldType(ndx); |
| 223 |
1/2✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
|
66 | Value val = reader.getFieldValue(ndx); |
| 224 | 66 | String str; | |
| 225 |
1/2✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
|
33 | val.exportAs(str); |
| 226 | } | ||
| 227 | } | ||
| 228 | 4 | } | |
| 229 | |||
| 230 | 2 | static void queryTestData(gate::data::DataConnection& conn) | |
| 231 | { | ||
| 232 | using namespace gate; | ||
| 233 | typedef gate::data::DataStatement DataStatement; | ||
| 234 | typedef gate::data::DataReader DataReader; | ||
| 235 | |||
| 236 | // read table 1 | ||
| 237 | { | ||
| 238 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | static StaticString const sql = "SELECT * FROM unit_test_tbl1;"; |
| 239 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataStatement stmt = conn.createStatement(sql); |
| 240 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataReader reader = stmt.query(); |
| 241 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | readResults(reader); |
| 242 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | reader.close(); |
| 243 | } | ||
| 244 | |||
| 245 | // read table 2 | ||
| 246 | { | ||
| 247 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | static StaticString const sql = "SELECT * FROM unit_test_tbl2;"; |
| 248 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataStatement stmt = conn.createStatement(sql); |
| 249 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | DataReader reader = stmt.query(); |
| 250 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | readResults(reader); |
| 251 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | reader.close(); |
| 252 | } | ||
| 253 | 2 | } | |
| 254 | |||
| 255 | 2 | static void run_default_sql_tests(gate::data::DataConnection& conn, gate::bool_t testNamedParameters = true) | |
| 256 | { | ||
| 257 |
1/2✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | GATEXX_TEST_CHECK(conn.c_impl() != NULL); |
| 258 |
1/2✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | GATEXX_TEST_CHECK(conn.empty() == false); |
| 259 |
1/2✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | GATEXX_TEST_CHECK(!conn.getInterfaceName().empty()); |
| 260 |
2/8✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
2 | GATEXX_TEST_REQUIRE_NOTHROW(createTestTables(conn)); |
| 261 | |||
| 262 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (testNamedParameters) |
| 263 | { | ||
| 264 |
2/8✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
1 | GATEXX_TEST_CHECK_NOTHROW(insertNamedParametersTestData(conn)); |
| 265 | } | ||
| 266 |
2/8✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(insertSimpleIndexedParametersTestData(conn)); |
| 267 |
2/8✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(insertIndexedParametersTestData(conn)); |
| 268 |
2/8✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(insertSpecialTestData(conn)); |
| 269 | |||
| 270 |
2/8✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(queryTestData(conn)); |
| 271 |
2/8✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(dropTestTables(conn)); |
| 272 | 2 | } | |
| 273 |