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));
}
}