Esempio n. 1
0
            public void CreatesTypeWhenDynamicConstructorIsAvailable()
            {
                var serviceLocator  = new ServiceLocator();
                var noTagDependency = new DummyDependency
                {
                    Value = "no tag"
                };

                var tagDependency = new DummyDependency
                {
                    Value = "tag"
                };

                serviceLocator.RegisterType <IDispatcherService, DispatcherService>();
                serviceLocator.RegisterType <IMessageService, MessageService>();
                serviceLocator.RegisterType <INavigationService, NavigationService>();
                serviceLocator.RegisterType <INavigationRootService, NavigationRootService>();
                serviceLocator.RegisterType <ILanguageService, LanguageService>();
                serviceLocator.RegisterInstance <IDummyDependency>(noTagDependency);
                serviceLocator.RegisterInstance <IDummyDependency>(tagDependency, "tag");

                var typeFactory = serviceLocator.ResolveType <ITypeFactory>();
                var instance    = typeFactory.CreateInstanceWithParametersAndAutoCompletionWithTag <AdvancedDependencyInjectionTestClass>("tag", "string", 42, 42L);

                Assert.IsNotNull(instance);
                Assert.AreEqual("string", instance.StringValue);
                Assert.AreEqual(42, instance.IntValue);
                Assert.AreEqual(42L, instance.LongValue);

                Assert.IsTrue(ReferenceEquals(tagDependency, instance.Dependency));
            }
Esempio n. 2
0
            public DummyConverter(DummyDependency dependency)
            {
                if (dependency == null)
                {
                    throw new ArgumentNullException(nameof(dependency));
                }

                _dependency = dependency;
            }
Esempio n. 3
0
            public void ResolvesUsingPreferredTagAndDataContext()
            {
                var serviceLocator = new ServiceLocator();

                var noTagDependency = new DummyDependency
                {
                    Value = "no tag"
                };

                var tagDependency = new DummyDependency
                {
                    Value = "tag"
                };

                serviceLocator.RegisterInstance <IDummyDependency>(noTagDependency);
                serviceLocator.RegisterInstance <IDummyDependency>(tagDependency, "tag");

                var typeFactory = serviceLocator.ResolveType <ITypeFactory>();

                var viewModelFactory = new ViewModelFactory(typeFactory, serviceLocator);
                var viewModel        = viewModelFactory.CreateViewModel <TestClasses.ViewModelFactoryTestViewModel>(5, "tag");

                Assert.IsTrue(ReferenceEquals(tagDependency, viewModel.Dependency));
            }
Esempio n. 4
0
            public void ResolvesUsingPreferredTagAndDataContext()
            {
                var serviceLocator = new ServiceLocator();

                var noTagDependency = new DummyDependency
                {
                    Value = "no tag"
                };

                var tagDependency = new DummyDependency
                {
                    Value = "tag"
                };

                serviceLocator.RegisterInstance<IDummyDependency>(noTagDependency);
                serviceLocator.RegisterInstance<IDummyDependency>(tagDependency, "tag");

                var typeFactory = serviceLocator.ResolveType<ITypeFactory>();

                var viewModelFactory = new ViewModelFactory(typeFactory);
                var viewModel = viewModelFactory.CreateViewModel<TestViewModel>(5, "tag");

                Assert.IsTrue(ReferenceEquals(tagDependency, viewModel.Dependency));
            }
Esempio n. 5
0
            public void CreatesTypeWhenDynamicConstructorIsAvailable()
            {
                var serviceLocator = new ServiceLocator();
                var noTagDependency = new DummyDependency
                {
                    Value = "no tag"
                };

                var tagDependency = new DummyDependency
                {
                    Value = "tag"
                };

                serviceLocator.RegisterType<IDispatcherService, DispatcherService>();
                serviceLocator.RegisterType<IMessageService, MessageService>();
                serviceLocator.RegisterType<INavigationService, NavigationService>();
                serviceLocator.RegisterType<INavigationRootService, NavigationRootService>();
                serviceLocator.RegisterInstance<IDummyDependency>(noTagDependency);
                serviceLocator.RegisterInstance<IDummyDependency>(tagDependency, "tag");

                var typeFactory = serviceLocator.ResolveType<ITypeFactory>();
                var instance = typeFactory.CreateInstanceWithParametersAndAutoCompletionWithTag<AdvancedDependencyInjectionTestClass>("tag", "string", 42, 42L);

                Assert.IsNotNull(instance);
                Assert.AreEqual("string", instance.StringValue);
                Assert.AreEqual(42, instance.IntValue);
                Assert.AreEqual(42L, instance.LongValue);

                Assert.IsTrue(ReferenceEquals(tagDependency, instance.Dependency));
            }