public void PnPlcExpandedNodeId3Test() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"" }, { ""Id"": ""ns=2;s=DipData"" }, { ""Id"": ""nsu=http://microsoft.com/Opc/OpcPlc/;s=NegativeTrendData"" } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.Single(jobs .Single().WriterGroup.DataSetWriters); Assert.Equal("opc.tcp://localhost:50000", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url); }
public void PnPlcHeartbeatSkipSingleTrueTest() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""SkipSingle"": true } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.Single(jobs .Single().WriterGroup.DataSetWriters); Assert.Equal("opc.tcp://localhost:50000", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url); }
public void PnPlcExpandedNodeIdTest() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""ExpandedNodeId"": ""nsu=http://opcfoundation.org/UA/;i=2258"" } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), new StandaloneIdentity()); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Single(jobs .Single().WriterGroup.DataSetWriters); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.Equal("opc.tcp://localhost:50000", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url); }
public void PnPlcHeartbeatInterval2Test() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""HeartbeatInterval"": 2 } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer, new StandaloneIdentity()); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.Single(jobs .Single().WriterGroup.DataSetWriters); Assert.Equal("opc.tcp://localhost:50000", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url); Assert.Equal(2, jobs.Single() .WriterGroup.DataSetWriters.Single() .DataSet.DataSetSource.PublishedVariables.PublishedData.Single() .HeartbeatInterval.Value.TotalSeconds); }
public void PnPlcHeartbeatSkipSingleFalseTest() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""SkipSingle"": false } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), new StandaloneIdentity()); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Single(jobs .Single().WriterGroup.DataSetWriters); Assert.Equal("opc.tcp://localhost:50000", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url); }
public void PnPlcPublishingIntervalCliTest() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"" } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel() { DefaultPublishingInterval = TimeSpan.FromSeconds(10) }); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Single(jobs .Single().WriterGroup.DataSetWriters); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.Equal("opc.tcp://localhost:50000", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url); Assert.Equal(10000, jobs.Single().WriterGroup.DataSetWriters.Single() .DataSet.DataSetSource.SubscriptionSettings.PublishingInterval.Value.TotalMilliseconds); }
public void PnPlcPubSubDataSetWriterGroupTest() { var pn = @" [ { ""DataSetWriterGroup"": ""testgroup"", ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""HeartbeatInterval"": 2 } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Equal("testgroup", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Group); }
public void PnPlcPubSubPublishedNodeDisplayName4Test() { var pn = @" [ { ""DataSetPublishingInterval"": ""1000"", ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""DataSetFieldId"": ""testdatasetfieldid1"", }, ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel() { DefaultPublishingInterval = TimeSpan.FromMilliseconds(2000) }); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Null(jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.Single().PublishedVariableDisplayName); }
public void PnPlcPubSubDataSetPublishingInterval4Test() { var pn = @" [ { ""DataSetPublishingInterval"": ""1000"", ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""OpcPublishingInterval"": 2000 }, { ""Id"": ""i=2259"", ""OpcPublishingInterval"": 3000 } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel() { DefaultPublishingInterval = TimeSpan.FromMilliseconds(2000) }); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Equal(1000, jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.SubscriptionSettings.PublishingInterval.Value.TotalMilliseconds); }
public void PnPlcPubSubDataSetFieldId2Test() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""DataSetFieldId"": ""testfieldid1"" }, { ""Id"": ""i=2259"", ""DataSetFieldId"": ""testfieldid2"" } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Equal(2, jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.Count); Assert.Equal("testfieldid1", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.First().Id); Assert.Equal("testfieldid2", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.Last().Id); }
public void PnPlcMultiJob2Test() { var pn = @" [ { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""NodeId"": { ""Identifier"": ""i=2258"", } }, { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""NodeId"": { ""Identifier"": ""ns=0;i=2261"" } }, { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""OpcPublishingInterval"": 1000, ""ExpandedNodeId"": ""nsu=http://microsoft.com/Opc/OpcPlc/;s=AlternatingBoolean"" } ] }, { ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""OpcPublishingInterval"": 2000, ""Id"": ""i=2262"" }, { ""OpcPublishingInterval"": 3000, ""Id"": ""ns=2;s=DipData"" }, { ""Id"": ""nsu=http://microsoft.com/Opc/OpcPlc/;s=NegativeTrendData"" } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer, new StandaloneIdentity()); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); // No jobs Assert.NotEmpty(jobs); Assert.Equal(4, jobs.Count()); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.All(jobs, j => Assert.Single(j.WriterGroup.DataSetWriters)); Assert.All(jobs, j => Assert.Equal("opc.tcp://localhost:50000", j.WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url)); }
public void PnPlcMultiJobBatching2Test() { var pn = new StringBuilder(@" [ { ""EndpointUrl"": ""opc.tcp://*****:*****@" { ""Id"": ""i=10000"" } ] } ] "); var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn.ToString()), new LegacyCliModel()).ToList(); // No jobs Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.Equal(10, jobs.Single().WriterGroup.DataSetWriters.Count()); Assert.All(jobs.Single().WriterGroup.DataSetWriters, dataSetWriter => Assert.Equal("opc.tcp://localhost:50000", dataSetWriter.DataSet.DataSetSource.Connection.Endpoint.Url)); Assert.Equal(jobs.Single().WriterGroup.DataSetWriters.Select(dataSetWriter => dataSetWriter.DataSet.DataSetSource.SubscriptionSettings?.PublishingInterval).ToList(), new TimeSpan?[] { TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000), null, null, null, null, null }); Assert.All(jobs.Single().WriterGroup.DataSetWriters, dataSetWriter => Assert.All( dataSetWriter.DataSet.DataSetSource.PublishedVariables.PublishedData, p => Assert.Null(p.SamplingInterval))); Assert.All(jobs.Single().WriterGroup.DataSetWriters, dataSetWriter => Assert.Equal(1000, dataSetWriter.DataSet.DataSetSource.PublishedVariables.PublishedData.Count)); }
public void PnPlcEmptyTest() { var pn = @" [ ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel()); // No jobs Assert.Empty(jobs); }
public void PnPlcPubSubFullTest() { var pn = @" [ { ""DataSetWriterGroup"": ""testgroup"", ""DataSetWriterId"": ""testwriterid"", ""DataSetPublishingInterval"": 1000, ""EndpointUrl"": ""opc.tcp://localhost:50000"", ""OpcNodes"": [ { ""Id"": ""i=2258"", ""DataSetFieldId"": ""testfieldid1"", ""OpcPublishingInterval"": 2000 }, { ""Id"": ""i=2259"", } ] } ] "; var converter = new PublishedNodesJobConverter(TraceLogger.Create(), _serializer); var jobs = converter.Read(new StringReader(pn), new LegacyCliModel() { DefaultPublishingInterval = TimeSpan.FromSeconds(5) }); Assert.NotEmpty(jobs); Assert.Single(jobs); Assert.Equal(2, jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.Count); Assert.Equal("testfieldid1", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.First().Id); Assert.Equal("i=2259", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.Last().Id); Assert.Equal("testgroup", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Group); Assert.Equal("testwriterid", jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Id); Assert.Equal(1000, jobs .Single().WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.SubscriptionSettings.PublishingInterval.Value.TotalMilliseconds); }
public void PnPlcMultiJobBatchingTest() { var pn = new StringBuilder(@" [ { ""EndpointUrl"": ""opc.tcp://*****:*****@" { ""Id"": ""i=10000"" } ] } ] "); var converter = new PublishedNodesJobConverter(TraceLogger.Create(), new StandaloneIdentity()); var jobs = converter.Read(new StringReader(pn.ToString()), new LegacyCliModel()).ToList(); // No jobs Assert.NotEmpty(jobs); Assert.Equal(10, jobs.Count()); Assert.All(jobs, j => Assert.Equal(MessagingMode.Samples, j.MessagingMode)); Assert.All(jobs, j => Assert.Null(j.ConnectionString)); Assert.All(jobs, j => Assert.Single(j.WriterGroup.DataSetWriters)); Assert.All(jobs, j => Assert.Equal("opc.tcp://localhost:50000", j.WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.Connection.Endpoint.Url)); Assert.All(jobs, j => Assert.Null( j.WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.SubscriptionSettings.PublishingInterval)); Assert.All(jobs, j => Assert.All( j.WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData, p => Assert.Null(p.SamplingInterval))); Assert.All(jobs, j => Assert.Equal(1000, j.WriterGroup.DataSetWriters .Single().DataSet.DataSetSource.PublishedVariables.PublishedData.Count)); }