예제 #1
0
 public void GetInstanceOfNonRegisteredAndNonAbstractClassReturnsAlwaysANewInstance()
 {
     var adapter = new ServiceLocatorAdapter(new ServiceLocator());
     var nonAbstractClassInstance1 = adapter.GetInstance<FooNonAbstractClass>();
     var nonAbstractClassInstance2 = adapter.GetInstance<FooNonAbstractClass>();
     Assert.AreNotSame(nonAbstractClassInstance1, nonAbstractClassInstance2);
 }
예제 #2
0
        public static void Register(HttpConfiguration config)
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            // This is an extension method from the integration package.
            container.RegisterWebApiControllers(config);

            container.Register <DroidSchema>(Lifestyle.Scoped);
            container.Register <JediSchema>(Lifestyle.Scoped);

            container.Register <ServiceProvider>(Lifestyle.Scoped);

            // Adapter for Service Locator
            var adapter = new ServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);

            // Verify
            container.Verify();

            config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
            config.MessageHandlers.Add(new DelegatingHandlerProxy <InicializeHandler>(container));
        }
예제 #3
0
 public void GetAllInstanceJustReturnsEmptyCollectionIfTheTypeIsNonRegistered()
 {
     var serviceLocator = new ServiceLocator();
     var serviceLocatorAdapter = new ServiceLocatorAdapter(serviceLocator);
     IFooInterface[] list = serviceLocatorAdapter.GetAllInstances<IFooInterface>().ToArray();
     Assert.AreEqual(0, list.Length);
 }
예제 #4
0
 public void GetAllInstanceJustReturnsCollectionOfWithOnylOneResolvedInstanceOfNonRegisteredNonAbstractClasses()
 {
     var serviceLocator = new ServiceLocator();
     var serviceLocatorAdapter = new ServiceLocatorAdapter(serviceLocator);
     FooNonAbstractClass[] list = serviceLocatorAdapter.GetAllInstances<FooNonAbstractClass>().ToArray();
     Assert.AreEqual(1, list.Length);
 }
예제 #5
0
 public void GetAllInstanceJustReturnsCollectionOfWithOnylOneResolvedInstanceIfTheTypeIsRegistered()
 {
     var serviceLocator = new ServiceLocator();
     serviceLocator.RegisterType<IFooInterface, FooNonAbstractClass>();
     var serviceLocatorAdapter = new ServiceLocatorAdapter(serviceLocator);
     IFooInterface[] list = serviceLocatorAdapter.GetAllInstances<IFooInterface>().ToArray();
     Assert.AreEqual(1, list.Length);
 }
예제 #6
0
        public void GetAllInstanceJustReturnsEmptyCollectionIfTheTypeIsNonRegistered()
        {
            var serviceLocator        = IoCFactory.CreateServiceLocator();
            var serviceLocatorAdapter = new ServiceLocatorAdapter(serviceLocator);

            IFooInterface[] list = serviceLocatorAdapter.GetAllInstances <IFooInterface>().ToArray();
            Assert.AreEqual(0, list.Length);
        }
예제 #7
0
        public void GetAllInstanceJustReturnsCollectionOfWithOnylOneResolvedInstanceOfNonRegisteredNonAbstractClasses()
        {
            var serviceLocator        = IoCFactory.CreateServiceLocator();
            var serviceLocatorAdapter = new ServiceLocatorAdapter(serviceLocator);

            FooNonAbstractClass[] list = serviceLocatorAdapter.GetAllInstances <FooNonAbstractClass>().ToArray();
            Assert.AreEqual(1, list.Length);
        }
예제 #8
0
        public void GetInstanceOfNonRegisteredAndNonAbstractClassReturnsAlwaysANewInstance()
        {
            var adapter = new ServiceLocatorAdapter(IoCFactory.CreateServiceLocator());
            var nonAbstractClassInstance1 = adapter.GetInstance <FooNonAbstractClass>();
            var nonAbstractClassInstance2 = adapter.GetInstance <FooNonAbstractClass>();

            Assert.AreNotSame(nonAbstractClassInstance1, nonAbstractClassInstance2);
        }
예제 #9
0
        public void InTheDefaultServiceLocatorRegionAdapterMappingsIsRegisteredAsSingleton()
        {
            var adapter = new ServiceLocatorAdapter();

            var regionAdapterMappings1 = adapter.GetInstance <RegionAdapterMappings>();
            var regionAdapterMappings2 = adapter.GetInstance <RegionAdapterMappings>();

            Assert.AreSame(regionAdapterMappings1, regionAdapterMappings2);
        }
