public void GetObjectPropertiesTypesArray_ShouldExtractOnlyPublicPropertiesFromArgumentArray() { MyClassWithPrivateProperty cl = new MyClassWithPrivateProperty(); Type[] arrayOfTypes = ModbusDataMappingHelper.GetObjectModbusPropertiesTypeArray(cl); Assert.AreEqual(arrayOfTypes.Length, 3); }
public void SetObjectPropertiesValuesFromArray_ShouldSetOnlyPublicPropertiesToValuesFromArrayAndReturnTrueOnSuccess() { MyClassWithPrivateProperty cl = new MyClassWithPrivateProperty(); object tmp = (object)cl; object[] arrayValues = { (Int32)(-123456), (Single)123.456f, (Double)1234567890.0 }; bool ret = ModbusDataMappingHelper.SetObjectPropertiesValuesFromArray(ref tmp, arrayValues); Assert.AreEqual(true, ret); Assert.AreEqual(arrayValues[0], cl.B); Assert.AreEqual(arrayValues[1], cl.C); Assert.AreEqual(arrayValues[2], cl.D); }
public void SizeOfPublicPropertiesOfClass_ShouldReturnValidSize() { MyClassWithPrivateProperty cl = new MyClassWithPrivateProperty(); UInt32 size = SizeofHelper.SizeOfPublicPropertiesWithModbusAttribute(cl); Assert.AreEqual(16, size); MyClassWithNonModbusPropertyAttributePublicProperty cl2 = new MyClassWithNonModbusPropertyAttributePublicProperty(); size = SizeofHelper.SizeOfPublicPropertiesWithModbusAttribute(cl2); Assert.AreEqual(2, size); MyClassWithReadableModbusPropertyAttribute cl3 = new MyClassWithReadableModbusPropertyAttribute(); size = SizeofHelper.SizeOfPublicPropertiesWithModbusAttribute(cl3,ModbusRegisterAccessType.AccessReadWrite); Assert.AreEqual(2, size); size = SizeofHelper.SizeOfPublicPropertiesWithModbusAttribute(cl3, ModbusRegisterAccessType.AccessRead); Assert.AreEqual(6, size); }