diff --git a/SemanticData/UAModelDesignExport.UnitTest/ModelFactoryUnitTest.cs b/SemanticData/UAModelDesignExport.UnitTest/ModelFactoryUnitTest.cs index 17a38b9a..2eb5f36a 100644 --- a/SemanticData/UAModelDesignExport.UnitTest/ModelFactoryUnitTest.cs +++ b/SemanticData/UAModelDesignExport.UnitTest/ModelFactoryUnitTest.cs @@ -1,13 +1,14 @@ -//___________________________________________________________________________________ +//__________________________________________________________________________________________________ // -// Copyright (C) 2019, Mariusz Postol LODZ POLAND. +// Copyright (C) 2022, Mariusz Postol LODZ POLAND. // -// To be in touch join the community at GITTER: https://gitter.im/mpostol/OPC-UA-OOI -//___________________________________________________________________________________ +// To be in touch join the community at GitHub: https://github.com/mpostol/OPC-UA-OOI/discussions +//__________________________________________________________________________________________________ using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; +using System.Xml; using UAOOI.SemanticData.BuildingErrorsHandling; using UAOOI.SemanticData.InformationModelFactory; using UAOOI.SemanticData.UAModelDesignExport.XML; @@ -24,6 +25,7 @@ public void EEmptyModelTest() ModelFactory _instance = new ModelFactory(_message => { }); ModelDesign _createdModel = _instance.Export(); } + [TestMethod] public void NamespaceTest() { @@ -42,5 +44,40 @@ public void NamespaceTest() Assert.IsTrue(_createdModel.TargetPublicationDateSpecified); Assert.AreEqual(0, _traceBuffer.Count); } + + [TestMethod] + public void NamespacesVersionTest() + { + List _traceBuffer = new List(); + ModelFactory _instance = new ModelFactory(_message => _traceBuffer.Add(_message)); + ((IModelFactory)_instance).CreateNamespace("NameSpace1", String.Empty, new Version(1, 0, 0).ToString()); + ((IModelFactory)_instance).CreateNamespace("NameSpace2", String.Empty, new Version(1, 0, 0).ToString()); + ModelDesign model = _instance.Export(); + Assert.AreEqual(2, model.Namespaces.Length); + Assert.AreEqual(0, _traceBuffer.Count); + Assert.AreEqual("1.0.0", model.Namespaces[0].Version); + Assert.AreEqual("1.0.0", model.Namespaces[1].Version); + } + + [TestMethod] + public void ChildrenGeneration() + { + List _traceBuffer = new List(); + ModelFactory _instance = new ModelFactory(_message => _traceBuffer.Add(_message)); + ((IModelFactory)_instance).CreateNamespace("NameSpace1", String.Empty, new Version(1, 0, 0).ToString()); + ((IModelFactory)_instance).CreateNamespace("NameSpace2", String.Empty, new Version(1, 0, 0).ToString()); + + IObjectInstanceFactory objectInstanceFactory = ((IModelFactory)_instance).AddNodeFactory(); + objectInstanceFactory.SymbolicName = new XmlQualifiedName("objectInstanceFactory", "http://a.b.c"); + IVariableInstanceFactory variableInstanceFactory = objectInstanceFactory.AddNodeFactory(); + variableInstanceFactory.SymbolicName = new XmlQualifiedName("variableInstanceFactory", "http://a.b.c"); + IObjectTypeFactory objectTypeFactory = ((IModelFactory)_instance).AddNodeFactory(); + objectTypeFactory.SymbolicName = new XmlQualifiedName("objectTypeFactory", "http://a.b.c"); + + ModelDesign model = _instance.Export(); + Assert.AreEqual(2, model.Items.Length); + Assert.AreEqual(2, model.Namespaces.Length); + Assert.AreEqual(0, _traceBuffer.Count); + } } -} +} \ No newline at end of file