public void InjectionRule_TwoTypesRegistered_ResolvedWithTypeFromRule()
        {
            // Arrange
            var serviceStub1 = new ServiceStub();
            var serviceStub2 = new ServiceStub();

            this.registrationContext.Register <IServiceStub1>().AsSingleton(serviceStub1);
            this.registrationContext.Register <IServiceStub2>().AsSingleton(serviceStub2);

            var objectInfo = new ContainerInstance(typeof(ServiceWithStubBaseInjection), this.container);

            objectInfo.As(typeof(ServiceWithStubBaseInjection));

            // Act
            objectInfo.InjectionRule(typeof(IServiceStubBase), typeof(IServiceStub2));
            var stub = (ServiceWithStubBaseInjection)objectInfo.Resolve();

            // Assert
            Assert.AreEqual(serviceStub2, stub.Child);
        }
        public void InjectionRule_TwoTypesRegistered_ResolvedWithTypeFromRule()
        {
            // Arrange
            var serviceStub1 = new ServiceStub();
            var serviceStub2 = new ServiceStub();
            this.registrationContext.Register<IServiceStub1>().AsSingleton(serviceStub1);
            this.registrationContext.Register<IServiceStub2>().AsSingleton(serviceStub2);

            var objectInfo = new ContainerInstance(typeof(ServiceWithStubBaseInjection), this.container);
            objectInfo.As(typeof(ServiceWithStubBaseInjection));

            // Act
            objectInfo.InjectionRule(typeof(IServiceStubBase), typeof(IServiceStub2));
            var stub = (ServiceWithStubBaseInjection)objectInfo.Resolve();

            // Assert
            Assert.AreEqual(serviceStub2, stub.Child);
        }