summaryrefslogtreecommitdiff
path: root/libadhocutil/unittests/testResourcePool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libadhocutil/unittests/testResourcePool.cpp')
-rw-r--r--libadhocutil/unittests/testResourcePool.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/libadhocutil/unittests/testResourcePool.cpp b/libadhocutil/unittests/testResourcePool.cpp
index e37cc85..04e66b8 100644
--- a/libadhocutil/unittests/testResourcePool.cpp
+++ b/libadhocutil/unittests/testResourcePool.cpp
@@ -146,6 +146,38 @@ BOOST_AUTO_TEST_CASE( getMineNoCurrent )
BOOST_REQUIRE_THROW(pool.getMine(), AdHoc::NoCurrentResource);
}
+BOOST_AUTO_TEST_CASE( move )
+{
+ TRP pool;
+ {
+ auto r1 = pool.get();
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 1);
+ BOOST_CHECK(r1);
+ {
+ auto r2(std::move(r1));
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 1);
+ BOOST_CHECK(!r1);
+ BOOST_CHECK(r2);
+
+ r1 = std::move(r2);
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 1);
+ BOOST_CHECK(r1);
+ BOOST_CHECK(!r2);
+
+ r2 = pool.get();
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 2);
+ BOOST_CHECK(r2);
+
+ r1 = std::move(r2);
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 1);
+ BOOST_CHECK(r1);
+ BOOST_CHECK(!r2);
+ }
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 1);
+ }
+ BOOST_CHECK_EQUAL(pool.inUseCount(), 0);
+}
+
BOOST_AUTO_TEST_CASE( discard )
{
TRP pool;