Skip to content

Commit

Permalink
The exported model doesn't contain all nodes #653
Browse files Browse the repository at this point in the history
- added ModelFactoryUnitTest tests against children
  • Loading branch information
mpostol committed Mar 26, 2022
1 parent 09674c1 commit a5013ff
Showing 1 changed file with 42 additions and 5 deletions.
47 changes: 42 additions & 5 deletions SemanticData/UAModelDesignExport.UnitTest/ModelFactoryUnitTest.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -24,6 +25,7 @@ public void EEmptyModelTest()
ModelFactory _instance = new ModelFactory(_message => { });
ModelDesign _createdModel = _instance.Export();
}

[TestMethod]
public void NamespaceTest()
{
Expand All @@ -42,5 +44,40 @@ public void NamespaceTest()
Assert.IsTrue(_createdModel.TargetPublicationDateSpecified);
Assert.AreEqual<int>(0, _traceBuffer.Count);
}

[TestMethod]
public void NamespacesVersionTest()
{
List<TraceMessage> _traceBuffer = new List<TraceMessage>();
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<int>(2, model.Namespaces.Length);
Assert.AreEqual<int>(0, _traceBuffer.Count);
Assert.AreEqual<string>("1.0.0", model.Namespaces[0].Version);
Assert.AreEqual<string>("1.0.0", model.Namespaces[1].Version);
}

[TestMethod]
public void ChildrenGeneration()
{
List<TraceMessage> _traceBuffer = new List<TraceMessage>();
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<IObjectInstanceFactory>();
objectInstanceFactory.SymbolicName = new XmlQualifiedName("objectInstanceFactory", "http://a.b.c");
IVariableInstanceFactory variableInstanceFactory = objectInstanceFactory.AddNodeFactory<IVariableInstanceFactory>();
variableInstanceFactory.SymbolicName = new XmlQualifiedName("variableInstanceFactory", "http://a.b.c");
IObjectTypeFactory objectTypeFactory = ((IModelFactory)_instance).AddNodeFactory<IObjectTypeFactory>();
objectTypeFactory.SymbolicName = new XmlQualifiedName("objectTypeFactory", "http://a.b.c");

ModelDesign model = _instance.Export();
Assert.AreEqual<int>(2, model.Items.Length);
Assert.AreEqual<int>(2, model.Namespaces.Length);
Assert.AreEqual<int>(0, _traceBuffer.Count);
}
}
}
}

0 comments on commit a5013ff

Please sign in to comment.