Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }