public void ValidateWritePublishedDataItemNullNodeId() { //Arrange UaPubSubDataStore dataStore = new UaPubSubDataStore(); //Assert Assert.Throws(typeof(ArgumentException), () => dataStore.WritePublishedDataItem(null)); }
public void ValidateWritePublishedDataItemInvalidAttribute() { //Arrange UaPubSubDataStore dataStore = new UaPubSubDataStore(); //Assert Assert.Throws(typeof(ArgumentException), () => dataStore.WritePublishedDataItem(new NodeId("ns=0;i=2253"), (uint)Attributes.AccessLevelEx + 1)); }
public void ValidateWritePublishedDataItem( [Values(true, (byte)1, (ushort)2, (short)3, (uint)4, (int)5, (ulong)6, (long)7, (double)8, (float)9, "10")] object value) { //Arrange UaPubSubDataStore dataStore = new UaPubSubDataStore(); NodeId nodeId = new NodeId("ns=1;i=1"); //Act dataStore.WritePublishedDataItem(nodeId, Attributes.Value, new DataValue(new Variant(value))); DataValue readDataValue = dataStore.ReadPublishedDataItem(nodeId, Attributes.Value); //Assert Assert.IsNotNull(readDataValue, "Returned DataValue for written nodeId and attribute is null"); Assert.AreEqual(readDataValue.Value, value, "Read after write returned different value"); }
public void ValidateCollectDataFromDataStore() { //Arrange UaPubSubDataStore dataStore = new UaPubSubDataStore(); dataStore.WritePublishedDataItem(new NodeId("BoolToggle", NamespaceIndex), 0, new DataValue(new Variant(false))); dataStore.WritePublishedDataItem(new NodeId("Int32", NamespaceIndex), 0, new DataValue(new Variant(1))); dataStore.WritePublishedDataItem(new NodeId("Int32Fast", NamespaceIndex), 0, new DataValue(new Variant(2))); dataStore.WritePublishedDataItem(new NodeId("DateTime", NamespaceIndex), 0, new DataValue(new Variant(DateTime.MaxValue))); DataCollector dataCollector = new DataCollector(dataStore); #region set up published data set that collects data from extension fields PublishedDataSetDataType publishedDataSetSimple = new PublishedDataSetDataType(); publishedDataSetSimple.Name = "Simple"; // Define publishedDataSetSimple.DataSetMetaData publishedDataSetSimple.DataSetMetaData = new DataSetMetaDataType(); publishedDataSetSimple.DataSetMetaData.DataSetClassId = new Uuid(Guid.Empty); publishedDataSetSimple.DataSetMetaData.Name = publishedDataSetSimple.Name; publishedDataSetSimple.DataSetMetaData.Fields = new FieldMetaDataCollection() { new FieldMetaData() { Name = "BoolToggle", DataSetFieldId = new Uuid(Guid.NewGuid()), DataType = DataTypeIds.Boolean, ValueRank = ValueRanks.Scalar }, new FieldMetaData() { Name = "Int32", DataSetFieldId = new Uuid(Guid.NewGuid()), DataType = DataTypeIds.Int32, ValueRank = ValueRanks.Scalar }, new FieldMetaData() { Name = "Int32Fast", DataSetFieldId = new Uuid(Guid.NewGuid()), DataType = DataTypeIds.Int32, ValueRank = ValueRanks.Scalar }, new FieldMetaData() { Name = "DateTime", DataSetFieldId = new Uuid(Guid.NewGuid()), DataType = DataTypeIds.DateTime, ValueRank = ValueRanks.Scalar } }; PublishedDataItemsDataType publishedDataItems = new PublishedDataItemsDataType(); publishedDataItems.PublishedData = new PublishedVariableDataTypeCollection(); //create PublishedData based on metadata names foreach (var field in publishedDataSetSimple.DataSetMetaData.Fields) { publishedDataItems.PublishedData.Add( new PublishedVariableDataType() { PublishedVariable = new NodeId(field.Name, NamespaceIndex), AttributeId = Attributes.Value, }); } publishedDataSetSimple.DataSetSource = new ExtensionObject(publishedDataItems); #endregion //Act dataCollector.AddPublishedDataSet(publishedDataSetSimple); DataSet collectedDataSet = dataCollector.CollectData(publishedDataSetSimple.Name); //Assert Assert.IsNotNull(publishedDataItems, "The m_firstPublishedDataSet.DataSetSource is not PublishedDataItemsDataType."); Assert.IsNotNull(collectedDataSet, "collectedDataSet is null."); Assert.IsNotNull(collectedDataSet.Fields, "collectedDataSet.Fields is null."); Assert.AreEqual(collectedDataSet.Fields.Length, publishedDataItems.PublishedData.Count, "collectedDataSet and published data fields count do not match."); // validate collected values Assert.AreEqual(collectedDataSet.Fields[0].Value.Value, false, "collectedDataSet.Fields[0].Value.Value does not match."); Assert.AreEqual(collectedDataSet.Fields[1].Value.Value, (int)1, "collectedDataSet.Fields[1].Value.Value does not match."); Assert.AreEqual(collectedDataSet.Fields[2].Value.Value, (int)2, "collectedDataSet.Fields[2].Value.Value does not match."); Assert.AreEqual(collectedDataSet.Fields[3].Value.Value, DateTime.MaxValue, "collectedDataSet.Fields[3].Value.Value does not match."); }