annotate TestSQLGenerator.cpp @ 115:404795616b1e default tip

Added a lot of common files to ignore
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Sat, 25 Mar 2017 17:43:57 +0100
parents 9744ec195be3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
1 #include "SQLGenerator.hpp"
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
2 #include "TestFramework.hpp"
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
3 #include "TestDataBase.hpp"
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
4
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
5 #include "Exception/SQLException.hpp"
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
6
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
7 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveQString )
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
8 {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
9 TestDatabase tdb;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
10 QSqlDatabase db = tdb.getDatabase();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
11 QSqlQuery query(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
12
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
13 QString tableName = "test";
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
14
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
15 QString fieldCreateString1 = SQLGenerator<QString>::createFields("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
16 QString fieldCreateString2 = SQLGenerator<QString>::createFields("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
17
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
18
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
19 QString createQuery = QString("CREATE TABLE %1(%2, %3);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
20 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
21 .arg(fieldCreateString1)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
22 .arg(fieldCreateString2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
23
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
24 BOOST_REQUIRE(query.exec(createQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
25
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
26
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
27 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
28 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
29 .arg(SQLGenerator<QString>::fieldName("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
30 .arg(SQLGenerator<QString>::fieldName("value2"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
31 .arg(SQLGenerator<QString>::valueString("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
32 .arg(SQLGenerator<QString>::valueString("value2"));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
33 QSqlQuery insertQuery = QSqlQuery(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
34 BOOST_REQUIRE(insertQuery.prepare(queryString));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
35
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
36 QList<QString> valueList1, valueList2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
37 for (int i = 1; i <= 3; ++i) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
38 valueList1 << QString("a%1").arg(i);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
39 valueList2 << QString("b%1").arg(i);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
40 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
41
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
42 SQLGenerator<QString>::bindValues(insertQuery, valueList1, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
43 SQLGenerator<QString>::bindValues(insertQuery, valueList2, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
44 BOOST_REQUIRE(insertQuery.execBatch());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
45 insertQuery.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
46
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
47 QString fieldValueString1 = SQLGenerator<QString>::fieldName("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
48 QString fieldValueString2 = SQLGenerator<QString>::fieldName("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
49
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
50 QString selectQuery = QString("SELECT %1, %2 FROM %3;")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
51 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
52
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
53 BOOST_REQUIRE(query.exec(selectQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
54
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
55 while (query.next()) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
56 QString value1 = *SQLGenerator<QString>::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
57 QString value2 = *SQLGenerator<QString>::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
58
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
59 BOOST_REQUIRE(valueList1.contains(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
60 BOOST_REQUIRE(valueList2.contains(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
61
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
62 valueList1.removeAt(valueList1.indexOf(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
63 valueList2.removeAt(valueList2.indexOf(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
64 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
65
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
66 boost::optional<QString> empty1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
67 SQLGenerator<QString>::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
68 boost::optional<QString> empty2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
69 SQLGenerator<QString>::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
70
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
71 BOOST_REQUIRE(!empty1);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
72 BOOST_REQUIRE(!empty2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
73
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
74 BOOST_REQUIRE(valueList1.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
75 BOOST_REQUIRE(valueList2.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
76
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
77 query.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
78 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
79
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
80 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveUniqueString )
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
81 {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
82 TestDatabase tdb;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
83 QSqlDatabase db = tdb.getDatabase();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
84 QSqlQuery query(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
85
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
86 QString tableName = "test";
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
87
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
88 QString fieldCreateString1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
89 SQLGenerator<UniqueString>::createFields("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
90 QString fieldCreateString2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
91 SQLGenerator<UniqueString>::createFields("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
92
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
93
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
94 QString createQuery = QString("CREATE TABLE %1(%2, %3);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
95 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
96 .arg(fieldCreateString1)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
97 .arg(fieldCreateString2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
98
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
99 BOOST_REQUIRE(query.exec(createQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
100
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
101
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
102 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
103 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
104 .arg(SQLGenerator<UniqueString>::fieldName("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
105 .arg(SQLGenerator<UniqueString>::fieldName("value2"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
106 .arg(SQLGenerator<UniqueString>::valueString("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
107 .arg(SQLGenerator<UniqueString>::valueString("value2"));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
108 QSqlQuery insertQuery = QSqlQuery(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
109 BOOST_REQUIRE(insertQuery.prepare(queryString));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
110
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
111 QList<UniqueString> valueList1, valueList2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
112 for (int i = 1; i <= 3; ++i) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
113 valueList1 << QString("a%1").arg(i);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
114 valueList2 << QString("b%1").arg(i);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
115 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
116
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
117 SQLGenerator<UniqueString>::bindValues(insertQuery, valueList1, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
118 SQLGenerator<UniqueString>::bindValues(insertQuery, valueList2, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
119 BOOST_REQUIRE(insertQuery.execBatch());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
120 insertQuery.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
121
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
122 QString fieldValueString1 = SQLGenerator<UniqueString>::fieldName("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
123 QString fieldValueString2 = SQLGenerator<UniqueString>::fieldName("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
124
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
125 QString selectQuery = QString("SELECT %1, %2 FROM %3;")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
126 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
127
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
128 BOOST_REQUIRE(query.exec(selectQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
129
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
130 while (query.next()) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
131 UniqueString value1 = *SQLGenerator<UniqueString>::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
132 UniqueString value2 = *SQLGenerator<UniqueString>::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
133
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
134 BOOST_REQUIRE(valueList1.contains(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
135 BOOST_REQUIRE(valueList2.contains(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
136
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
137 valueList1.removeAt(valueList1.indexOf(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
138 valueList2.removeAt(valueList2.indexOf(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
139 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
140
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
141 boost::optional<UniqueString> empty1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
142 SQLGenerator<UniqueString>::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
143 boost::optional<UniqueString> empty2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
144 SQLGenerator<UniqueString>::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
145
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
146 BOOST_REQUIRE(!empty1);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
147 BOOST_REQUIRE(!empty2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
148
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
149 BOOST_REQUIRE(valueList1.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
150 BOOST_REQUIRE(valueList2.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
151
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
152 query.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
153 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
154
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
155 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveInt )
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
156 {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
157 TestDatabase tdb;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
158 QSqlDatabase db = tdb.getDatabase();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
159
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
160 QSqlQuery query(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
161
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
162 QString tableName = "test";
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
163
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
164 QString fieldCreateString1 = SQLGenerator<int>::createFields("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
165 QString fieldCreateString2 = SQLGenerator<int>::createFields("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
166
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
167
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
168 QString createQuery = QString("CREATE TABLE %1(%2, %3);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
169 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
170 .arg(fieldCreateString1)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
171 .arg(fieldCreateString2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
172
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
173 BOOST_REQUIRE(query.exec(createQuery));
78
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 76
diff changeset
174
76
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
175 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
176 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
177 .arg(SQLGenerator<int>::fieldName("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
178 .arg(SQLGenerator<int>::fieldName("value2"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
179 .arg(SQLGenerator<int>::valueString("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
180 .arg(SQLGenerator<int>::valueString("value2"));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
181 QSqlQuery insertQuery = QSqlQuery(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
182 BOOST_REQUIRE(insertQuery.prepare(queryString));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
183
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
184 QList<int> valueList1, valueList2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
185 int p1 = 2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
186 int p2 = 3;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
187 int v1 = p1;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
188 int v2 = p2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
189 for (int i = 1; i <= 3; ++i) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
190 valueList1 << v1;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
191 valueList2 << v2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
192 v1 *= p1;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
193 v2 *= p2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
194 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
195
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
196 SQLGenerator<int>::bindValues(insertQuery, valueList1, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
197 SQLGenerator<int>::bindValues(insertQuery, valueList2, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
198 BOOST_REQUIRE(insertQuery.execBatch());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
199 insertQuery.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
200
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
201 QString fieldValueString1 = SQLGenerator<int>::fieldName("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
202 QString fieldValueString2 = SQLGenerator<int>::fieldName("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
203
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
204 QString selectQuery = QString("SELECT %1, %2 FROM %3;")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
205 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
206
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
207 BOOST_REQUIRE(query.exec(selectQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
208
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
209 while (query.next()) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
210 int value1 = *SQLGenerator<int>::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
211 int value2 = *SQLGenerator<int>::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
212
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
213 BOOST_REQUIRE(valueList1.contains(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
214 BOOST_REQUIRE(valueList2.contains(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
215
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
216 valueList1.removeAt(valueList1.indexOf(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
217 valueList2.removeAt(valueList2.indexOf(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
218 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
219 boost::optional<int> empty1 = SQLGenerator<int>::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
220 boost::optional<int> empty2 = SQLGenerator<int>::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
221
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
222 BOOST_REQUIRE(!empty1);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
223 BOOST_REQUIRE(!empty2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
224
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
225 BOOST_REQUIRE(valueList1.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
226 BOOST_REQUIRE(valueList2.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
227
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
228 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
229
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
230 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveOrderedPair )
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
231 {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
232 TestDatabase tdb;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
233 QSqlDatabase db = tdb.getDatabase();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
234 QSqlQuery query(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
235
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
236 QString tableName = "test";
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
237
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
238 QString fieldCreateString1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
239 SQLGenerator<OrderedPair<int> >::createFields("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
240 QString fieldCreateString2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
241 SQLGenerator<OrderedPair<int> >::createFields("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
242
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
243
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
244 QString createQuery = QString("CREATE TABLE %1(%2, %3);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
245 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
246 .arg(fieldCreateString1)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
247 .arg(fieldCreateString2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
248
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
249 BOOST_REQUIRE(query.exec(createQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
250
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
251
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
252 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
253 .arg(tableName)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
254 .arg(SQLGenerator<OrderedPair<int> >::fieldName("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
255 .arg(SQLGenerator<OrderedPair<int> >::fieldName("value2"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
256 .arg(SQLGenerator<OrderedPair<int> >::valueString("value1"))
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
257 .arg(SQLGenerator<OrderedPair<int> >::valueString("value2"));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
258 QSqlQuery insertQuery = QSqlQuery(db);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
259 BOOST_REQUIRE(insertQuery.prepare(queryString));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
260
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
261 QList<OrderedPair<int> > valueList1, valueList2;
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
262 int p [] = { 2, 3, 5, 7};
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
263 int v [] = { 2, 3, 5, 7};
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
264
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
265 for (int i = 1; i <= 3; ++i) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
266 valueList1 << OrderedPair<int>(v[0], v[1]);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
267 valueList2 << OrderedPair<int>(v[2], v[3]);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
268 for (int i = 0; i < 4; ++i)
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
269 v[i] *= p[i];
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
270 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
271
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
272 SQLGenerator<OrderedPair<int> >::bindValues(insertQuery, valueList1, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
273 SQLGenerator<OrderedPair<int> >::bindValues(insertQuery, valueList2, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
274 BOOST_REQUIRE(insertQuery.execBatch());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
275 insertQuery.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
276
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
277 QString fieldValueString1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
278 SQLGenerator<OrderedPair<int> >::fieldName("value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
279 QString fieldValueString2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
280 SQLGenerator<OrderedPair<int> >::fieldName("value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
281
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
282 QString selectQuery = QString("SELECT %1, %2 FROM %3;")
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
283 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
284
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
285 BOOST_REQUIRE(query.exec(selectQuery));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
286
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
287 while (query.next()) {
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
288 OrderedPair<int> value1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
289 *SQLGenerator<OrderedPair<int> >::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
290 OrderedPair<int> value2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
291 *SQLGenerator<OrderedPair<int> >::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
292
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
293 BOOST_REQUIRE(valueList1.contains(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
294 BOOST_REQUIRE(valueList2.contains(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
295
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
296 valueList1.removeAt(valueList1.indexOf(value1));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
297 valueList2.removeAt(valueList2.indexOf(value2));
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
298 }
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
299
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
300 boost::optional<OrderedPair<int> > empty1 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
301 SQLGenerator<OrderedPair<int> >::extract(query, "value1");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
302 boost::optional<OrderedPair<int> > empty2 =
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
303 SQLGenerator<OrderedPair<int> >::extract(query, "value2");
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
304
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
305 BOOST_REQUIRE(!empty1);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
306 BOOST_REQUIRE(!empty2);
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
307
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
308 BOOST_REQUIRE(valueList1.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
309 BOOST_REQUIRE(valueList2.empty());
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
310
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
311 query.finish();
8136057988bc Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
312 }