public void CanAddDemandAddServiceOfOneTypeAndRegisterAsOtherType()
        {
            TestableServiceCollection services = CreateServiceCollection();

            services.AddOnDemand(typeof(MockDemandService), typeof(IMockDemandService));

            Assert.IsFalse(services.Contains <MockDemandService>());
            Assert.IsTrue(services.Contains <IMockDemandService>());
            Assert.IsNull(services.Get <MockDemandService>());
            Assert.IsNotNull(services.Get <IMockDemandService>());
        }
        public void CanAddDemandAddServiceAndRetrieveService()
        {
            TestableServiceCollection services = CreateServiceCollection();

            services.AddOnDemand(typeof(MockDemandService));

            Assert.IsTrue(services.Contains <MockDemandService>());
            Assert.IsNotNull(services.Get <MockDemandService>());
        }
        public void CanAddDemandAddServiceAndItWontBeCreatedUntilAskedFor()
        {
            TestableServiceCollection services = CreateServiceCollection();

            MockDemandService.WasCreated = false;

            services.AddOnDemand(typeof(MockDemandService));
            Assert.IsFalse(MockDemandService.WasCreated);
            Assert.IsTrue(services.Contains <MockDemandService>());
            Assert.IsFalse(MockDemandService.WasCreated);

            MockDemandService svc = services.Get <MockDemandService>();

            Assert.IsTrue(MockDemandService.WasCreated);
        }