Beispiel #1
0
        public void AvoidCircularReferences()
        {
            var serviceLocator = new ServiceLocator();

            serviceLocator.RegisterSingleton(typeof(IA), typeof(A));
            serviceLocator.RegisterSingleton(typeof(IB), typeof(B));
            serviceLocator.RegisterSingleton(typeof(IC), typeof(C));
            var result = (IC) serviceLocator.GetService(typeof(IC));

            Assert.NotNull(result);
            Assert.IsInstanceOf<C>(result);
            Assert.AreEqual(3, result.UsedConstructor);
        }
Beispiel #2
0
        public void RegisterAndResolveTypeByClass()
        {
            var serviceLocator = new ServiceLocator();

            serviceLocator.RegisterSingleton(typeof(A), typeof(A));
            var result = serviceLocator.GetService(typeof(A));

            Assert.NotNull(result);
            Assert.IsInstanceOf<A>(result);
        }
Beispiel #3
0
        public void UseProperConstructorWithOneParameter()
        {
            var serviceLocator = new ServiceLocator();

            serviceLocator.RegisterSingleton(typeof(IA), typeof(A));
            serviceLocator.RegisterSingleton(typeof(IC), typeof(C));
            var result = (IC)serviceLocator.GetService(typeof(IC));

            Assert.NotNull(result);
            Assert.IsInstanceOf<C>(result);
            Assert.AreEqual(2, result.UsedConstructor);
        }
Beispiel #4
0
        public void SingletonInstance()
        {
            var serviceLocator = new ServiceLocator();

            serviceLocator.RegisterSingleton(typeof(IA), typeof(A));
            var result = serviceLocator.GetService(typeof(IA));
            var result2 = serviceLocator.GetService(typeof(IA));

            Assert.NotNull(result);
            Assert.IsInstanceOf<A>(result);
            Assert.AreEqual(result, result2);
        }