Exemplo n.º 1
0
        public void SelectConstructorsFromNullTypeThrows()
        {
            // Fixture setup
            var sut = new EnumerableFavoringConstructorQuery();

            // Exercise system and verify outcome
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.SelectConstructors(null));
            // Teardown
        }
Exemplo n.º 2
0
        public void SelectConstructorsFromTypeReturnsFirstMethodThatTakesEnumerableAsArgument(Type type)
        {
            var sut = new EnumerableFavoringConstructorQuery();
            // Exercise system
            var result = sut.SelectConstructors(type);
            // Verify outcome
            var genericParameterType = type.GetGenericArguments().Single();

            Assert.True(result.First().Parameters.Any(p => typeof(IEnumerable <>).MakeGenericType(genericParameterType).IsAssignableFrom(p.ParameterType)));
            // Teardown
        }
Exemplo n.º 3
0
        public void SelectFromTypeWithNoPublicConstructorReturnsCorrectResult()
        {
            // Fixture setup
            var sut = new EnumerableFavoringConstructorQuery();
            var typeWithNoPublicConstructors = typeof(AbstractType);
            // Exercise system
            var result = sut.SelectConstructors(typeWithNoPublicConstructors);

            // Verify outcome
            Assert.False(result.Any());
            // Teardown
        }
Exemplo n.º 4
0
        public void SelectFromTypeReturnsAllAppropriateResults(Type type)
        {
            // Fixture setup
            var expectedConstructors = from ci in type.GetConstructors()
                                       let parameters = ci.GetParameters()
                                                        select new ConstructorMethod(ci) as IMethod;

            var sut = new EnumerableFavoringConstructorQuery();
            // Exercise system
            var result = sut.SelectConstructors(type);

            // Verify outcome
            Assert.True(expectedConstructors.All(m => result.Any(m.Equals)));
            // Teardown
        }