+void CollectionTests::contains()
+{
+ const TestCollection *ccoll = collection;
+ EXPECT(ccoll->contains<Foo>("a"));
+ EXPECT(ccoll->contains<Bar>("c"));
+ EXPECT(!ccoll->contains<Foo>("c"));
+}
+
+void CollectionTests::contains_base()
+{
+ const TestCollection *ccoll = collection;
+ EXPECT(ccoll->contains<Bar>("d"));
+ EXPECT(ccoll->contains<Sub>("d"));
+}
+
+void CollectionTests::contains_loadable()
+{
+ const TestCollection *ccoll = collection;
+ EXPECT(!ccoll->contains<Foo>("f"));
+ EXPECT(collection->contains<Foo>("f"));
+}
+
+void CollectionTests::names()
+{
+ const TestCollection *ccoll = collection;
+ list<string> nm = ccoll->get_names<Foo>();
+ EXPECT_EQUAL(nm.size(), 2);
+ set<string> nm_set(nm.begin(), nm.end());
+ EXPECT_EQUAL(nm_set.count("a"), 1);
+ EXPECT_EQUAL(nm_set.count("b"), 1);
+}
+
+void CollectionTests::names_base()
+{
+ const TestCollection *ccoll = collection;
+ list<string> nm = ccoll->get_names<Bar>();
+ EXPECT_EQUAL(nm.size(), 3);
+ set<string> nm_set(nm.begin(), nm.end());
+ EXPECT_EQUAL(nm_set.count("c"), 1);
+ EXPECT_EQUAL(nm_set.count("d"), 1);
+ EXPECT_EQUAL(nm_set.count("e"), 1);
+}
+
+void CollectionTests::names_loadable()
+{
+ list<string> nm = collection->get_names<Foo>();
+ EXPECT_EQUAL(nm.size(), 3);
+ set<string> nm_set(nm.begin(), nm.end());
+ EXPECT_EQUAL(nm_set.count("f"), 1);
+}
+