Exemple #1
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 #2
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 #3
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 #4
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 #5
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 #6
0
        public void TestNullInstance()
        {
            var container = new NDOContainer();

            container.RegisterInstance <ICar>(null);
            Assert.IsNull(container.Resolve <ICar>());
        }
Exemple #7
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 #8
0
        public void ResolveTypeWithInstanceDependency()
        {
            var container = new NDOContainer();

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

            Assert.NotNull(drv);
        }
Exemple #9
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 #10
0
        public void SimpleRegistrationWithOneType()
        {
            INDOContainer container = new NDOContainer();

            container.RegisterType <BMW>();

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

            Assert.AreEqual(typeof(BMW), car.GetType());
        }
Exemple #11
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 #12
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 #13
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 #14
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 #15
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 #16
0
        public void ResolveInterfaceWithoutRegistrationIsNull()
        {
            var container = new NDOContainer();

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

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