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

            object svc = services.AddNew(typeof(MockDataObject), typeof(IMockDataObject));

            Assert.IsNotNull(svc);
            Assert.IsNull(services.Get(typeof(MockDataObject)));
            Assert.AreSame(svc, services.Get(typeof(IMockDataObject)));
        }
        public void CanCreateServiceRegisteredAsOtherType_Generic()
        {
            TestableServiceCollection services = CreateServiceCollection();

            MockDataObject svc = services.AddNew <MockDataObject, IMockDataObject>();

            Assert.IsNotNull(svc);
            Assert.IsNull(services.Get <MockDataObject>());
            Assert.AreSame(svc, services.Get <IMockDataObject>());
        }
        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 CanRemoveService_Generic()
        {
            TestableServiceCollection services = CreateServiceCollection();

            services.Add <MockDataObject>(new MockDataObject());
            services.Remove <MockDataObject>();

            Assert.IsNull(services.Get <MockDataObject>());
        }
        public void CanAddDemandAddServiceAndRetrieveService()
        {
            TestableServiceCollection services = CreateServiceCollection();

            services.AddOnDemand(typeof(MockDemandService));

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

            services.Add(typeof(MockDataObject), new MockDataObject());
            services.Remove(typeof(MockDataObject));

            Assert.IsNull(services.Get(typeof(MockDataObject)));
        }
        public void CanAskForBuilderToEnsureServiceExists()
        {
            TestableServiceCollection services = CreateServiceCollection();
            MockDataObject            svc      = new MockDataObject();

            services.Add(typeof(MockDataObject), svc);
            MockDataObject result = (MockDataObject)services.Get(typeof(MockDataObject), true);

            Assert.AreSame(svc, result);
        }
        public void DemandAddedServiceFromParentGetsReplacedInParentEvenWhenAskedForFromChild_Generic()
        {
            TestableServiceCollection parent = CreateServiceCollection();
            TestableServiceCollection child  = new TestableServiceCollection(parent);

            parent.AddOnDemand <MockDemandService>();
            MockDemandService svc = child.Get <MockDemandService>();

            Assert.AreSame(svc, parent.Locator.Get(new DependencyResolutionLocatorKey(typeof(MockDemandService), null)));
        }
Пример #9
0
        public void AddingServiceToWorkItemAllowsRetrievalOfService_Generic()
        {
            TestableServiceCollection services = CreateServiceCollection();
            MockDataObject            svc      = new MockDataObject();

            services.Add(typeof(MockDataObject), svc);
            MockDataObject result = services.Get <MockDataObject>();

            Assert.AreSame(svc, result);
        }
        public void AddingServiceToContainerAllowsRetrievalOfService()
        {
            TestableServiceCollection services = CreateServiceCollection();
            MockDataObject            svc      = new MockDataObject();

            services.Add(typeof(MockDataObject), svc);
            MockDataObject result = (MockDataObject)services.Get(typeof(MockDataObject));

            Assert.AreSame(svc, result);
        }
        public void CanCreateServiceInChildWhenServiceExistsInParent()
        {
            TestableServiceCollection services      = CreateServiceCollection();
            TestableServiceCollection childServices = new TestableServiceCollection(services);

            object parentService = services.AddNew(typeof(MockDataObject));
            object childService  = childServices.AddNew(typeof(MockDataObject));

            Assert.AreSame(parentService, services.Get(typeof(MockDataObject)));
            Assert.AreSame(childService, childServices.Get(typeof(MockDataObject)));
        }
        public void CanCreateServiceInChildWhenServiceExistsInParent_Generic()
        {
            TestableServiceCollection services      = CreateServiceCollection();
            TestableServiceCollection childServices = new TestableServiceCollection(services);

            MockDataObject parentService = services.AddNew <MockDataObject>();
            MockDataObject childService  = childServices.AddNew <MockDataObject>();

            Assert.AreSame(parentService, services.Get <MockDataObject>());
            Assert.AreSame(childService, childServices.Get <MockDataObject>());
        }
        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);
        }
        public void DemandAddedServiceEventsAreFiredAtTheRightTime()
        {
            bool AddedEventFired               = false;
            bool RemovedEventFired             = false;
            TestableServiceCollection services = CreateServiceCollection();

            services.Added   += delegate { AddedEventFired = true; };
            services.Removed += delegate { RemovedEventFired = true; };

            services.AddOnDemand <object>();
            Assert.IsFalse(AddedEventFired);
            Assert.IsFalse(RemovedEventFired);

            services.Get <object>();
            Assert.IsTrue(AddedEventFired);
            Assert.IsFalse(RemovedEventFired);

            services.Remove <object>();
            Assert.IsTrue(RemovedEventFired);
        }
        public void DemandAddedServiceFromParentGetsReplacedInParentEvenWhenAskedForFromChild_Generic()
        {
            TestableServiceCollection parent = CreateServiceCollection();
            TestableServiceCollection child = new TestableServiceCollection(parent);

            parent.AddOnDemand<MockDemandService>();
            MockDemandService svc = child.Get<MockDemandService>();

            Assert.AreSame(svc, parent.Locator.Get(new DependencyResolutionLocatorKey(typeof (MockDemandService), null)));
        }
        public void CanCreateServiceInChildWhenServiceExistsInParent()
        {
            TestableServiceCollection services = CreateServiceCollection();
            TestableServiceCollection childServices = new TestableServiceCollection(services);

            object parentService = services.AddNew(typeof (MockDataObject));
            object childService = childServices.AddNew(typeof (MockDataObject));

            Assert.AreSame(parentService, services.Get(typeof (MockDataObject)));
            Assert.AreSame(childService, childServices.Get(typeof (MockDataObject)));
        }
        public void CanCreateServiceInChildWhenServiceExistsInParent_Generic()
        {
            TestableServiceCollection services = CreateServiceCollection();
            TestableServiceCollection childServices = new TestableServiceCollection(services);

            MockDataObject parentService = services.AddNew<MockDataObject>();
            MockDataObject childService = childServices.AddNew<MockDataObject>();

            Assert.AreSame(parentService, services.Get<MockDataObject>());
            Assert.AreSame(childService, childServices.Get<MockDataObject>());
        }
        public void GetServiceCanThrowOnMissingService()
        {
            TestableServiceCollection services = CreateServiceCollection();

            services.Get(typeof(MockDataObject), true);
        }
        public void GetServiceCanReturnNullWhenServiceDoesntExist_Generic()
        {
            TestableServiceCollection services = CreateServiceCollection();

            Assert.IsNull(services.Get <MockDataObject>());
        }
        public void GetServiceCanReturnNullWhenServiceDoesntExist()
        {
            TestableServiceCollection services = CreateServiceCollection();

            Assert.IsNull(services.Get(typeof(MockDataObject)));
        }
        public void GetServiceCanThrowOnMissingService_Generic()
        {
            TestableServiceCollection services = CreateServiceCollection();

            services.Get <MockDataObject>(true);
        }