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(); }