public void ValueIsCorrectWhenInitializedWithMemberKinds() { var memberKinds = new[] { MemberKinds.InstanceProperty, MemberKinds.StaticField }; var sut = new MemberKindCollector(memberKinds); var actual = sut.Value; Assert.Equal(memberKinds, actual); }
public void VisitFieldInfoElementCollectsCorrectMemberKind() { var sut = new MemberKindCollector(); var constructorInfoElement = typeof(ClassWithMembers).GetConstructors().First().ToElement(); var fieldInfoElement = new Fields<ClassWithMembers>().Select(x => x.PublicField).ToElement(); var actual = sut.Visit(constructorInfoElement).Visit(fieldInfoElement); Assert.NotSame(sut, actual); Assert.Equal(new[] { MemberKinds.InstanceConstructor, MemberKinds.InstanceField }, actual.Value); }
public void VisitEventInfoElementCollectsCorrectMemberKind() { var sut = new MemberKindCollector(); var fieldInfoElement = new Fields<ClassWithMembers>().Select(x => x.PublicField).ToElement(); var eventInfoElement = typeof(ClassWithMembers) .GetEvents(BindingFlags.Instance | BindingFlags.Public) .First().ToElement(); var actual = sut.Visit(fieldInfoElement).Visit(eventInfoElement); Assert.NotSame(sut, actual); Assert.Equal(new[] { MemberKinds.InstanceField, MemberKinds.InstanceEvent }, actual.Value); }
public void VisitGetPropertyInfoElementCollectsCorrectMemberKind() { var sut = new MemberKindCollector(); var fieldInfoElement = new Fields<ClassWithMembers>().Select(x => x.PublicField).ToElement(); var getPropertyInfoElement = typeof(ClassWithMembers) .GetProperties(BindingFlags.Instance | BindingFlags.Public) .First(p => p.GetSetMethod(true) == null && p.GetGetMethod(true) != null) .ToElement(); var actual = sut.Visit(fieldInfoElement).Visit(getPropertyInfoElement); Assert.NotSame(sut, actual); Assert.Equal(new[] { MemberKinds.InstanceField, MemberKinds.InstanceGetProperty }, actual.Value); }
public void VisitStaticSetPropertyInfoElementCollectsCorrectMemberKind() { var sut = new MemberKindCollector(new[] { MemberKinds.InstanceField }); var setPropertyInfoElement = typeof(ClassWithMembers) .GetProperties(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic) .First(p => p.GetGetMethod(true) == null && p.GetSetMethod(true) != null) .ToElement(); var actual = sut.Visit(setPropertyInfoElement); Assert.NotSame(sut, actual); Assert.Equal(new[] { MemberKinds.InstanceField, MemberKinds.StaticSetProperty }, actual.Value); }
public void VisitStaticMethodInfoElementCollectsCorrectMemberKind() { var sut = new MemberKindCollector(new[] { MemberKinds.InstanceField }); var methodInfoElement = typeof(ClassWithMembers) .GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic) .First().ToElement(); var actual = sut.Visit(methodInfoElement); Assert.NotSame(sut, actual); Assert.Equal(new[] { MemberKinds.InstanceField, MemberKinds.StaticMethod }, actual.Value); }
public void ValueIsCorrect() { var sut = new MemberKindCollector(); var actual = sut.Value; Assert.Empty(actual); }
public void VisitStaticConstructorInfoElementCollectsCorrectMemberKind() { var sut = new MemberKindCollector(new[] { MemberKinds.StaticEvent }); var constructorInfoElement = typeof(ClassWithMembers) .GetConstructors(BindingFlags.Static | BindingFlags.NonPublic) .First().ToElement(); var actual = sut.Visit(constructorInfoElement); Assert.NotSame(sut, actual); Assert.Equal(new[] { MemberKinds.StaticEvent, MemberKinds.StaticConstructor }, actual.Value); }
public void VisitNullPropertyInfoElementThrows() { var sut = new MemberKindCollector(); Assert.Throws<ArgumentNullException>(() => sut.Visit((PropertyInfoElement)null)); }
public void SutIsReflectionVisitor() { var sut = new MemberKindCollector(); Assert.IsAssignableFrom<IReflectionVisitor<IEnumerable<MemberKinds>>>(sut); }