예제 #10
0
        public void GetInstanceOfSelectorItemsSourceSyncBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();
            var adapter        = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance <SelectorItemsSourceSyncBehavior>();
            var behavior2 = adapter.GetInstance <SelectorItemsSourceSyncBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #11
0
        public void GetInstanceOfSyncRegionContextWithHostBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();
            var adapter        = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance <SyncRegionContextWithHostBehavior>();
            var behavior2 = adapter.GetInstance <SyncRegionContextWithHostBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #12
0
        public void GetAllInstanceJustReturnsCollectionOfWithOnylOneResolvedInstanceIfTheTypeIsRegistered()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();

            serviceLocator.RegisterType <IFooInterface, FooNonAbstractClass>();
            var serviceLocatorAdapter = new ServiceLocatorAdapter(serviceLocator);

            IFooInterface[] list = serviceLocatorAdapter.GetAllInstances <IFooInterface>().ToArray();
            Assert.AreEqual(1, list.Length);
        }
예제 #13
0
        public void GetInstanceOfRegionMemberLifetimeBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();
            var adapter        = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance <RegionMemberLifetimeBehavior>();
            var behavior2 = adapter.GetInstance <RegionMemberLifetimeBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #14
0
        public void GetInstanceOfBindRegionContextToDependencyObjectBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance <BindRegionContextToDependencyObjectBehavior>();
            var behavior2 = adapter.GetInstance <BindRegionContextToDependencyObjectBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #15
0
        public void GetInstanceOfRegionActiveAwareBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance <RegionActiveAwareBehavior>();
            var behavior2 = adapter.GetInstance <RegionActiveAwareBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #16
0
        public void GetInstanceOfSingletonRegisteredNonAbstractClassAlwaysTheSameInstance()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();

            serviceLocator.RegisterType <FooNonAbstractClass, FooNonAbstractClass>();
            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var nonAbstractClassInstance1 = adapter.GetInstance <FooNonAbstractClass>();
            var nonAbstractClassInstance2 = adapter.GetInstance <FooNonAbstractClass>();

            Assert.AreSame(nonAbstractClassInstance1, nonAbstractClassInstance2);
        }
예제 #17
0
        public void GetInstanceOfNonRegisteredAndNonAbstractClassReturnsAlwaysANewInstanceWithCanResolveNonAbstractTypesWithoutRegistrationInFalse()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();

            serviceLocator.CanResolveNonAbstractTypesWithoutRegistration = false;
            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var nonAbstractClassInstance1 = adapter.GetInstance <FooNonAbstractClass>();
            var nonAbstractClassInstance2 = adapter.GetInstance <FooNonAbstractClass>();

            Assert.AreNotSame(nonAbstractClassInstance1, nonAbstractClassInstance2);
        }
예제 #18
0
        public void GetInstanceOfAutoDelayedRegionCreationBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();

            serviceLocator.RegisterType <RegionAdapterMappings, RegionAdapterMappings>();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance <DelayedRegionCreationBehavior>();
            var behavior2 = adapter.GetInstance <DelayedRegionCreationBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #19
0
        public void RegisterRequiredServicesIfMissingAndUDPMessageHandler()
        {
            AggregateCatalog _catalog    = new AggregateCatalog(new AssemblyCatalog("UAOOI.Networking.UDPMessageHandler.dll"), new AssemblyCatalog("UAOOI.Networking.SimulatorInteroperabilityTest.dll"));
            AggregateCatalog _newCatalog = DefaultServiceRegistrar.RegisterServices(_catalog);
            int _disposingCount          = 0;

            using (CompositionContainer _container = new CompositionContainer(_newCatalog))
            {
                IServiceLocator _serviceLocator = new ServiceLocatorAdapter(_container);
                ServiceLocator.SetLocatorProvider(() => _serviceLocator);
                Assert.AreEqual <int>(14, _container.Catalog.Parts.Count <ComposablePartDefinition>());
                foreach (ComposablePartDefinition _part in _container.Catalog.Parts)
                {
                    Debug.WriteLine($"New Part: {string.Join(", ", _part.Metadata.Keys.ToArray<string>())}");
                    foreach (ImportDefinition _import in _part.ImportDefinitions)
                    {
                        Debug.WriteLine(string.Format("Imported contracts name => '{0}'", _import.ContractName));
                    }
                    foreach (ExportDefinition _export in _part.ExportDefinitions)
                    {
                        Debug.WriteLine(string.Format("Exported contracts name => '{0}'", _export.ContractName));
                    }
                }
                //UDPMessageHandler
                IMessageHandlerFactory _messageHandlerFactory = _container.GetExportedValue <IMessageHandlerFactory>();
                Assert.IsNotNull(_messageHandlerFactory);
                INetworkingEventSourceProvider _baseEventSource = _messageHandlerFactory as INetworkingEventSourceProvider;
                Assert.IsNull(_baseEventSource);
                IEnumerable <INetworkingEventSourceProvider> _diagnosticProviders = _container.GetExportedValues <INetworkingEventSourceProvider>();
                Assert.AreEqual <int>(4, _diagnosticProviders.Count <INetworkingEventSourceProvider>());
                // DataLogger
                EventSourceBootstrapper _eventSourceBootstrapper = _container.GetExportedValue <EventSourceBootstrapper>();
                LoggerManagementSetup   _logger = _container.GetExportedValue <LoggerManagementSetup>();
                _logger.DisposeCheck(x => _disposingCount++);
                Assert.IsNotNull(_logger.BindingFactory);
                Assert.IsNotNull(_logger.ConfigurationFactory);
                Assert.IsNotNull(_logger.EncodingFactory);
                Assert.IsNotNull(_logger.MessageHandlerFactory);
                SimulatorDataManagementSetup _simulator = _container.GetExportedValue <IDataRepositoryStartup>() as SimulatorDataManagementSetup;
                Assert.IsNotNull(_simulator);
                Assert.IsNotNull(_simulator.BindingFactory);
                Assert.IsNotNull(_simulator.ConfigurationFactory);
                Assert.IsNotNull(_simulator.EncodingFactory);
                Assert.IsNotNull(_simulator.MessageHandlerFactory);
                _simulator.DisposeCheck(x => _disposingCount++);
                Assert.AreEqual <int>(0, _disposingCount);
            }
            Assert.AreEqual <int>(2, _disposingCount);
        }
예제 #20
0
        public void GetInstanceOfAutoPopulateRegionBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();

            serviceLocator.RegisterType <IRegionViewRegistry, RegionViewRegistry>();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            serviceLocator.RegisterInstance <IServiceLocator>(adapter);

            var behavior1 = adapter.GetInstance <AutoPopulateRegionBehavior>();
            var behavior2 = adapter.GetInstance <AutoPopulateRegionBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
 public void ApplicationSettingsISLCompositionMethod()
 {
     using (AggregateCatalog newCatalog = DefaultServiceRegistrar.RegisterServices(null))
     {
         using (CompositionContainer _container = new CompositionContainer(newCatalog))
         {
             IServiceLocator _serviceLocator = new ServiceLocatorAdapter(_container);
             ServiceLocator.SetLocatorProvider(() => _serviceLocator);
             string _ProducerConfigurationFileName = _serviceLocator.GetInstance <string>(CompositionSettings.ConfigurationFileNameContract);
             Assert.AreEqual <string>("ConfigurationDataProducer.xml", _ProducerConfigurationFileName, $"_ProducerConfigurationFileName = {_ProducerConfigurationFileName}");
             string _ConsumerConfigurationFileName = _serviceLocator.GetInstance <string>(ConsumerCompositionSettings.ConfigurationFileNameContract);
             Assert.AreEqual <string>("ConfigurationDataConsumer.xml", _ConsumerConfigurationFileName, $"_ConsumerConfigurationFileName = {_ConsumerConfigurationFileName}");
             ApplicationSettings _ApplicationSettings = _serviceLocator.GetInstance <ApplicationSettings>();
             Assert.IsNotNull(_ApplicationSettings);
             ApplicationSettings _ApplicationSettings2 = _serviceLocator.GetInstance <ApplicationSettings>();
             Assert.AreSame(_ApplicationSettings, _ApplicationSettings2);
         }
     }
 }
