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.cpp28
1 files changed, 24 insertions, 4 deletions
diff --git a/libadhocutil/unittests/testResourcePool.cpp b/libadhocutil/unittests/testResourcePool.cpp
index d7547d4..2b3389f 100644
--- a/libadhocutil/unittests/testResourcePool.cpp
+++ b/libadhocutil/unittests/testResourcePool.cpp
@@ -38,9 +38,7 @@ class TRPSmall : public AdHoc::ResourcePool<MockResource> {
}
};
-class TRPFail : public AdHoc::ResourcePool<MockResource> {
- public:
- TRPFail() : AdHoc::ResourcePool<MockResource>(3, 1) { }
+class TRPCreateFail : public TRPSmall {
protected:
MockResource * createResource() const override
{
@@ -48,6 +46,14 @@ class TRPFail : public AdHoc::ResourcePool<MockResource> {
}
};
+class TRPReturnFail : public TRPSmall {
+ protected:
+ void returnTestResource(const MockResource *) const override
+ {
+ throw std::exception();
+ }
+};
+
BOOST_AUTO_TEST_CASE ( get )
{
{
@@ -323,7 +329,7 @@ BOOST_AUTO_TEST_CASE( test )
BOOST_AUTO_TEST_CASE( createFail )
{
- TRPFail pool;
+ TRPCreateFail pool;
BOOST_REQUIRE_EQUAL(0, MockResource::count);
BOOST_REQUIRE_EQUAL(0, pool.availableCount());
BOOST_REQUIRE_EQUAL(0, pool.inUseCount());
@@ -343,3 +349,17 @@ BOOST_AUTO_TEST_CASE( createFail )
BOOST_REQUIRE_EQUAL(3, pool.freeCount());
}
+BOOST_AUTO_TEST_CASE( returnFail )
+{
+ TRPReturnFail pool;
+ {
+ auto rh = pool.get();
+ BOOST_REQUIRE_EQUAL(0, pool.availableCount());
+ BOOST_REQUIRE_EQUAL(1, pool.inUseCount());
+ BOOST_REQUIRE_EQUAL(2, pool.freeCount());
+ }
+ BOOST_REQUIRE_EQUAL(0, pool.availableCount());
+ BOOST_REQUIRE_EQUAL(0, pool.inUseCount());
+ BOOST_REQUIRE_EQUAL(3, pool.freeCount());
+}
+