public void VisitPropertyElementWithNoInitialValuesProducesTheCorrectValue() { // Arrange var reflect = new Properties <TypeWithPublicIntValues>(); var target = new TypeWithPublicIntValues(); var expected = new object[] { target.Property2 }; var sut = new ValueCollectingVisitor(target); var property = reflect.Select(x => x.Property2).ToElement(); // Act var result = sut.Visit(property); // Assert Assert.Equal(expected, result.Value); }
public void VisitFieldElementWithNoInitialValuesProducesTheCorrectValue() { // Arrange var reflect = new Fields <TypeWithPublicIntValues>(); var target = new TypeWithPublicIntValues(); var expected = new object[] { target.Field2 }; var sut = new ValueCollectingVisitor(target); var field = reflect.Select(x => x.Field2).ToElement(); // Act var result = sut.Visit(field); // Assert Assert.Equal(expected, result.Value); }
public void AcceptPropertyElementsWithInitialValuesProducesTheCorrectValues() { // Arrange var initialVisitorValues = new object[] { 9, 8, 7 }; var target = new TypeWithPublicIntValues(); var expected = initialVisitorValues .Concat(new object[] { target.Property1, target.Property2, target.Property3 }); var reflect = new Properties <TypeWithPublicIntValues>(); var property1 = reflect.Select(x => x.Property1); var property2 = reflect.Select(x => x.Property2); var property3 = reflect.Select(x => x.Property3); var propertyElements = new[] { property1, property2, property3 } .Select(e => e.ToElement()).Cast <IReflectionElement>(); var sut = new ValueCollectingVisitor(target, initialVisitorValues); // Act var result = propertyElements.Accept(sut); // Assert Assert.Equal(expected, result.Value); }
public void AcceptFieldElementsWithInitialValuesProducesTheCorrectValues() { // Arrange var initialVisitorValues = new object[] { 9, 8, 7 }; var target = new TypeWithPublicIntValues(); var expected = initialVisitorValues .Concat(new object[] { target.Field1, target.Field2, target.Field3 }); var reflect = new Fields <TypeWithPublicIntValues>(); var field1 = reflect.Select(x => x.Field1); var field2 = reflect.Select(x => x.Field2); var field3 = reflect.Select(x => x.Field3); var fieldElements = new[] { field1, field2, field3 } .Select(e => e.ToElement()).Cast <IReflectionElement>(); var sut = new ValueCollectingVisitor(target, initialVisitorValues); // Act var result = fieldElements.Accept(sut); // Assert Assert.Equal(expected, result.Value); }