Пример #1
0
        public void RegisterTypeMapping_K_IType_Test4()
        {
            ActivatingServiceLocator ASLocator  = new ActivatingServiceLocator();
            ActivatingServiceLocator ASLocator2 = ASLocator.RegisterTypeMapping(typeof(IInterface1), typeof(FirstClass1)
                                                                                , "Key1", InstantiationType.AsSingleton);


            Assert.IsNotNull(ASLocator2, "RegisterTypeMapping method returned null");
            Assert.AreEqual(ASLocator2.GetType().ToString(), ASLocator.GetType().ToString(), "Return type does not match ActivatingServiceLocator");
            Assert.IsTrue(ASLocator2.IsTypeRegistered <IInterface1>(), "Failed to register the type");
            object FirstClass1Object = ASLocator.GetInstance(typeof(IInterface1), "Key1");

            Assert.AreEqual(FirstClass1Object.GetType().Name, "FirstClass1");

            //Singleton instance check.
            object FirstClass1Object2 = ASLocator.GetInstance(typeof(IInterface1), "Key1");

            Assert.AreEqual(FirstClass1Object, FirstClass1Object2);

            //reregistration checking for Singleton.
            ASLocator.RegisterTypeMapping(typeof(IInterface1), typeof(FirstClass1), "Key1", InstantiationType.AsSingleton);
            object FirstClass1Object3 = ASLocator.GetInstance(typeof(IInterface1), "Key1");

            Assert.AreEqual(FirstClass1Object, FirstClass1Object3);
        }
        public void CanRegisterSingleton()
        {
            ActivatingServiceLocator locator = new ActivatingServiceLocator();

            locator.RegisterTypeMapping(TypeMapping.Create <IMyObject, MyObject>(InstantiationType.AsSingleton));

            Assert.AreSame(locator.GetInstance <IMyObject>(), locator.GetInstance <IMyObject>());
        }
        public void ResolveAllRetrievesSingletons()
        {
            ActivatingServiceLocator locator = new ActivatingServiceLocator();

            locator.RegisterTypeMapping(TypeMapping.Create <IMyObject, MyObject>("key1", InstantiationType.AsSingleton));
            locator.RegisterTypeMapping(TypeMapping.Create <IMyObject, MyObject2>("key2", InstantiationType.AsSingleton));

            Assert.AreSame(locator.GetInstance <IMyObject>("key1"), locator.GetInstance <IMyObject>("key1"));
            var all1 = locator.GetAllInstances <IMyObject>();
            var all2 = locator.GetAllInstances <IMyObject>();

            Assert.AreEqual(all1.First(), all2.First());
            Assert.AreEqual(all1.Skip(1).First(), all2.Skip(1).First());
        }
Пример #4
0
        public void RegisterTypeMapping_From_To_ITypeTestKey1()
        {
            ActivatingServiceLocator ASLocator  = new ActivatingServiceLocator();
            ActivatingServiceLocator ASLocator2 = ASLocator.RegisterTypeMapping <IInterface1, FirstClass1>("Key1", InstantiationType.NewInstanceForEachRequest);

            Assert.IsNotNull(ASLocator2, "RegisterTypeMapping method returned null");
            Assert.AreEqual(ASLocator2.GetType().ToString(), ASLocator.GetType().ToString(), "Return type does not match ActivatingServiceLocator");
            Assert.IsTrue(ASLocator2.IsTypeRegistered <IInterface1>(), "Failed to register the type");
            object FirstClass1Object = ASLocator.GetInstance(typeof(IInterface1), "Key1");

            Assert.AreEqual(FirstClass1Object.GetType().Name, "FirstClass1");

            //Code to check for new instance. Objects should be different instances of same class, not a singleton.
            object FirstClass1Object2 = ASLocator.GetInstance(typeof(IInterface1), "Key1");

            Assert.AreNotEqual(FirstClass1Object, FirstClass1Object2);
        }
        public void LastRegistrationWins()
        {
            var target = new ActivatingServiceLocator();

            target.RegisterTypeMapping <IMyObject, MyObject>();
            target.RegisterTypeMapping <IMyObject, MyObject2>();

            Assert.IsInstanceOfType(target.GetInstance <IMyObject>(), typeof(MyObject2));
        }
        public void GetWithoutKeyThrows()
        {
            var target = new ActivatingServiceLocator();

            target.RegisterTypeMapping <IMyObject, MyObject>("key1");

            var result = target.GetInstance <IMyObject>();

            Assert.IsInstanceOfType(result, typeof(MyObject));
        }
        public void CanRegisterAndResolveTypeMapping()
        {
            var target = new ActivatingServiceLocator();

            target.RegisterTypeMapping <IMyObject, MyObject>();

            var result = target.GetInstance <IMyObject>();

            Assert.IsInstanceOfType(result, typeof(MyObject));
        }
        public void CanRegisterWithValidTypes()
        {
            ActivatingServiceLocator locator = new ActivatingServiceLocator();

            locator.RegisterTypeMapping(typeof(IMyObject2), typeof(MyObject3));

            var instance = locator.GetInstance <IMyObject2>();

            Assert.IsInstanceOfType(instance, typeof(MyObject3));
        }
        public void CanRegisterMultipleTypes()
        {
            var target = new ActivatingServiceLocator();

            target.RegisterTypeMapping <IMyObject, MyObject>("key1");
            target.RegisterTypeMapping <IMyObject, MyObject2>("key2");

            var result = target.GetInstance <IMyObject>("key1");

            Assert.IsInstanceOfType(result, typeof(MyObject));
        }
Пример #10
0
        public void RegisterTypeMapping_Test1()
        {
            ActivatingServiceLocator ASLocator  = new ActivatingServiceLocator();
            ActivatingServiceLocator ASLocator2 = ASLocator.RegisterTypeMapping(typeof(IInterface1), typeof(FirstClass1));

            Assert.IsNotNull(ASLocator2, "RegisterTypeMapping method returned null");
            Assert.AreEqual(ASLocator2.GetType().ToString(), ASLocator.GetType().ToString(), "Return type does not match ActivatingServiceLocator");
            Assert.IsTrue(ASLocator2.IsTypeRegistered <IInterface1>(), "Failed to register the type");
            object FirstClass1Object = ASLocator.GetInstance(typeof(IInterface1));

            Assert.AreEqual(FirstClass1Object.GetType().Name, "FirstClass1");
        }
Пример #11
0
        public void CanResolveByKey()
        {
            //Arrange
            var target = new ActivatingServiceLocator();

            //Act
            target.RegisterTypeMapping <IMyObject, MyObject>("key1");
            target.RegisterTypeMapping <IMyObject, MyObject2>("key2");

            //Assert
            var result = target.GetInstance <IMyObject>("key2");

            Assert.IsInstanceOfType(result, typeof(MyObject2));
        }
        public void LoadTypeMappings2_Test()
        {
            ActivatingServiceLocatorFactory factory = new ActivatingServiceLocatorFactory();
            IServiceLocator servicelocator          = factory.Create();

            List <TypeMapping> typeMappings = new List <TypeMapping>();

            typeMappings.Add(new TypeMapping(typeof(IInterface1), typeof(FirstClass1), null));

            factory.LoadTypeMappings(servicelocator, typeMappings);
            ActivatingServiceLocator AserviceLoc = servicelocator as ActivatingServiceLocator;

            Assert.IsTrue(AserviceLoc.IsTypeRegistered <IInterface1>(), "Failed to register the type");
            object FirstClass1Object = AserviceLoc.GetInstance(typeof(IInterface1));

            Assert.AreEqual(FirstClass1Object.GetType().Name, "FirstClass1");
        }