diff options
Diffstat (limited to 'libadhocutil/unittests/testResourcePool.cpp')
-rw-r--r-- | libadhocutil/unittests/testResourcePool.cpp | 28 |
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()); +} + |