public void RegisterFactory_WithCompositionRoot_ShouldBeNotNull() { var container = new ServiceContainer(); var directory = AppDomain.CurrentDomain.BaseDirectory; var finder = AssemblyFinder.Builder.UsePath(directory).Create; container.RegisterFrom<ServiceLocatorCompositionRoot>(); var assemblies = finder.GetAssembliesTagged<AssemblyTagAttribute>(); container.RegisterFactory(assemblies); container.Register<IDoSomething, DoSomething>(typeof(DoSomething).FullName); var instance = container.GetInstance<IObjectFactory>(); instance.ShouldNotBeNull(); instance.ConfigurationProvider.Configuration.Items.ShouldNotBeEmpty(); instance.ConfigurationProvider.Configuration.Items.Count.ShouldBe(1); instance.ConfigurationProvider.Sources.ShouldNotBeEmpty(); instance.ConfigurationProvider.Sources.Length.ShouldBe(2); instance.ShouldBeAssignableTo<IObjectFactory>(); instance.ShouldBeOfType<ObjectFactory>(); }
public void Create_WithCustomerOlderThan25_ShouldBeNotEmpty() { var container = new ServiceContainer(); var directory = AppDomain.CurrentDomain.BaseDirectory; var finder = AssemblyFinder.Builder.UsePath(directory).Create; container.RegisterFrom<ServiceLocatorCompositionRoot>(); var assemblies = finder.GetAssembliesTagged<AssemblyTagAttribute>(); container.RegisterFactory(assemblies); container.Register<IDoSomething, DoSomething>(typeof(DoSomething).FullName); var factory = container.GetInstance<IObjectFactory>(); var customer = new Customer(){Age = 25}; var services = factory.Create<Customer, IDoSomething>(customer); services.ShouldNotBeEmpty(); services.Length.ShouldBe(1); services[0].ShouldBeAssignableTo<IDoSomething>(); services[0].ShouldBeOfType<DoSomething>(); }
public void SetUp() { var container = new ServiceContainer(); var directory = TestContext.CurrentContext.TestDirectory; var finder = AssemblyFinder.Builder.UsePath(directory).Create; var assemblies = finder.GetAssembliesTagged<AssemblyTagAttribute>(); container.RegisterFrom<ServiceLocatorCompositionRoot>(); container.RegisterFactory(assemblies); container.RegisterValidator(assemblies, assemblies); _modelValidator = container.GetInstance<IModelValidator>(); }