TEST_F(IdfFixture, WorkspaceObject_Lights) { Workspace workspace(epIdfFile, StrictnessLevel::Draft); OptionalWorkspaceObject light = workspace.getObjectByTypeAndName(IddObjectType::Lights, "SPACE1-1 Lights 1"); ASSERT_TRUE(light); OptionalString lightsZoneName = light->getString(LightsFields::ZoneorZoneListName); ASSERT_TRUE(lightsZoneName); OptionalString lightsScheduleName = light->getString(LightsFields::ScheduleName); ASSERT_TRUE(lightsScheduleName); OptionalWorkspaceObject zone = light->getTarget(LightsFields::ZoneorZoneListName); ASSERT_TRUE(zone); OptionalString zoneName = zone->getString(ZoneFields::Name); ASSERT_TRUE(zoneName); EXPECT_EQ(*lightsZoneName, *zoneName); OptionalWorkspaceObject schedule = light->getTarget(LightsFields::ScheduleName); ASSERT_TRUE(schedule); EXPECT_EQ(IddObjectType::Schedule_Compact, schedule->iddObject().type().value()); OptionalString scheduleName = schedule->getString(Schedule_CompactFields::Name); ASSERT_TRUE(scheduleName); EXPECT_EQ(*lightsScheduleName, *scheduleName); // now change name of zone and schedule and make sure string reference in light change as well EXPECT_TRUE(zone->setString(ZoneFields::Name, "New Zone Name")); zoneName = zone->getString(ZoneFields::Name); ASSERT_TRUE(zoneName); EXPECT_EQ("New Zone Name", *zoneName); lightsZoneName = light->getString(LightsFields::ZoneorZoneListName); ASSERT_TRUE(lightsZoneName); EXPECT_EQ(*lightsZoneName, *zoneName); EXPECT_TRUE(zone->createName()); zoneName = zone->getString(ZoneFields::Name); ASSERT_TRUE(zoneName); EXPECT_EQ("Zone 1",*zoneName); lightsZoneName = light->getString(LightsFields::ZoneorZoneListName); ASSERT_TRUE(lightsZoneName); EXPECT_EQ(*lightsZoneName, *zoneName); EXPECT_TRUE(schedule->setString(Schedule_CompactFields::Name, "New Schedule Name")); scheduleName = schedule->getString(Schedule_CompactFields::Name); ASSERT_TRUE(scheduleName); EXPECT_EQ("New Schedule Name", *scheduleName); lightsScheduleName = light->getString(LightsFields::ScheduleName); ASSERT_TRUE(lightsScheduleName); EXPECT_EQ(*lightsScheduleName, *scheduleName); }
TEST_F(IdfFixture, WorkspaceObject_GetStringAfterSetStringAddsFields) { // construct empty workspace, and set Idd to be EnergyPlusIdd StrictnessLevel level(StrictnessLevel::Draft); IddFileType fileType(IddFileType::EnergyPlus); Workspace ws(level,fileType); OptionalWorkspaceObject w; IdfObject idfObj(IddObjectType::SurfaceProperty_ConvectionCoefficients); w = ws.addObject(idfObj); EXPECT_TRUE(w->numNonextensibleFields()==3); EXPECT_TRUE(w->setString(w->iddObject().numFields()-1,"")); EXPECT_TRUE(w->numNonextensibleFields()==11); OptionalString s4 = w->getString(4,true); EXPECT_TRUE(s4); OptionalString s10 = w->getString(10,true); EXPECT_TRUE(s10); }