Date: Monday, February 27, 2006 @ 16:49:46
Author: gilles
Path: /cvsroot/carob/carob/test
Modified: TestBeginCommitRollback.cpp (1.13 -> 1.14)
TestBeginCommitRollback.hpp (1.5 -> 1.6)
Added setUp to put connection in autocommit mode only once
Extended write tests to check commited and rollbacked values (now does a read)
Removed use of Request (use Statement instead)
-----------------------------+
TestBeginCommitRollback.cpp | 47 ++++++++++++++++++++++++------------------
TestBeginCommitRollback.hpp | 15 +++++++------
2 files changed, 35 insertions(+), 27 deletions(-)
Index: carob/test/TestBeginCommitRollback.cpp
diff -u carob/test/TestBeginCommitRollback.cpp:1.13
carob/test/TestBeginCommitRollback.cpp:1.14
--- carob/test/TestBeginCommitRollback.cpp:1.13 Tue Feb 14 18:35:47 2006
+++ carob/test/TestBeginCommitRollback.cpp Mon Feb 27 16:49:46 2006
@@ -23,52 +23,56 @@
#include "TestBeginCommitRollback.hpp"
+#include "Statement.hpp"
+#include "DriverResultSet.hpp"
+
#include "Common.hpp"
-#include "Request.hpp"
-#include "RequestWithResultSetParameters.hpp"
using std::wstring;
using namespace CarobNS;
+void TestBeginCommitRollback::setUp()
+{
+ ConnectionSetup::setUp();
+ connectionPtr->setAutoCommit(false);
+}
+
void TestBeginCommitRollback::testReadRequestAndCommit()
{
wstring fctName(L"TestBeginCommitRollback::testReadRequestAndCommit");
- connectionPtr->setAutoCommit(false);
- RequestWithResultSetParameters readReq(L"select * from address");
- readReq.setEscapeProcessing(false).setTimeoutInSeconds(2);
- DriverResultSet* drsPtr = connectionPtr->statementExecuteQuery(readReq);
+ Statement* stPtr = connectionPtr->createStatement();
+ stPtr->executeQuery(L"select * from address");
connectionPtr->commit();
if (isInfoEnabled())
{
logInfo(fctName, L"Read and commit succeeded");
}
- delete drsPtr;
}
void TestBeginCommitRollback::testReadRequestAndRollback()
{
wstring fctName(L"TestBeginCommitRollback::testReadRequestAndRollback");
- connectionPtr->setAutoCommit(false);
- RequestWithResultSetParameters readReq(L"select * from address");
- readReq.setEscapeProcessing(false).setTimeoutInSeconds(2);
- DriverResultSet* drsPtr = connectionPtr->statementExecuteQuery(readReq);
+ Statement* stPtr = connectionPtr->createStatement();
+ stPtr->executeQuery(L"select * from address");
connectionPtr->rollback();
if (isInfoEnabled())
{
logInfo(fctName, L"Read and rollback succeeded");
}
- delete drsPtr;
}
void TestBeginCommitRollback::testWriteRequestAndCommit()
{
wstring fctName(L"TestBeginCommitRollback::testWriteRequestAndCommit");
- connectionPtr->setAutoCommit(false);
- Request updtReq(L"update product set name='commited' where id=0");
- updtReq.setEscapeProcessing(false).setTimeoutInSeconds(2);
- connectionPtr->statementExecuteUpdate(updtReq);
+ Statement* stPtr = connectionPtr->createStatement();
+ stPtr->executeUpdate(L"update product set name='commited' where id=0");
connectionPtr->commit();
+ DriverResultSet* drsPtr = stPtr->executeQuery(L"select * from product where
id=0");
+ drsPtr->next();
+ // check written data
+ wstring strRead = drsPtr->getString(2);
+ CPPUNIT_ASSERT(strRead == L"commited");
if (isInfoEnabled())
{
logInfo(fctName, L"Write and commit succeeded");
@@ -78,11 +82,14 @@
void TestBeginCommitRollback::testWriteRequestAndRollback()
{
wstring fctName(L"TestBeginCommitRollback::testWriteRequestAndRollback");
- connectionPtr->setAutoCommit(false);
- Request updtReq(L"update product set name='rollbacked' where id=0");
- updtReq.setEscapeProcessing(false).setTimeoutInSeconds(2);
- connectionPtr->statementExecuteUpdate(updtReq);
+ Statement* stPtr = connectionPtr->createStatement();
+ stPtr->executeUpdate(L"update product set name='rollbacked' where id=0");
connectionPtr->rollback();
+ DriverResultSet* drsPtr = stPtr->executeQuery(L"select * from product where
id=0");
+ drsPtr->next();
+ // check written data
+ wstring strRead = drsPtr->getString(2);
+ CPPUNIT_ASSERT(strRead != L"rollbacked");
if (isInfoEnabled())
{
logInfo(fctName, L"Write and rollback succeeded");
Index: carob/test/TestBeginCommitRollback.hpp
diff -u carob/test/TestBeginCommitRollback.hpp:1.5
carob/test/TestBeginCommitRollback.hpp:1.6
--- carob/test/TestBeginCommitRollback.hpp:1.5 Fri Dec 16 17:41:08 2005
+++ carob/test/TestBeginCommitRollback.hpp Mon Feb 27 16:49:46 2006
@@ -1,6 +1,6 @@
/*
* Sequoia: Database clustering technology.
- * Copyright (C) 2005 Emic Networks
+ * Copyright (C) 2005-2006 Continuent, Inc.
* Contact: [EMAIL PROTECTED]
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,24 +36,25 @@
/** Suite of tests to be run */
static CppUnit::Test* suite();
+ /** Calls ConnectionSetup::setUp() then set connection autocommit=false */
+ virtual void setUp();
+
/**
- * Sends a read request and a commit inside a transaction and checks that
- * there is no error.
+ * Sends a read request and a checks that a commit won't raise an error
*/
void testReadRequestAndCommit();
/**
- * Sends a read request and a roolback inside a transaction and checks that
- * there is no error.
+ * Sends a read request and a checks that a roolback won't raise an error
*/
void testReadRequestAndRollback();
/**
* Sends a write request and a commit inside a transaction and checks that
- * there is no error.
+ * the value has been written correctly.
*/
void testWriteRequestAndCommit();
/**
* Sends a write request and a rollback inside a transaction and checks that
- * there is no error.
+ * the value has not been written.
*/
void testWriteRequestAndRollback();
};
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits