diff options
Diffstat (limited to 'common/lifecycle')
-rw-r--r-- | common/lifecycle/buildfile | 40 | ||||
-rw-r--r-- | common/lifecycle/driver.cxx | 248 | ||||
-rw-r--r-- | common/lifecycle/test.hxx | 27 | ||||
-rw-r--r-- | common/lifecycle/testscript | 33 |
4 files changed, 0 insertions, 348 deletions
diff --git a/common/lifecycle/buildfile b/common/lifecycle/buildfile deleted file mode 100644 index b5b2b00..0000000 --- a/common/lifecycle/buildfile +++ /dev/null @@ -1,40 +0,0 @@ -# file : common/lifecycle/buildfile -# license : GNU GPL v2; see accompanying LICENSE file - -import libodb = libodb%lib{odb} - -libs = - -for db: $databases - import libs += libodb-$db%lib{odb-$db} - -import libs += lib{common} - -exe{driver}: {hxx cxx}{* -*-odb -*-odb-*} {hxx ixx cxx}{test-odb} testscript - -# Introduce the metadata library target to make sure the libodb library is -# resolved for the odb_compile ad hoc rule (see build/root.build for details). -# -libue{test-meta}: $libodb - -<{hxx ixx cxx}{test-odb}>: hxx{test} libue{test-meta} - -for db: $databases -{ - exe{driver}: {hxx ixx cxx}{test-odb-$db}: include = $multi - <{hxx ixx cxx}{test-odb-$db}>: hxx{test} libue{test-meta} -} - -exe{driver}: libue{test-meta} $libs - -# Specify the ODB custom options to be used by the odb_compile ad hoc rule -# (see build/root.build for details). -# -odb_options = --table-prefix lifecycle_ \ - --generate-schema - -cxx.poptions =+ "-I$out_base" "-I$src_base" - -# Testscript's run-time prerequisites. -# -exe{driver}: ../../alias{database-client}: include = adhoc diff --git a/common/lifecycle/driver.cxx b/common/lifecycle/driver.cxx deleted file mode 100644 index a01d5bd..0000000 --- a/common/lifecycle/driver.cxx +++ /dev/null @@ -1,248 +0,0 @@ -// file : common/lifecycle/driver.cxx -// license : GNU GPL v2; see accompanying LICENSE file - -// Test object state transistions. -// - -#include <memory> // std::unique_ptr -#include <iostream> - -#include <odb/database.hxx> -#include <odb/transaction.hxx> - -#include <libcommon/common.hxx> - -#include "test.hxx" -#include "test-odb.hxx" - -#undef NDEBUG -#include <cassert> - -using namespace std; -using namespace odb::core; - -int -main (int argc, char* argv[]) -{ - try - { - unique_ptr<database> db (create_database (argc, argv)); - - // Database operation out of transaction. - // - try - { - object o (1); - db->persist (o); - assert (false); - } - catch (const not_in_transaction&) - { - } - - // Transient. - // - try - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - - // Persistent. - // - { - object o (1); - o.str_ = "value 1"; - - transaction t (db->begin ()); - db->persist (o); - t.commit (); - - try - { - transaction t (db->begin ()); - db->persist (o); - assert (false); - t.commit (); - } - catch (const object_already_persistent&) - { - } - } - - // Find. - // - { - transaction t (db->begin ()); - - unique_ptr<object> o1 (db->find<object> (1)); - assert (o1.get () != 0 && o1->str_ == "value 1"); - - unique_ptr<object> o2 (db->find<object> (2)); - assert (o2.get () == 0); - - t.commit (); - } - - // Find (into existing). - // - { - object o; - - transaction t (db->begin ()); - - assert (db->find (1, o)); - assert (o.str_ == "value 1"); - - assert (!db->find (2, o)); - - t.commit (); - } - - // Load. - // - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - assert (o->str_ == "value 1"); - t.commit (); - - try - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (2)); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - } - - // Load (into existing). - // - { - object o; - - transaction t (db->begin ()); - db->load (1, o); - assert (o.str_ == "value 1"); - t.commit (); - - try - { - transaction t (db->begin ()); - db->load (2, o); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - } - - // Reload. - // - { - object o; - - transaction t (db->begin ()); - db->load (1, o); - o.str_ = "junk"; - db->reload (o); - assert (o.str_ == "value 1"); - t.commit (); - - try - { - transaction t (db->begin ()); - o.id_ = 2; - db->reload (o); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - } - - // Modified. - // - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - o->str_ = "value 2"; - db->update (*o); - t.commit (); - - try - { - transaction t (db->begin ()); - o->id_ = 2; - db->update (*o); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - } - - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - assert (o->str_ == "value 2"); - t.commit (); - } - - // Update of unmodified object. - // - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - db->update (*o); - t.commit (); - } - - // Transient. - // - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - db->erase (*o); - t.commit (); - - try - { - transaction t (db->begin ()); - db->erase<object> (1); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - } - - try - { - transaction t (db->begin ()); - unique_ptr<object> o (db->load<object> (1)); - assert (false); - t.commit (); - } - catch (const object_not_persistent&) - { - } - } - catch (const odb::exception& e) - { - cerr << e.what () << endl; - return 1; - } -} diff --git a/common/lifecycle/test.hxx b/common/lifecycle/test.hxx deleted file mode 100644 index 8d260d2..0000000 --- a/common/lifecycle/test.hxx +++ /dev/null @@ -1,27 +0,0 @@ -// file : common/lifecycle/test.hxx -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TEST_HXX -#define TEST_HXX - -#include <string> -#include <odb/core.hxx> - -#pragma db object -struct object -{ - object (unsigned long id) - : id_ (id) - { - } - - object () - { - } - - #pragma db id - unsigned long id_; - std::string str_; -}; - -#endif // TEST_HXX diff --git a/common/lifecycle/testscript b/common/lifecycle/testscript deleted file mode 100644 index 0337bba..0000000 --- a/common/lifecycle/testscript +++ /dev/null @@ -1,33 +0,0 @@ -# file : common/lifecycle/testscript -# license : GNU GPL v2; see accompanying LICENSE file - -.include ../../database-options.testscript - -: mysql -: -if $mysql -{ - .include ../../mysql.testscript - - $create_schema; - $* -} - -: sqlite -: -if $sqlite -{ - .include ../../sqlite.testscript - - $* -} - -: pgsql -: -if $pgsql -{ - .include ../../pgsql.testscript - - $create_schema; - $* -} |