示例#1
0
        public void SutDoesNotEqualAnonymousObject(object other)
        {
            var sut    = new FieldInfoElement(TypeWithFields.Field);
            var actual = sut.Equals(other);

            Assert.False(actual);
        }
        public void ToElementForFieldInfoReturnsTheCorrectElement()
        {
            FieldInfo        expected = typeof(TypeWithAllElements).GetFields().Single();
            FieldInfoElement actual   = expected.ToElement();

            Assert.Equal(new FieldInfoElement(expected), actual);
        }
        public override IReflectionVisitor <IEnumerable> Visit(
            FieldInfoElement fieldInfoElement)
        {
            var value = fieldInfoElement.FieldInfo.GetValue(this.target);

            return(new ValueCollectingVisitor(
                       this.target,
                       this.values.Concat(new[] { value }).ToArray()));
        }
 public override IReflectionVisitor <bool> Visit(
     FieldInfoElement fieldInfoElement)
 {
     if (_searchedType == fieldInfoElement.FieldInfo.FieldType)
     {
         value = true;
     }
     return(this);
 }
 public void SutIsReflectionElement()
 {
     // Fixture setup
     // Exercise system
     var sut = new FieldInfoElement(TypeWithFields.Field);
     // Verify outcome
     Assert.IsAssignableFrom<IReflectionElement>(sut);
     // Teardown
 }
示例#6
0
        public override IReflectionVisitor <Action <object> > Visit(
            FieldInfoElement fieldInfoElement)
        {
            Action <object> a =
                v => fieldInfoElement.FieldInfo.SetValue(this.target, v);

            return(new ValueWritingVisitor(
                       this.target,
                       this.actions.Concat(new[] { a }).ToArray()));
        }
        public void SutEqualsOtherIdenticalInstance()
        {
            var fi = TypeWithFields.Field;
            var sut = new FieldInfoElement(fi);
            var other = new FieldInfoElement(fi);

            var actual = sut.Equals(other);

            Assert.True(actual);
        }
 public void AcceptNullVisitorThrows()
 {
     // Fixture setup
     var sut = new FieldInfoElement(TypeWithFields.Field);
     // Exercise system
     // Verify outcome
     Assert.Throws<ArgumentNullException>(() =>
         sut.Accept((IReflectionVisitor<object>)null));
     // Teardown
 }
示例#9
0
        public void SutDoesNotEqualDifferentInstanceOfSameType()
        {
            var sut        = new FieldInfoElement(TypeWithFields.Field);
            var otherField = typeof(InterfaceMapping).GetField("InterfaceType");
            var other      = new FieldInfoElement(otherField);

            var actual = sut.Equals(other);

            Assert.False(actual);
        }
示例#10
0
        public void SutIsReflectionElement()
        {
            // Fixture setup
            // Exercise system
            var sut = new FieldInfoElement(TypeWithFields.Field);

            // Verify outcome
            Assert.IsAssignableFrom <IReflectionElement>(sut);
            // Teardown
        }
示例#11
0
        public void SutEqualsOtherIdenticalInstance()
        {
            var fi    = TypeWithFields.Field;
            var sut   = new FieldInfoElement(fi);
            var other = new FieldInfoElement(fi);

            var actual = sut.Equals(other);

            Assert.True(actual);
        }
示例#12
0
        public override IReflectionVisitor <IEnumerable> Visit(
            FieldInfoElement fieldInfoElement)
        {
            var v = new SemanticComparisonValue(
                fieldInfoElement.FieldInfo.Name,
                fieldInfoElement.FieldInfo.FieldType);

            return(new SemanticReflectionVisitor(
                       this.values.Concat(new[] { v }).ToArray()));
        }
        public void GetHashCodeReturnsCorrectResult()
        {
            var fi = TypeWithField.Field;
            var sut = new FieldInfoElement(fi);

            var actual = sut.GetHashCode();

            var expected = fi.GetHashCode();
            Assert.Equal(expected, actual);
        }
示例#14
0
 public void FieldInfoIsCorrect()
 {
     // Fixture setup
     var expected = TypeWithFields.Field;
     var sut = new FieldInfoElement(expected);
     // Exercise system
     FieldInfo actual = sut.FieldInfo;
     // Verify outcome
     Assert.Equal(expected, actual);
     // Teardown
 }
