diff options
-rw-r--r-- | libdbpp/unittests/testConnection.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/libdbpp/unittests/testConnection.cpp b/libdbpp/unittests/testConnection.cpp index 883c09a..bcfadeb 100644 --- a/libdbpp/unittests/testConnection.cpp +++ b/libdbpp/unittests/testConnection.cpp @@ -17,9 +17,6 @@ class MockDb : public DB::Connection { int commitTx() const { return 0; } int rollbackTx() const { return 0; } bool inTx() const { return false; } - void savepoint(const std::string &) const {} - void rollbackToSavepoint(const std::string &) const {} - void releaseSavepoint(const std::string &) const {} void ping() const {} DB::BulkDeleteStyle bulkDeleteStyle() const { return DB::BulkDeleteUsingUsing; } DB::BulkUpdateStyle bulkUpdateStyle() const { return DB::BulkUpdateUsingJoin; } @@ -77,3 +74,21 @@ BOOST_AUTO_TEST_CASE( parse ) delete mock; } +BOOST_AUTO_TEST_CASE( savepoints ) +{ + auto mock = DB::ConnectionFactory::createNew("MockDb", "doesn't matter"); + MockDb * mockdb = dynamic_cast<MockDb *>(mock); + BOOST_REQUIRE(mockdb); + mock->savepoint("sp"); + BOOST_REQUIRE_EQUAL("SAVEPOINT sp", *mockdb->executed.rbegin()); + mock->releaseSavepoint("sp"); + BOOST_REQUIRE_EQUAL("RELEASE SAVEPOINT sp", *mockdb->executed.rbegin()); + mock->savepoint("sp1"); + BOOST_REQUIRE_EQUAL("SAVEPOINT sp1", *mockdb->executed.rbegin()); + mock->savepoint("sp2"); + BOOST_REQUIRE_EQUAL("SAVEPOINT sp2", *mockdb->executed.rbegin()); + mock->rollbackToSavepoint("sp1"); + BOOST_REQUIRE_EQUAL("ROLLBACK TO SAVEPOINT sp1", *mockdb->executed.rbegin()); + delete mock; +} + |