// case insensitive test void IddFile_bUiLdInG(const IddFile& iddFile) { string objectName("bUiLdInG"); OptionalIddObject object = iddFile.getObject(objectName); ASSERT_TRUE(object); EXPECT_TRUE(iequals(object->name(), objectName)); EXPECT_EQ(static_cast<unsigned int>(8),object->nonextensibleFields().size()); EXPECT_TRUE(object->properties().unique); EXPECT_TRUE(object->properties().required); string fieldName("TeRrAiN"); OptionalIddField field = object->getField(fieldName); ASSERT_TRUE(field); EXPECT_TRUE(iequals(field->name(), fieldName)); EXPECT_EQ(field->keys().size(), static_cast<unsigned int>(5) ); EXPECT_TRUE(field->properties().stringDefault); EXPECT_EQ(*(field->properties().stringDefault), "Suburbs"); EXPECT_FALSE(field->properties().numericDefault); string keyName("SuBuRbS"); OptionalIddKey key = field->getKey(keyName); ASSERT_TRUE(key); EXPECT_FALSE(equals(key->name(), keyName)); EXPECT_TRUE(iequals(key->name(), keyName)); }
// extensible object test, BuildingSurface:Detailed void IddFile_BuildingSurfaceDetailed(const IddFile& iddFile) { string objectName("BuildingSurface:Detailed"); OptionalIddObject object = iddFile.getObject(objectName); ASSERT_TRUE(object); EXPECT_TRUE(iequals(object->name(), objectName)); ASSERT_TRUE(object->nonextensibleFields().size() > 0); EXPECT_EQ(object->nonextensibleFields().size(), static_cast<unsigned int>(10)); EXPECT_FALSE(object->properties().format.empty()); EXPECT_TRUE(iequals("vertices", object->properties().format)); EXPECT_TRUE(object->properties().extensible); EXPECT_TRUE(object->properties().numExtensible); ASSERT_EQ(static_cast<unsigned int>(3), object->properties().numExtensible); EXPECT_FALSE(object->getField("Vertex 1 X-coordinate")); EXPECT_FALSE(object->getField("Vertex 1 X-coordinate")); ASSERT_TRUE(object->extensibleGroup().size() > 0); string fieldName("Vertex X-coordinate"); EXPECT_TRUE(iequals(fieldName, object->extensibleGroup().front().name() )); OptionalIddField field = object->getField(fieldName); ASSERT_TRUE(field); EXPECT_TRUE(iequals(fieldName, field->name())); EXPECT_TRUE(field->properties().beginExtensible); fieldName = "Vertex Z-coordinate"; EXPECT_TRUE(iequals(fieldName, object->extensibleGroup().back().name() )); field = object->getField(fieldName); ASSERT_TRUE(field); EXPECT_TRUE(iequals(fieldName, field->name())); EXPECT_FALSE(field->properties().beginExtensible); }
TEST_F(IddFixture,IddKey_Getters) { OptionalIddObject optObject = IddFactory::instance().getObject(IddObjectType::Controller_OutdoorAir); ASSERT_TRUE(optObject); IddObject obj = *optObject; OptionalIddField f = obj.getField(Controller_OutdoorAirFields::EconomizerControlType); ASSERT_TRUE(f); EXPECT_TRUE(f->properties().type == IddFieldType::ChoiceType); IddKeyVector keys = f->keys(); EXPECT_EQ(static_cast<unsigned>(8),keys.size()); LOG(Info,"Keys for field " << Controller_OutdoorAirFields::EconomizerControlType << ", " << f->name() << ", of IddObject " << obj.name() << ":"); unsigned i = 0; BOOST_FOREACH(IddKey& key,keys) { LOG(Info," Key " << i << ": " << key.name()); ++i; }
TEST_F(IddFixture,IddFactory_IddObjects) { IddObject object; OptionalIddObject candidate = IddFactory::instance().getObject(IddObjectType::UserCustom); EXPECT_FALSE(candidate); candidate = IddFactory::instance().getObject(IddObjectType::Catchall); ASSERT_TRUE(candidate); object = *candidate; candidate = IddFactory::instance().getObject("catchall"); ASSERT_TRUE(candidate); EXPECT_TRUE(object == *candidate); candidate = IddFactory::instance().getObject(IddObjectType::CommentOnly); ASSERT_TRUE(candidate); object = *candidate; candidate = IddFactory::instance().getObject("coMmentonLy"); ASSERT_TRUE(candidate); EXPECT_TRUE(object == *candidate); candidate = IddFactory::instance().getObject(IddObjectType::Lights); ASSERT_TRUE(candidate); object = *candidate; candidate = IddFactory::instance().getObject("lights"); ASSERT_TRUE(candidate); EXPECT_TRUE(object == *candidate); EXPECT_EQ("Lights", object.name()); ASSERT_TRUE(object.nonextensibleFields().size() > static_cast<unsigned>(0)); EXPECT_EQ("Return Air Fraction Function of Plenum Temperature Coefficient 2", object.nonextensibleFields().back().name()); OptionalIddField field = object.getField(0); ASSERT_TRUE(field); EXPECT_EQ("Name",field->name()); EXPECT_TRUE(field->properties().required); EXPECT_EQ(IddFieldType(IddFieldType::AlphaType),field->properties().type); ASSERT_TRUE(!field->properties().references.empty()); EXPECT_EQ(static_cast<unsigned>(1), field->properties().references.size()); EXPECT_EQ("LightsNames", *(field->properties().references.begin())); EXPECT_FALSE(field->properties().stringDefault); // OptionalString should be false--no default name EXPECT_EQ(IddFieldProperties::Unbounded,field->properties().minBoundType); ASSERT_TRUE(object.nonextensibleFields().size() > static_cast<unsigned>(3)); field = object.getField(3); EXPECT_EQ("Design Level Calculation Method",field->name()); EXPECT_FALSE(field->properties().required); EXPECT_TRUE(field->properties().stringDefault); EXPECT_EQ("LightingLevel",*(field->properties().stringDefault)); EXPECT_EQ(IddFieldType(IddFieldType::ChoiceType),field->properties().type); EXPECT_EQ(static_cast<unsigned>(3),field->keys().size()); }