public void DelegateFactory_CreatesInstances()
        {
            var registeredDependency = new RegisteredDependency {
                Value = "registered"
            };
            var unregisteredDependency = new UnregisteredDependency {
                Value = "unregistered"
            };
            var expectedInstance = new Foo(registeredDependency, unregisteredDependency);
            var providerMock     = new Mock <IServiceProvider>();
            var provider         = providerMock.Object;

            var timesCalled = 0;

            IFoo FactoryFunc(IServiceProvider prov, UnregisteredDependency dep)
            {
                timesCalled++;
                Assert.Same(provider, prov);
                Assert.Same(unregisteredDependency, dep);
                return(expectedInstance);
            }

            var factory  = new DelegateFactory <IFoo, UnregisteredDependency>(provider, FactoryFunc);
            var instance = factory.CreateService(unregisteredDependency);

            Assert.Same(expectedInstance, instance);
            Assert.Equal(1, timesCalled);
            providerMock.VerifyNoOtherCalls();
        }