public void GivenStructAsSting_Set_SetsValueOnTargetObject() { var targetObject = new TestTypeStruct(); var uut = new CompositePropertySetter(); var integerToSet = "12357".AsSpan(); var stringToSet = "message".AsSpan(); var doubleToSet = "123.456".AsSpan(); var mappingDetailsInt = new TagMapLeaf(targetObject.GetType().GetProperty(nameof(targetObject.Tag101)), new IntegerSetter()); var mappingDetailsString = new TagMapLeaf(targetObject.GetType().GetProperty(nameof(targetObject.Tag100)), new StringSetter()); var mappingDetailsDouble = new TagMapLeaf(targetObject.GetType().GetProperty(nameof(targetObject.Tag102)), new DoubleSetter()); var messageContext = new FixMessageContext(); uut.SetTarget(integerToSet, mappingDetailsInt, messageContext, ref targetObject); uut.SetTarget(stringToSet, mappingDetailsString, messageContext, ref targetObject); uut.SetTarget(doubleToSet, mappingDetailsDouble, messageContext, ref targetObject); Assert.Equal(12357, targetObject.Tag101); Assert.Equal("message", targetObject.Tag100); Assert.Equal(123.456, targetObject.Tag102); }
public void GivenStructAndEnumerableAsString_Set_SetsValueOnTargetObject() { var targetObject = new TestTypeStruct() { Tag104 = new string[2] }; var uut = new CompositePropertySetter(); var valueToSet = "message"; var mappingDetails = new TagMapLeaf(targetObject.GetType().GetProperty(nameof(targetObject.Tag104)), new StringSetter()) { IsEnumerable = true, RepeatingTagNumber = 103, InnerType = typeof(string) }; var messageContext = new FixMessageContext(); uut.SetTarget(valueToSet.AsSpan(), mappingDetails, messageContext, ref targetObject); uut.SetTarget(valueToSet.AsSpan(), mappingDetails, messageContext, ref targetObject); Assert.Equal(valueToSet, targetObject.Tag104.First()); Assert.Equal(valueToSet, targetObject.Tag104.Last()); }