예제 #22
0
 public void GetInstanceOfNonRegisteredAndNonAbstractClassReturnsAlwaysANewInstanceWithCanResolveNonAbstractTypesWithoutRegistrationInFalse()
 {
 	var serviceLocator = new ServiceLocator();
 	serviceLocator.CanResolveNonAbstractTypesWithoutRegistration = false;
     var adapter = new ServiceLocatorAdapter(serviceLocator);
     
     var nonAbstractClassInstance1 = adapter.GetInstance<FooNonAbstractClass>();
     var nonAbstractClassInstance2 = adapter.GetInstance<FooNonAbstractClass>();
     Assert.AreNotSame(nonAbstractClassInstance1, nonAbstractClassInstance2);
 }
예제 #23
0
        public void ReturnsNullIfTypeIsNotRegistered()
        {
            var adapter = new ServiceLocatorAdapter(new ServiceLocator());

            Assert.IsNull(adapter.GetInstance <IFooInterface>());
        }
예제 #24
0
        public void GetInstanceOfSingletonRegisteredNonAbstractClassAlwaysTheSameInstance()
        {
            var serviceLocator = new ServiceLocator();
            serviceLocator.RegisterType<FooNonAbstractClass, FooNonAbstractClass>();
            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var nonAbstractClassInstance1 = adapter.GetInstance<FooNonAbstractClass>();
            var nonAbstractClassInstance2 = adapter.GetInstance<FooNonAbstractClass>();

            Assert.AreSame(nonAbstractClassInstance1, nonAbstractClassInstance2);
        }
예제 #25
0
        public void GetInstanceOfAutoPopulateRegionBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();
            serviceLocator.RegisterType<IRegionViewRegistry, RegionViewRegistry>();

            var adapter = new ServiceLocatorAdapter(serviceLocator);
            serviceLocator.RegisterInstance<IServiceLocator>(adapter);

            var behavior1 = adapter.GetInstance<AutoPopulateRegionBehavior>();
            var behavior2 = adapter.GetInstance<AutoPopulateRegionBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #26
0
        public void InTheDefaultServiceLocatorRegionAdapterMappingsIsRegisteredAsSingleton()
        {
            var adapter = new ServiceLocatorAdapter();

            var regionAdapterMappings1 = adapter.GetInstance<RegionAdapterMappings>();
            var regionAdapterMappings2 = adapter.GetInstance<RegionAdapterMappings>();

            Assert.AreSame(regionAdapterMappings1, regionAdapterMappings2);
        }
예제 #27
0
        public void GetInstanceOfBindRegionContextToDependencyObjectBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance<BindRegionContextToDependencyObjectBehavior>();
            var behavior2 = adapter.GetInstance<BindRegionContextToDependencyObjectBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #28
0
        public void GetInstanceOfAutoDelayedRegionCreationBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();
            serviceLocator.RegisterType<RegionAdapterMappings, RegionAdapterMappings>();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance<DelayedRegionCreationBehavior>();
            var behavior2 = adapter.GetInstance<DelayedRegionCreationBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #29
0
        public void GetInstanceOfRegionActiveAwareBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();

            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance<RegionActiveAwareBehavior>();
            var behavior2 = adapter.GetInstance<RegionActiveAwareBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #30
0
        public void GetInstanceOfSelectorItemsSourceSyncBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();
            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance<SelectorItemsSourceSyncBehavior>();
            var behavior2 = adapter.GetInstance<SelectorItemsSourceSyncBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #31
0
        public void GetInstanceOfSyncRegionContextWithHostBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = new ServiceLocator();
            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance<SyncRegionContextWithHostBehavior>();
            var behavior2 = adapter.GetInstance<SyncRegionContextWithHostBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }
예제 #32
0
 public void ReturnsNullIfTypeIsNotRegistered()
 {
     var adapter = new ServiceLocatorAdapter(new ServiceLocator());
     Assert.IsNull(adapter.GetInstance<IFooInterface>());
 }
예제 #33
0
        public void GetInstanceOfRegionMemberLifetimeBehaviorReturnsAlwaysANewOne()
        {
            var serviceLocator = IoCFactory.CreateServiceLocator();
            var adapter = new ServiceLocatorAdapter(serviceLocator);

            var behavior1 = adapter.GetInstance<RegionMemberLifetimeBehavior>();
            var behavior2 = adapter.GetInstance<RegionMemberLifetimeBehavior>();

            Assert.AreNotSame(behavior1, behavior2);
        }