diff options
-rw-r--r-- | tests/test_AstraObjectManager.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/tests/test_AstraObjectManager.cpp b/tests/test_AstraObjectManager.cpp index da641ba..39652f1 100644 --- a/tests/test_AstraObjectManager.cpp +++ b/tests/test_AstraObjectManager.cpp @@ -31,19 +31,35 @@ along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>. #include "astra/AstraObjectManager.h" +struct TestT { + TestT(int _x) : x(_x) { } + bool operator==(int _x) const { return x == _x; } + + int x; + bool isInitialized() const { return true; } + std::string description() const { return ""; } +}; + namespace astra { -DEFINE_SINGLETON(CAstraObjectManager<int>); + +class CTestManager : public Singleton<CTestManager>, public CAstraObjectManager<TestT> +{ + virtual std::string getType() const { return "test"; } +}; + +DEFINE_SINGLETON(CTestManager); + } BOOST_AUTO_TEST_CASE( testAstraObjectManager ) { - astra::CAstraObjectManager<int> man; + astra::CTestManager &man = astra::CTestManager::getSingleton(); - int i1 = man.store(new int(1)); + int i1 = man.store(new TestT(1)); BOOST_REQUIRE(man.hasIndex(i1)); BOOST_CHECK(*(man.get(i1)) == 1); - int i2 = man.store(new int(2)); + int i2 = man.store(new TestT(2)); BOOST_REQUIRE(man.hasIndex(i2)); BOOST_CHECK(*(man.get(i1)) == 1); BOOST_CHECK(*(man.get(i2)) == 2); @@ -53,12 +69,12 @@ BOOST_AUTO_TEST_CASE( testAstraObjectManager ) BOOST_CHECK(!man.hasIndex(i1)); BOOST_REQUIRE(man.hasIndex(i2)); - int i3 = man.store(new int(3)); + int i3 = man.store(new TestT(3)); BOOST_REQUIRE(man.hasIndex(i3)); BOOST_CHECK(*(man.get(i2)) == 2); BOOST_CHECK(*(man.get(i3)) == 3); - int* pi4 = new int(4); + TestT* pi4 = new TestT(4); int i4 = man.store(pi4); BOOST_REQUIRE(man.hasIndex(i4)); BOOST_CHECK(*(man.get(i2)) == 2); |