TEST_F(ModelObject, CanAccessVariableByBrowsePath) { OpcUa::Model::Server server(Services); OpcUa::Model::Object serverObject = server.GetObject(OpcUa::ObjectId::Server); OpcUa::RelativePath path; path.Elements.push_back(GetHierarchicalElement(OpcUa::Names::ServerStatus)); path.Elements.push_back(GetHierarchicalElement(OpcUa::Names::BuildInfo)); path.Elements.push_back(GetHierarchicalElement(OpcUa::Names::BuildNumber)); OpcUa::Model::Variable buildNumber = serverObject.GetVariable(path); EXPECT_EQ(buildNumber.GetBrowseName(), OpcUa::QualifiedName(OpcUa::Names::BuildNumber)); }
TEST_F(ModelObject, ObjectCanCreateVariable) { OpcUa::Model::Server server(Services); OpcUa::Model::Object rootObject = server.RootObject(); OpcUa::QualifiedName name("new_variable"); OpcUa::Variant value = 8; OpcUa::Model::Variable variable = rootObject.CreateVariable(name, value); ASSERT_NE(variable.GetId(), OpcUa::ObjectId::Null); ASSERT_EQ(variable.GetBrowseName(), name); ASSERT_EQ(variable.GetDisplayName(), OpcUa::LocalizedText(name.Name)); ASSERT_EQ(variable.GetValue(), value); }
TEST_F(ModelObject, CanAccessVariableByQualifiedName) { std::cout << "1" << std::endl; OpcUa::Model::Server server(Services); std::cout << "2" << std::endl; OpcUa::Model::Object rootObject = server.RootObject(); std::cout << "3" << std::endl; OpcUa::Model::ObjectType serverType = server.GetObjectType(OpcUa::ObjectId::ServerType); std::cout << "4" << std::endl; OpcUa::Model::Object serverObject = rootObject.CreateObject(serverType, OpcUa::QualifiedName("Server")); std::cout << "5" << std::endl; OpcUa::Model::Variable serverStatus = serverObject.GetVariable(OpcUa::QualifiedName(OpcUa::Names::ServerStatus)); std::cout << "6" << std::endl; EXPECT_EQ(serverStatus.GetBrowseName(), OpcUa::QualifiedName(OpcUa::Names::ServerStatus)); std::cout << "7" << std::endl; }
TEST_F(ModelVariable, CanSetVariableValue_ByVariant) { OpcUa::Model::Server server(Services); OpcUa::Model::Object rootObject = server.RootObject(); OpcUa::QualifiedName name("new_variable"); OpcUa::Variant value = 8; OpcUa::Model::Variable variable = rootObject.CreateVariable(name, value); ASSERT_NE(variable.GetID(), OpcUa::ObjectID::Null); ASSERT_EQ(variable.GetBrowseName(), name); ASSERT_EQ(variable.GetDisplayName(), OpcUa::LocalizedText(name.Name)); ASSERT_EQ(variable.GetValue(), value); variable.SetValue(10); OpcUa::DataValue data = variable.GetValue(); ASSERT_TRUE(data.Encoding & (OpcUa::DATA_VALUE)); ASSERT_TRUE(data.Encoding & (OpcUa::DATA_VALUE_SOURCE_TIMESTAMP)); EXPECT_EQ(data.Value, 10); EXPECT_NE(data.SourceTimestamp, 0); }