1212#include < SQLiteCpp/Backup.h>
1313#include < SQLiteCpp/Database.h>
1414#include < SQLiteCpp/Statement.h>
15+ #include < SQLiteCpp/Exception.h>
1516
1617#include < gtest/gtest.h>
1718
@@ -24,15 +25,39 @@ TEST(Backup, executeStep) {
2425 srcDB.exec (" CREATE TABLE backup_test (id INTEGER PRIMARY KEY, value TEXT)" );
2526 ASSERT_EQ (1 , srcDB.exec (" INSERT INTO backup_test VALUES (1, \" first\" )" ));
2627 ASSERT_EQ (1 , srcDB.exec (" INSERT INTO backup_test VALUES (2, \" second\" )" ));
28+
2729 SQLite::Database destDB (" backup_test.db3.backup" , SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
2830 SQLite::Backup backup (destDB, srcDB);
2931 const int res = backup.executeStep ();
3032 ASSERT_EQ (res, SQLITE_DONE);
33+
3134 SQLite::Statement query (destDB, " SELECT * FROM backup_test ORDER BY id ASC" );
3235 ASSERT_TRUE (query.executeStep ());
3336 EXPECT_EQ (1 , query.getColumn (0 ).getInt ());
3437 EXPECT_STREQ (" first" , query.getColumn (1 ));
3538 ASSERT_TRUE (query.executeStep ());
3639 EXPECT_EQ (2 , query.getColumn (0 ).getInt ());
3740 EXPECT_STREQ (" second" , query.getColumn (1 ));
41+ remove (" backup_test.db3" );
42+ remove (" backup_test.db3.backup" );
43+ }
44+
45+ TEST (Backup, executeStepException) {
46+ remove (" backup_test.db3" );
47+ remove (" backup_test.db3.backup" );
48+ SQLite::Database srcDB (" backup_test.db3" , SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
49+ srcDB.exec (" CREATE TABLE backup_test (id INTEGER PRIMARY KEY, value TEXT)" );
50+ ASSERT_EQ (1 , srcDB.exec (" INSERT INTO backup_test VALUES (1, \" first\" )" ));
51+ ASSERT_EQ (1 , srcDB.exec (" INSERT INTO backup_test VALUES (2, \" second\" )" ));
52+ {
53+ SQLite::Database destDB (" backup_test.db3.backup" , SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
54+ (void )destDB;
55+ }
56+ {
57+ SQLite::Database destDB (" backup_test.db3.backup" , SQLITE_OPEN_READONLY);
58+ SQLite::Backup backup (destDB, srcDB);
59+ EXPECT_THROW (backup.executeStep (), SQLite::Exception);
60+ }
61+ remove (" backup_test.db3" );
62+ remove (" backup_test.db3.backup" );
3863}
0 commit comments