示例#1
0
        public void SutIsConstructorQuery()
        {
            // Fixture setup
            // Exercise system
            var sut = new CompositeConstructorQuery();

            // Verify outcome
            Assert.IsAssignableFrom <IConstructorQuery>(sut);
            // Teardown
        }
示例#2
0
        public void QueriesWillNotBeNullWhenSutIsCreatedWithDefaultConstructor()
        {
            // Fixture setup
            var sut = new CompositeConstructorQuery();
            // Exercise system
            IEnumerable <IConstructorQuery> result = sut.Queries;

            // Verify outcome
            Assert.NotNull(result);
            // Teardown
        }
示例#3
0
        public void QueriesWillMatchParamsArray()
        {
            // Fixture setup
            var expectedQueries = new IConstructorQuery[]
            {
                new DelegatingConstructorQuery(),
                new DelegatingConstructorQuery(),
                new DelegatingConstructorQuery()
            };
            var sut = new CompositeConstructorQuery(expectedQueries);
            // Exercise system
            var result = sut.Queries;

            // Verify outcome
            Assert.True(expectedQueries.SequenceEqual(result));
            // Teardown
        }
示例#4
0
        public void SelectWillReturnResultsInCorrectSequence(Type type)
        {
            // Fixture setup
            IEnumerable <IMethod> modestConstructors = from ci in type.GetConstructors()
                                                       let parameters = ci.GetParameters()
                                                                        orderby parameters.Length ascending
                                                                        select new ConstructorMethod(ci) as IMethod;

            IEnumerable <IMethod> greedyConstructors = from ci in type.GetConstructors()
                                                       let parameters = ci.GetParameters()
                                                                        orderby parameters.Length descending
                                                                        select new ConstructorMethod(ci) as IMethod;

            var expectedConstructors = new List <IMethod>();

            expectedConstructors.AddRange(modestConstructors);
            expectedConstructors.AddRange(greedyConstructors);

            var queries = new IConstructorQuery[]
            {
                new DelegatingConstructorQuery {
                    OnSelectConstructors = t => modestConstructors
                },
                new DelegatingConstructorQuery {
                    OnSelectConstructors = t => greedyConstructors
                },
                new DelegatingConstructorQuery()
            };

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

            // Verify outcome
            Assert.True(expectedConstructors.SequenceEqual(result));
            // Teardown
        }