public async Task UnregisterNamespaceManagerNotInCollection() { var fixture = new ServerFixture <StandardServer>(); try { //-- Arrange const string ns = "http://test.org/UA/Data/"; var namespaceUris = new List <string> { ns }; var firstNodeManager = new Mock <INodeManager>(); firstNodeManager.Setup(x => x.NamespaceUris).Returns(namespaceUris); var secondNodeManager = new Mock <INodeManager>(); secondNodeManager.Setup(x => x.NamespaceUris).Returns(namespaceUris); var thirdNodeManager = new Mock <INodeManager>(); thirdNodeManager.Setup(x => x.NamespaceUris).Returns(namespaceUris); //-- Act var server = await fixture.StartAsync(TestContext.Out).ConfigureAwait(false); var sut = new MasterNodeManager( server.CurrentInstance, fixture.Config, null, firstNodeManager.Object, // Do not add the secondNodeManager to additionalManagers thirdNodeManager.Object); var result = sut.UnregisterNamespaceManager(ns, secondNodeManager.Object); //-- Assert Assert.IsFalse(result); Assert.Contains(ns, server.CurrentInstance.NamespaceUris.ToArray()); var registeredManagers = sut.NamespaceManagers[server.CurrentInstance.NamespaceUris.GetIndex(ns)]; Assert.AreEqual(2, registeredManagers.Length); Assert.Contains(firstNodeManager.Object, registeredManagers); Assert.Contains(thirdNodeManager.Object, registeredManagers); } finally { await fixture.StopAsync().ConfigureAwait(false); } }
public async Task UnregisterNamespaceManagerInCollection(int totalManagers, int indexToRemove) { var fixture = new ServerFixture <StandardServer>(); try { //-- Arrange const string ns = "http://test.org/UA/Data/"; var namespaceUris = new List <string> { ns }; var additionalManagers = new INodeManager[totalManagers]; for (int ii = 0; ii < totalManagers; ii++) { var nodeManager = new Mock <INodeManager>(); nodeManager.Setup(x => x.NamespaceUris).Returns(namespaceUris); additionalManagers[ii] = nodeManager.Object; } var nodeManagerToRemove = additionalManagers[indexToRemove]; //-- Act var server = await fixture.StartAsync(TestContext.Out).ConfigureAwait(false); var sut = new MasterNodeManager( server.CurrentInstance, fixture.Config, null, additionalManagers); var result = sut.UnregisterNamespaceManager(ns, nodeManagerToRemove); //-- Assert Assert.IsTrue(result); Assert.Contains(ns, server.CurrentInstance.NamespaceUris.ToArray()); var registeredManagers = sut.NamespaceManagers[server.CurrentInstance.NamespaceUris.GetIndex(ns)]; Assert.AreEqual(totalManagers - 1, registeredManagers.Length); Assert.That(registeredManagers, Has.No.Member(nodeManagerToRemove)); } finally { await fixture.StopAsync().ConfigureAwait(false); } }
public async Task UnregisterNamespaceManagerUnknownNamespace() { var fixture = new ServerFixture <StandardServer>(); try { //-- Arrange const string originalNs = "http://test.org/UA/Data/"; var originalNodeManager = new Mock <INodeManager>(); originalNodeManager.Setup(x => x.NamespaceUris).Returns(new List <string> { originalNs }); const string newNs = "http://test.org/UA/Data/Instance"; var newNodeManager = new Mock <INodeManager>(); newNodeManager.Setup(x => x.NamespaceUris).Returns(new List <string> { originalNs, newNs }); //-- Act var server = await fixture.StartAsync(TestContext.Out).ConfigureAwait(false); var sut = new MasterNodeManager( server.CurrentInstance, fixture.Config, null, originalNodeManager.Object); var result = sut.UnregisterNamespaceManager(newNs, newNodeManager.Object); //-- Assert Assert.IsFalse(result); Assert.That(server.CurrentInstance.NamespaceUris.ToArray(), Has.No.Member(newNs)); Assert.Contains(originalNs, server.CurrentInstance.NamespaceUris.ToArray()); var registeredManagers = sut.NamespaceManagers[server.CurrentInstance.NamespaceUris.GetIndex(originalNs)]; Assert.AreEqual(1, registeredManagers.Length); Assert.Contains(originalNodeManager.Object, registeredManagers); } finally { await fixture.StopAsync().ConfigureAwait(false); } }