aboutsummaryrefslogtreecommitdiff
path: root/tracer/object/driver.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tracer/object/driver.cxx')
-rw-r--r--tracer/object/driver.cxx234
1 files changed, 0 insertions, 234 deletions
diff --git a/tracer/object/driver.cxx b/tracer/object/driver.cxx
deleted file mode 100644
index 4ea6329..0000000
--- a/tracer/object/driver.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-// file : tracer/object/driver.cxx
-// author : Boris Kolpackov <boris@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v2; see accompanying LICENSE file
-
-// Test object persistence operations.
-//
-
-#include <memory>
-#include <cassert>
-#include <iostream>
-
-#include <odb/exceptions.hxx>
-#include <odb/transaction.hxx>
-#include <odb/tracer/database.hxx>
-
-#include "test.hxx"
-#include "test-odb.hxx"
-
-using namespace std;
-using namespace odb::core;
-
-int
-main ()
-{
- odb::tracer::database db;
-
- // database operation out of transaction
- //
- cout << "\ntest 001" << endl;
- {
- object o1 (1);
- try
- {
- cout << "s 1" << endl;
- db.persist (o1);
- cout << "s 2.a" << endl;
- }
- catch (const not_in_transaction&)
- {
- cout << "s 2.b" << endl;
- }
- }
-
- // transient -> persistent
- //
- cout << "\ntest 002" << endl;
- {
- object o1 (1);
- transaction t (db.begin ());
- cout << "s 1" << endl;
- db.persist (o1);
- cout << "s 2" << endl;
- t.commit ();
- cout << "s 3" << endl;
- }
-
- // transient -> persistent (already exist)
- //
- cout << "\ntest 003" << endl;
- {
- object o1 (0);
- transaction t (db.begin ());
- cout << "s 1" << endl;
- try
- {
- db.persist (o1);
- }
- catch (const object_already_persistent&)
- {
- cout << "object already persistent" << endl;
- }
- cout << "s 2" << endl;
- }
-
- // persistent -> transient
- //
- cout << "\ntest 004" << endl;
- {
- object o1 (1);
- object o2 (2);
- transaction t (db.begin ());
- cout << "s 1" << endl;
- db.persist (o1);
- db.persist (o2);
- cout << "s 2" << endl;
- db.erase (o1);
- db.erase<object> (2);
- cout << "s 3" << endl;
- t.commit ();
- cout << "s 4" << endl;
- }
-
- // persistent -> transient (not exist)
- //
- cout << "\ntest 005" << endl;
- {
- object o1 (0);
- transaction t (db.begin ());
- cout << "s 1" << endl;
- try
- {
- db.erase (o1);
- }
- catch (const object_not_persistent&)
- {
- cout << "object not persistent" << endl;
- }
- cout << "s 2" << endl;
- }
-
- // load new object
- //
- cout << "\ntest 006" << endl;
- {
- transaction t (db.begin ());
- cout << "s 1" << endl;
- auto_ptr<object> o1 (db.load<object> (1));
- cout << "s 2" << endl;
- t.commit ();
- cout << "s 3" << endl;
- }
-
- // load new object (not exist)
- //
- cout << "\ntest 007" << endl;
- {
- transaction t (db.begin ());
- cout << "s 1" << endl;
- try
- {
- auto_ptr<object> o1 (db.load<object> (0));
- }
- catch (const object_not_persistent&)
- {
- cout << "object not persistent" << endl;
- }
- cout << "s 2" << endl;
- }
-
- // load into existing object
- //
- cout << "\ntest 008" << endl;
- {
- object o1;
- transaction t (db.begin ());
- cout << "s 1" << endl;
- db.load (1, o1);
- cout << "s 2" << endl;
- t.commit ();
- cout << "s 3" << endl;
- }
-
- // load into existing object (not exist)
- //
- cout << "\ntest 009" << endl;
- {
- object o1;
- transaction t (db.begin ());
- cout << "s 1" << endl;
- try
- {
- db.load (0, o1);
- }
- catch (const object_not_persistent&)
- {
- cout << "object not persistent" << endl;
- }
- cout << "s 2" << endl;
- }
-
- // update
- //
- cout << "\ntest 010" << endl;
- {
- transaction t (db.begin ());
- cout << "s 1" << endl;
- auto_ptr<object> o1 (db.load<object> (1));
- cout << "s 2" << endl;
- db.update (*o1);
- cout << "s 3" << endl;
- t.commit ();
- cout << "s 4" << endl;
- }
-
- // update (not exist)
- //
- cout << "\ntest 011" << endl;
- {
- object o1 (0);
- transaction t (db.begin ());
- cout << "s 1" << endl;
- try
- {
- db.update (o1);
- }
- catch (const object_not_persistent&)
- {
- cout << "object not persistent" << endl;
- }
- cout << "s 2" << endl;
- }
-
- // find new object
- //
- cout << "\ntest 012" << endl;
- {
- transaction t (db.begin ());
- cout << "s 1" << endl;
- auto_ptr<object> o1 (db.find<object> (1));
- assert (o1.get () != 0);
- auto_ptr<object> o2 (db.find<object> (0));
- assert (o2.get () == 0);
- cout << "s 2" << endl;
- t.commit ();
- cout << "s 3" << endl;
- }
-
- // load into existing object
- //
- cout << "\ntest 013" << endl;
- {
- object o1;
- transaction t (db.begin ());
- cout << "s 1" << endl;
- bool r (db.find (1, o1));
- assert (r);
- r = db.find (0, o1);
- assert (!r);
- cout << "s 2" << endl;
- t.commit ();
- cout << "s 3" << endl;
- }
-}