示例#15
0
        public override IReflectionVisitor <bool> Visit(FieldInfoElement fieldInfoElement)
        {
            if (object.ReferenceEquals(fieldInfoElement, null))
            {
                throw new ArgumentNullException(nameof(fieldInfoElement));
            }

            var fi = fieldInfoElement.FieldInfo;

            return(this.Proceed(expected, this.value || this.IsMatch(fi.FieldType, fi.Name)));
        }
示例#16
0
        public void GetHashCodeReturnsCorrectResult()
        {
            var fi  = TypeWithFields.Field;
            var sut = new FieldInfoElement(fi);

            var actual = sut.GetHashCode();

            var expected = fi.GetHashCode();

            Assert.Equal(expected, actual);
        }
示例#17
0
        public void AcceptNullVisitorThrows()
        {
            // Fixture setup
            var sut = new FieldInfoElement(TypeWithFields.Field);

            // Exercise system
            // Verify outcome
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Accept((IReflectionVisitor <object>)null));
            // Teardown
        }
示例#18
0
        public void VisitFieldInfoElementReturnsCorrectResult()
        {
            var sut = new ReflectionVisitor();
            var fieldInfoElement =
                new FieldInfoElement(new Dummy().Field);

            var actual = sut.Visit(fieldInfoElement);

            var expected = sut;

            Assert.Same(expected, actual);
        }
示例#19
0
        public void FieldInfoIsCorrect()
        {
            // Fixture setup
            var expected = TypeWithFields.Field;
            var sut      = new FieldInfoElement(expected);
            // Exercise system
            FieldInfo actual = sut.FieldInfo;

            // Verify outcome
            Assert.Equal(expected, actual);
            // Teardown
        }
示例#20
0
            public override IReflectionVisitor <IEnumerable <NameAndType> > Visit(
                FieldInfoElement fieldInfoElement)
            {
                if (fieldInfoElement == null)
                {
                    throw new ArgumentNullException("fieldInfoElement");
                }
                var v = new NameAndType(
                    fieldInfoElement.FieldInfo.Name,
                    fieldInfoElement.FieldInfo.FieldType);

                return(new NameAndTypeCollectingVisitor(
                           this.values.Concat(new[] { v }).ToArray()));
            }
示例#21
0
        public void AcceptCallsTheCorrectVisitorMethodAndReturnsTheCorrectInstance()
        {
            // Fixture setup
            var expected = new DelegatingReflectionVisitor<int>();
            var sut = new FieldInfoElement(TypeWithFields.Field);
            var visitor = new DelegatingReflectionVisitor<int>
            {
                OnVisitFieldInfoElement = e =>
                    e == sut ? expected : new DelegatingReflectionVisitor<int>()
            };

            // Exercise system
            var actual = sut.Accept(visitor);
            // Verify outcome
            Assert.Same(expected, actual);
            // Teardown
        }
示例#22
0
        public void AcceptCallsTheCorrectVisitorMethodAndReturnsTheCorrectInstance()
        {
            // Fixture setup
            var expected = new DelegatingReflectionVisitor <int>();
            var sut      = new FieldInfoElement(TypeWithFields.Field);
            var visitor  = new DelegatingReflectionVisitor <int>
            {
                OnVisitFieldInfoElement = e =>
                                          e == sut ? expected : new DelegatingReflectionVisitor <int>()
            };

            // Exercise system
            var actual = sut.Accept(visitor);

            // Verify outcome
            Assert.Same(expected, actual);
            // Teardown
        }
 public virtual IReflectionVisitor <T> Visit(FieldInfoElement fieldInfoElement)
 {
     return(OnVisitFieldInfoElement(fieldInfoElement));
 }
示例#24
0
        public void SutDoesNotEqualDifferentInstanceOfSameType()
        {
            var sut = new FieldInfoElement(TypeWithFields.Field);
            var otherField = typeof(InterfaceMapping).GetField("InterfaceType");
            var other = new FieldInfoElement(otherField);

            var actual = sut.Equals(other);

            Assert.False(actual);
        }
示例#25
0
 public void SutDoesNotEqualAnonymousObject(object other)
 {
     var sut = new FieldInfoElement(TypeWithFields.Field);
     var actual = sut.Equals(other);
     Assert.False(actual);
 }