std::vector<IddObject> IddFile_Impl::getObjectsInGroup(const std::string& group) const { IddObjectVector result; for (const IddObject& object : m_objects){ if(istringEqual(object.group(), group)){ result.push_back(object); } } return result; }
std::vector<IddObject> IddFile_Impl::requiredObjects() const { IddObjectVector result; BOOST_FOREACH(const IddObject& object, m_objects){ if(object.properties().required){ result.push_back(object); } } return result; }
std::vector<IddObject> IddFile_Impl::uniqueObjects() const { IddObjectVector result; for (const IddObject& object : m_objects){ if(object.properties().unique){ result.push_back(object); } } return result; }
std::vector<IddObject> IddFile_Impl::getObjects(const boost::regex &objectRegex) const { IddObjectVector result; for (const IddObject& object : m_objects) { if (boost::regex_match(object.name(),objectRegex)) { result.push_back(object); } } return result; }
TEST_F(IddFixture,IddObjectVector_GetTypes) { IddObjectVector objects = IddFactory::instance().objects(); IddObjectTypeVector typeVector = getIddObjectTypeVector(objects); EXPECT_EQ(objects.size(),typeVector.size()); IddObjectVector roundtripObjects; for (const IddObjectType& type : typeVector) { roundtripObjects.push_back(IddFactory::instance().getObject(type).get()); } EXPECT_TRUE(roundtripObjects == objects); roundtripObjects.insert(roundtripObjects.end(),objects.begin(),objects.end()); typeVector = getIddObjectTypeVector(roundtripObjects); EXPECT_EQ(2*objects.size(),typeVector.size()); IddObjectTypeSet typeSet = getIddObjectTypeSet(roundtripObjects); EXPECT_EQ(objects.size(),typeSet.size()); }