📄 sqlitetest.cpp
字号:
assert (ret != t);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == t);
}
void SQLiteTest::testTupleVector6()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER, int3 INTEGER, int4 INTEGER, int5 INTEGER)", now;
Tuple<int,int,int,int,int,int> t(0,1,2,3,4,5);
Tuple<int,int,int,int,int,int> t10(10,11,12,13,14,15);
Tuple<int,int,int,int,int,int> t100(100,101,102,103,104,105);
std::vector<Tuple<int,int,int,int,int,int> > v;
v.push_back(t);
v.push_back(t10);
v.push_back(t100);
tmp << "INSERT INTO Tuples VALUES (?,?,?,?,?,?)", use(v), now;
int count = 0;
tmp << "SELECT COUNT(*) FROM Tuples", into(count), now;
assert (v.size() == count);
std::vector<Tuple<int,int,int,int,int,int> > ret;
assert (ret != v);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == v);
}
void SQLiteTest::testTuple5()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER, int3 INTEGER, int4 INTEGER)", now;
Tuple<int,int,int,int,int> t(0,1,2,3,4);
tmp << "INSERT INTO Tuples VALUES (?,?,?,?,?)", use(t), now;
Tuple<int,int,int,int,int> ret(-10,-11,-12,-13,-14);
assert (ret != t);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == t);
}
void SQLiteTest::testTupleVector5()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER, int3 INTEGER, int4 INTEGER)", now;
Tuple<int,int,int,int,int> t(0,1,2,3,4);
Tuple<int,int,int,int,int> t10(10,11,12,13,14);
Tuple<int,int,int,int,int> t100(100,101,102,103,104);
std::vector<Tuple<int,int,int,int,int> > v;
v.push_back(t);
v.push_back(t10);
v.push_back(t100);
tmp << "INSERT INTO Tuples VALUES (?,?,?,?,?)", use(v), now;
int count = 0;
tmp << "SELECT COUNT(*) FROM Tuples", into(count), now;
assert (v.size() == count);
std::vector<Tuple<int,int,int,int,int> > ret;
assert (ret != v);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == v);
}
void SQLiteTest::testTuple4()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER, int3 INTEGER)", now;
Tuple<int,int,int,int> t(0,1,2,3);
tmp << "INSERT INTO Tuples VALUES (?,?,?,?)", use(t), now;
Tuple<int,int,int,int> ret(-10,-11,-12,-13);
assert (ret != t);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == t);
}
void SQLiteTest::testTupleVector4()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER, int3 INTEGER)", now;
Tuple<int,int,int,int> t(0,1,2,3);
Tuple<int,int,int,int> t10(10,11,12,13);
Tuple<int,int,int,int> t100(100,101,102,103);
std::vector<Tuple<int,int,int,int> > v;
v.push_back(t);
v.push_back(t10);
v.push_back(t100);
tmp << "INSERT INTO Tuples VALUES (?,?,?,?)", use(v), now;
int count = 0;
tmp << "SELECT COUNT(*) FROM Tuples", into(count), now;
assert (v.size() == count);
std::vector<Tuple<int,int,int,int> > ret;
assert (ret != v);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == v);
}
void SQLiteTest::testTuple3()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER)", now;
Tuple<int,int,int> t(0,1,2);
tmp << "INSERT INTO Tuples VALUES (?,?,?)", use(t), now;
Tuple<int,int,int> ret(-10,-11,-12);
assert (ret != t);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == t);
}
void SQLiteTest::testTupleVector3()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples "
"(int0 INTEGER, int1 INTEGER, int2 INTEGER)", now;
Tuple<int,int,int> t(0,1,2);
Tuple<int,int,int> t10(10,11,12);
Tuple<int,int,int> t100(100,101,102);
std::vector<Tuple<int,int,int> > v;
v.push_back(t);
v.push_back(t10);
v.push_back(t100);
tmp << "INSERT INTO Tuples VALUES (?,?,?)", use(v), now;
int count = 0;
tmp << "SELECT COUNT(*) FROM Tuples", into(count), now;
assert (v.size() == count);
std::vector<Tuple<int,int,int> > ret;
assert (ret != v);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == v);
}
void SQLiteTest::testTuple2()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples (int0 INTEGER, int1 INTEGER)", now;
Tuple<int,int> t(0,1);
tmp << "INSERT INTO Tuples VALUES (?,?)", use(t), now;
Tuple<int,int> ret(-10,-11);
assert (ret != t);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == t);
}
void SQLiteTest::testTupleVector2()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples (int0 INTEGER, int1 INTEGER)", now;
Tuple<int,int> t(0,1);
Tuple<int,int> t10(10,11);
Tuple<int,int> t100(100,101);
std::vector<Tuple<int,int> > v;
v.push_back(t);
v.push_back(t10);
v.push_back(t100);
tmp << "INSERT INTO Tuples VALUES (?,?)", use(v), now;
int count = 0;
tmp << "SELECT COUNT(*) FROM Tuples", into(count), now;
assert (v.size() == count);
std::vector<Tuple<int,int> > ret;
assert (ret != v);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == v);
}
void SQLiteTest::testTuple1()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples (int0 INTEGER)", now;
Tuple<int> t(0);
tmp << "INSERT INTO Tuples VALUES (?)", use(t), now;
Tuple<int> ret(-10);
assert (ret != t);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == t);
}
void SQLiteTest::testTupleVector1()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Tuples", now;
tmp << "CREATE TABLE Tuples (int0 INTEGER)", now;
Tuple<int> t(0);
Tuple<int> t10(10);
Tuple<int> t100(100);
std::vector<Tuple<int> > v;
v.push_back(t);
v.push_back(t10);
v.push_back(t100);
tmp << "INSERT INTO Tuples VALUES (?)", use(v), now;
int count = 0;
tmp << "SELECT COUNT(*) FROM Tuples", into(count), now;
assert (v.size() == count);
std::vector<Tuple<int> > ret;
assert (ret != v);
tmp << "SELECT * FROM Tuples", into(ret), now;
assert (ret == v);
}
void SQLiteTest::testInternalExtraction()
{
Session tmp (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
tmp << "DROP TABLE IF EXISTS Vectors", now;
tmp << "CREATE TABLE Vectors (int0 INTEGER, flt0 REAL, str0 VARCHAR)", now;
std::vector<Tuple<int, double, std::string> > v;
v.push_back(Tuple<int, double, std::string>(1, 1.5, "3"));
v.push_back(Tuple<int, double, std::string>(2, 2.5, "4"));
v.push_back(Tuple<int, double, std::string>(3, 3.5, "5"));
v.push_back(Tuple<int, double, std::string>(4, 4.5, "6"));
tmp << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now;
Statement stmt = (tmp << "SELECT * FROM Vectors", now);
RecordSet rset(stmt);
assert (3 == rset.columnCount());
assert (4 == rset.rowCount());
RecordSet rset2(rset);
assert (3 == rset2.columnCount());
assert (4 == rset2.rowCount());
int a = rset.value<int>(0,2);
assert (3 == a);
int b = rset2.value<int>("InT0",2);
assert (3 == b);
double d = rset.value<double>(1,0);
assert (1.5 == d);
std::string s = rset.value<std::string>(2,1);
assert ("4" == s);
const Column<int>& col = rset.column<int>(0);
assert (col[0] == 1);
try { const Column<int>& col1 = rset.column<int>(100); fail ("must fail"); }
catch (RangeException&) { }
const Column<int>& col1 = rset.column<int>(0);
assert ("int0" == col1.name());
Column<int>::Iterator it = col1.begin();
Column<int>::Iterator itEnd = col1.end();
int counter = 1;
for (; it != itEnd; ++it, ++counter)
assert (counter == *it);
rset = (tmp << "SELECT COUNT(*) FROM Vectors", now);
s = rset.value<std::string>(0,0);
assert ("4" == s);
stmt = (tmp << "DELETE FROM Vectors", now);
rset = stmt;
try { const Column<int>& col1 = rset.column<int>(0); fail ("must fail"); }
catch (RangeException&) { }
}
void SQLiteTest::testBindingCount()
{
Session tmp (SQLite::Connector::KEY, "dummy.db");
tmp << "DROP TABLE IF EXISTS Ints", now;
tmp << "CREATE TABLE Ints (int0 INTEGER)", now;
int i = 42;
try { tmp << "INSERT INTO Ints VALUES (?)", now; }
catch (ParameterCountMismatchException&) { }
try { tmp << "INSERT INTO Ints VALUES (?)", use(i), use(i), now; }
catch (ParameterCountMismatchException&) { }
tmp << "INSERT INTO Ints VALUES (?)", use(i), now;
int j = 0;
try { tmp << "SELECT int0 from Ints where int0 = ?", into(i), now; }
catch (ParameterCountMismatchException&) { }
tmp << "SELECT int0 from Ints where int0 = ?", use(i), into(j), now;
assert (42 == j);
}
void SQLiteTest::setUp()
{
}
void SQLiteTest::tearDown()
{
}
CppUnit::Test* SQLiteTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("SQLiteTest");
CppUnit_addTest(pSuite, SQLiteTest, testSimpleAccess);
CppUnit_addTest(pSuite, SQLiteTest, testInsertCharPointer);
CppUnit_addTest(pSuite, SQLiteTest, testInsertCharPointer2);
CppUnit_addTest(pSuite, SQLiteTest, testComplexType);
CppUnit_addTest(pSuite, SQLiteTest, testSimpleAccessVector);
CppUnit_addTest(pSuite, SQLiteTest, testComplexTypeVector);
CppUnit_addTest(pSuite, SQLiteTest, testInsertVector);
CppUnit_addTest(pSuite, SQLiteTest, testInsertEmptyVector);
CppUnit_addTest(pSuite, SQLiteTest, testInsertSingleBulk);
CppUnit_addTest(pSuite, SQLiteTest, testInsertSingleBulkVec);
CppUnit_addTest(pSuite, SQLiteTest, testLimit);
CppUnit_addTest(pSuite, SQLiteTest, testLimitOnce);
CppUnit_addTest(pSuite, SQLiteTest, testLimitPrepare);
CppUnit_addTest(pSuite, SQLiteTest, testLimitZero);
CppUnit_addTest(pSuite, SQLiteTest, testPrepare);
CppUnit_addTest(pSuite, SQLiteTest, testSetSimple);
CppUnit_addTest(pSuite, SQLiteTest, testSetComplex);
CppUnit_addTest(pSuite, SQLiteTest, testSetComplexUnique);
CppUnit_addTest(pSuite, SQLiteTest, testMultiSetSimple);
CppUnit_addTest(pSuite, SQLiteTest, testMultiSetComplex);
CppUnit_addTest(pSuite, SQLiteTest, testMapComplex);
CppUnit_addTest(pSuite, SQLiteTest, testMapComplexUnique);
CppUnit_addTest(pSuite, SQLiteTest, testMultiMapComplex);
CppUnit_addTest(pSuite, SQLiteTest, testSelectIntoSingle);
CppUnit_addTest(pSuite, SQLiteTest, testSelectIntoSingleStep);
CppUnit_addTest(pSuite, SQLiteTest, testSelectIntoSingleFail);
CppUnit_addTest(pSuite, SQLiteTest, testLowerLimitOk);
CppUnit_addTest(pSuite, SQLiteTest, testLowerLimitFail);
CppUnit_addTest(pSuite, SQLiteTest, testCombinedLimits);
CppUnit_addTest(pSuite, SQLiteTest, testCombinedIllegalLimits);
CppUnit_addTest(pSuite, SQLiteTest, testRange);
CppUnit_addTest(pSuite, SQLiteTest, testIllegalRange);
CppUnit_addTest(pSuite, SQLiteTest, testSingleSelect);
CppUnit_addTest(pSuite, SQLiteTest, testEmptyDB);
CppUnit_addTest(pSuite, SQLiteTest, testBLOB);
CppUnit_addTest(pSuite, SQLiteTest, testBLOBStmt);
CppUnit_addTest(pSuite, SQLiteTest, testTuple10);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector10);
CppUnit_addTest(pSuite, SQLiteTest, testTuple9);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector9);
CppUnit_addTest(pSuite, SQLiteTest, testTuple8);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector8);
CppUnit_addTest(pSuite, SQLiteTest, testTuple7);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector7);
CppUnit_addTest(pSuite, SQLiteTest, testTuple6);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector6);
CppUnit_addTest(pSuite, SQLiteTest, testTuple5);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector5);
CppUnit_addTest(pSuite, SQLiteTest, testTuple4);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector4);
CppUnit_addTest(pSuite, SQLiteTest, testTuple3);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector3);
CppUnit_addTest(pSuite, SQLiteTest, testTuple2);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector2);
CppUnit_addTest(pSuite, SQLiteTest, testTuple1);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector1);
CppUnit_addTest(pSuite, SQLiteTest, testInternalExtraction);
CppUnit_addTest(pSuite, SQLiteTest, testBindingCount);
return pSuite;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -