Exemple #1
0
        public void TestNullInstance()
        {
            var container = new NDOContainer();

            container.RegisterInstance <ICar>(null);
            Assert.IsNull(container.Resolve <ICar>());
        }
Exemple #2
0
        public void IsRegisteredWorks()
        {
            var container = new NDOContainer();

            Assert.AreEqual(false, container.IsRegistered <ICar>());
            container.RegisterInstance <ICar>(null);
            Assert.AreEqual(true, container.IsRegistered <ICar>());
        }
Exemple #3
0
        public void OverwriteInstanceRegWithTypeReg()
        {
            var container = new NDOContainer();

            container.RegisterInstance <ICar>(new Ford());
            container.RegisterType <ICar, BMW>();
            Assert.IsTrue(container.Resolve <ICar>() is BMW);
        }
Exemple #4
0
        public void ResolveTypeWithInstanceDependency()
        {
            var container = new NDOContainer();

            container.RegisterInstance <ICar>(new BMW());
            var drv = container.Resolve <Driver>();

            Assert.NotNull(drv);
        }
Exemple #5
0
        public void SimpleRegistrationWithOneType()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <BMW>();

            var car = container.Resolve <BMW>();

            Assert.AreEqual(typeof(BMW), car.GetType());
        }
Exemple #6
0
        public void RegistrationWithAnonymousOverride()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <Driver>();

            //Resolves dependencies and returns the Driver object
            Driver drv = container.Resolve <Driver>(null, new ParameterOverride(new BMW()));

            Assert.AreEqual("Running BMW - 1 mile", drv.RunCar());
        }
Exemple #7
0
        public void DoubleResolve()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <ICar, BMW>(new ContainerControlledLifetimeManager());

            var car1 = container.Resolve <ICar>();
            var car2 = container.Resolve <ICar>();

            Assert.AreSame(car1, car2);
        }
Exemple #8
0
        public void SimpleRegistration()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <ICar, BMW>();
            container.RegisterType <Driver>();

            //Resolves dependencies and returns the Driver object
            Driver drv = container.Resolve <Driver>();

            Assert.AreEqual("Running BMW - 1 mile", drv.RunCar());
        }
Exemple #9
0
        public void RegisterInstance()
        {
            INDOContainer container = new NDOContainer();

            var car1 = new BMW();

            container.RegisterInstance <ICar>(car1);

            var car2 = container.Resolve <ICar>();

            Assert.AreSame(car1, car2);
        }
Exemple #10
0
        public void ResolveAndRegisterInstanceWithFactory()
        {
            INDOContainer container = new NDOContainer();

            container.ResolveOrRegisterInstance("bmw", _ => new BMW());
            var bmw = container.Resolve(typeof(BMW), "bmw");

            Assert.IsNotNull(bmw);
            Assert.AreEqual(typeof(BMW), bmw.GetType());
            var bmw2 = container.Resolve(typeof(BMW), "bmw");

            Assert.AreSame(bmw, bmw2);
        }
Exemple #11
0
        public void RegisterWithContainerLifetime()
        {
            var container = new NDOContainer();

            container.RegisterType <ICar, BMW>(new ContainerControlledLifetimeManager());

            var driver1 = container.Resolve <Driver>();

            Assert.AreEqual("Running BMW - 1 mile", driver1.RunCar());

            var driver2 = container.Resolve <Driver>();

            Assert.AreEqual("Running BMW - 2 mile", driver2.RunCar());
        }
Exemple #12
0
        public void ResolveOrRegisterTypeWithOverride()
        {
            INDOContainer container = new NDOContainer();

            var drv1 = container.ResolveOrRegisterType <Driver>(new ContainerControlledLifetimeManager(), "bmw", new ParameterOverride("car", new BMW()));
            var drv2 = container.ResolveOrRegisterType <Driver>(new ContainerControlledLifetimeManager(), "audi", new ParameterOverride("car", new Audi()));

            Assert.AreEqual("Running BMW - 1 mile", drv1.RunCar());
            Assert.AreEqual("Running Audi - 1 mile", drv2.RunCar());
            drv1 = container.ResolveOrRegisterType <Driver>(new ContainerControlledLifetimeManager(), "bmw", new ParameterOverride("car", new BMW()));
            drv2 = container.ResolveOrRegisterType <Driver>(new ContainerControlledLifetimeManager(), "audi", new ParameterOverride("car", new Audi()));
            Assert.AreEqual("Running BMW - 2 mile", drv1.RunCar());
            Assert.AreEqual("Running Audi - 2 mile", drv2.RunCar());
        }
Exemple #13
0
        public void DoubleRegisterTypeWithName()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <ICar, BMW>(new ContainerControlledLifetimeManager());
            container.RegisterType <ICar, Audi>(new ContainerControlledLifetimeManager());

            var car1 = container.Resolve <ICar>("bmw");
            var car2 = container.Resolve <ICar>("bmw");
            var car3 = container.Resolve <ICar>("audi");

            Assert.AreSame(car1, car2);
            Assert.AreNotSame(car1, car3);
        }
Exemple #14
0
        public void DoubleRegisterTypeWithNameTransient()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <ICar, BMW>();
            container.RegisterType <ICar, Audi>();

            var car1 = container.Resolve <ICar>("bmw");
            var car2 = container.Resolve <ICar>("bmw");
            var car3 = container.Resolve <ICar>("audi");

            Assert.AreNotSame(car1, car2);
            Assert.AreNotSame(car1, car3);
        }
Exemple #15
0
        public void ResolveAndRegisterInstance()
        {
            INDOContainer container = new NDOContainer();
            var           car1      = container.ResolveOrRegisterInstance <ICar>("bmw", _ => new BMW());
            var           car2      = container.ResolveOrRegisterInstance <ICar>("bmw", _ => new BMW());

            Assert.AreSame(car1, car2);

            var car3 = container.ResolveOrRegisterInstance <ICar>("ford", _ => new Ford());

            Assert.AreNotSame(car1, car3);

            var car4 = container.ResolveOrRegisterInstance <ICar>("bmw2", _ => new BMW());

            Assert.AreNotSame(car1, car4);
        }
Exemple #16
0
        public void RegisterInstanceWithName()
        {
            INDOContainer container = new NDOContainer();

            var bmw1 = new BMW();

            container.RegisterInstance <ICar>(bmw1, "bmw");
            var audi1 = new Audi();

            container.RegisterInstance <ICar>(audi1, "audi");

            var bmw2 = container.Resolve <ICar>("bmw");

            Assert.AreSame(bmw1, bmw2);
            var audi2 = container.Resolve <ICar>("audi");

            Assert.AreSame(audi1, audi2);
        }
Exemple #17
0
        public void ResolveWithParameterInParentContainer()
        {
            var container1 = new NDOContainer();

            container1.RegisterType <Driver>();
            var container2 = container1.CreateChildContainer();

            container2.RegisterInstance <ICar>(new BMW());
            var drv = container2.Resolve <Driver>();

            Assert.NotNull(drv);
            Assert.AreEqual("Running BMW - 1 mile", drv.RunCar());

            container1 = new NDOContainer();
            container1.RegisterInstance <ICar>(new BMW());
            container2 = container1.CreateChildContainer();
            container2.RegisterType <Driver>();
            drv = container2.Resolve <Driver>();
            Assert.NotNull(drv);
            Assert.AreEqual("Running BMW - 1 mile", drv.RunCar());
        }
Exemple #18
0
        public void ResolveWithChildContainer2()
        {
            INDOContainer container1 = new NDOContainer();

            container1.RegisterType <ICar, BMW>(new ContainerControlledLifetimeManager());

            var car1 = container1.Resolve <ICar>();


            var container2 = container1.CreateChildContainer();
            var car2       = container2.Resolve <ICar>();

            Assert.AreSame(car1, car2);

            container2.RegisterType <ICar, BMW>(/* Transient */);
            car2 = container2.Resolve <ICar>();

            Assert.AreNotSame(car1, car2);

            container2.Dispose();

            car2 = container1.Resolve <ICar>();
            Assert.AreSame(car1, car2);
        }
Exemple #19
0
        public void ResolveInstanceWithChildContainer()
        {
            INDOContainer container1 = new NDOContainer();

            container1.RegisterInstance <ICar>(new BMW());

            var car1 = container1.Resolve <ICar>();


            var container2 = container1.CreateChildContainer();
            var car2       = container2.Resolve <ICar>();

            Assert.AreSame(car1, car2);

            container2.RegisterInstance <ICar>(new BMW());
            car2 = container2.Resolve <ICar>();

            Assert.AreNotSame(car1, car2);

            container2.Dispose();

            car2 = container1.Resolve <ICar>();
            Assert.AreSame(car1, car2);
        }
Exemple #20
0
        public void ResolveInterfaceWithoutRegistrationIsNull()
        {
            var container = new NDOContainer();

            Assert.IsNull(container.Resolve <ICar>());
        }
Exemple #21
0
        public void ResolveWithoutRegistration()
        {
            var container = new NDOContainer();

            Assert.IsTrue(container.Resolve <BMW>() is BMW);
        }