34 std::unique_ptr<ItemPool> pool(
new ItemPool);
35 EXPECT_EQ(pool->size(), 0u);
42 std::unique_ptr<ItemPool> pool(
new ItemPool);
46 auto key = pool->register_item(item.get());
47 EXPECT_EQ(pool->size(), 1u);
48 EXPECT_FALSE(key.empty());
51 EXPECT_EQ(key, pool->key_for_item(item.get()));
52 EXPECT_EQ(item.get(), pool->item_for_key(key));
55 std::unique_ptr<SessionItem> item2(
new SessionItem);
57 EXPECT_EQ(
nullptr, pool->item_for_key(
"ABC"));
60 auto key2 = pool->register_item(item2.get());
61 EXPECT_EQ(pool->size(), 2u);
62 EXPECT_EQ(key2, pool->key_for_item(item2.get()));
63 EXPECT_FALSE(key == key2);
66 EXPECT_THROW(pool->register_item(item2.get()), std::runtime_error);
73 std::unique_ptr<ItemPool> pool(
new ItemPool);
74 std::unique_ptr<SessionItem> item1(
new SessionItem);
75 std::unique_ptr<SessionItem> item2(
new SessionItem);
77 auto key1 = pool->register_item(item1.get());
78 auto key2 = pool->register_item(item2.get());
80 EXPECT_EQ(pool->size(), 2u);
81 EXPECT_EQ(item1.get(), pool->item_for_key(key1));
82 EXPECT_EQ(item2.get(), pool->item_for_key(key2));
85 pool->unregister_item(item1.get());
86 EXPECT_EQ(pool->size(), 1u);
87 EXPECT_EQ(
nullptr, pool->item_for_key(key1));
88 EXPECT_EQ(item2.get(), pool->item_for_key(key2));
91 EXPECT_THROW(pool->unregister_item(item1.get()), std::runtime_error);
94 pool->unregister_item(item2.get());
95 EXPECT_EQ(pool->size(), 0u);
102 std::shared_ptr<ItemPool> pool(
new ItemPool);
103 EXPECT_EQ(pool.use_count(), 1l);
108 pool->register_item(item,
id);
111 std::unique_ptr<SessionItem> item2(
new SessionItem);
112 EXPECT_THROW(pool->register_item(item2.get(),
id), std::runtime_error);
Tests of ItemPool and its abilities to register/deregister SessionItem.
Provides registration of SessionItem pointers and their unique identifiers in global memory pool.
The main object representing an editable/displayable/serializable entity.
TEST_F(ItemPoolTest, initialState)
materialitems.h Collection of materials to populate MaterialModel.
std::string identifier_type