Пример #1
0
        public void ShouldSelectConstructorWithMostResolvableParameters()
        {
            var targetType = typeof(Vehicle);
            var constructorImplementations = (from c in typeof(Vehicle).GetConstructors()
                                              select new ConstructorCall(c) as IImplementation <ConstructorInfo>).AsEnumerable();

            IImplementation <ConstructorInfo> expectedImplementation = GetExpectedConstructorImplementation(constructorImplementations);

            var map = new Mock <IDependencyContainer>();

            map.Expect(m => m.Contains(It.IsAny <Dependency>())).Returns(true);
            map.Expect(m => m.Dependencies).Returns(new IDependency[] {});

            var constructorResolver = new ConstructorResolver();
            IImplementation <ConstructorInfo> result = constructorResolver.ResolveFrom(targetType, map.Object);

            Assert.AreEqual(expectedImplementation.Target, result.Target);

            map.VerifyAll();
        }