public HierarchicalLifetimeManagerTest() { parent = new FsContainer(); child1 = parent.CreateChildContainer(); child2 = parent.CreateChildContainer(); parent.For<ILogger>().Use<Logger>(new HierarchicalLifetimeManager()); parent.For<DisposableObject>() .Use<DisposableObject>(new HierarchicalLifetimeManager()); }
public void TestForUseByServiceResolve() { // Act var container = new FsContainer(); container.For<IValidator>().Use<Validator>(); // Arrange var validator = container.Resolve<IValidator>(); // Assert Assert.AreNotEqual(validator, null); }
public void TestBaseClassInheritanceAreAssignableTypes() { // Act var container = new FsContainer(); container.For<Logger>().Use<DbLogger>(); // Arrange var logger = container.Resolve<Logger>(); // Assert Assert.IsNotNull(logger); Assert.IsInstanceOfType(logger, typeof(DbLogger)); }
public void TestTransientLifetimeInstanceAlwaysDifferent() { // Act var container = new FsContainer(); container.For<ILogger>().Use<Logger>(new TransientLifetimeManager()); // Arrange var logger = container.Resolve<ILogger>(); var logger1 = container.Resolve<ILogger>(); // Assert Assert.IsNotNull(logger); Assert.IsNotNull(logger1); Assert.AreNotSame(logger, logger1); }
public void TestContainerControlledLifetimeInstanceAlwaysSame() { // Act var container = new FsContainer(); container.For<ILogger>().Use<Logger>(new ContainerControlledLifetimeManager()); // Arrange var logger = container.Resolve<ILogger>(); var logger1 = container.Resolve<ILogger>(); // Assert Assert.IsNotNull(logger); Assert.IsNotNull(logger1); Assert.AreSame(logger, logger1); }
public void TestWithSingleConstructorArgumentResolve() { // Act const string argument = "Hello, world."; var container = new FsContainer(); container.For<IRule>().Use<Rule>() .WithConstructorArgument("message", argument); // Arrange var instance = container.Resolve<IRule>(); // Assert Assert.IsNotNull(instance, null); Assert.AreEqual(instance.GetMessage(), argument); Assert.AreEqual(instance.GetNumber(), 0); }
public void TestRecursiveSingleArgumentResolve() { // Act var container = new FsContainer(); container.For<ICustomerService>().Use<CustomerService>(); container.For<IValidator>().Use<Validator>(); // Arrange var instance = container.Resolve<ICustomerService>(); // Assert Assert.AreNotEqual(instance, null); }
public void TestRecursiveMultipleArgumentsResolve() { // Act var container = new FsContainer(); container.For<ICustomerService>().Use<CustomerService>(); container.For<IContractService>().Use<ContractService>(); container.For<IDocumentService>().Use<DocumentService>(); container.For<IValidator>().Use<Validator>(); container.For<IContractRepository>().Use<ContractRepository>(); // Arrange var instance = container.Resolve<ContractController>(); // Assert Assert.AreNotEqual(instance, null); }
public void TestNotAssignableInterfaceTypesThrowNotAssignableException() { // Act var container = new FsContainer(); container.For<ILogger>().Use<Validator>(); // Arrange }
public void TestNotAssignableBaseClassTypesThrowNotAssignableException() { // Act var container = new FsContainer(); container.For<DbLogger>().Use<Logger>(); // Arrange }
public void TestNonExistingParametersDoesNotAffectToInstanceCreatingResolve() { // Act const string message = "Hello, world."; var container = new FsContainer(); container.For<IRule>().Use<Rule>() .WithConstructorArgument("message", message) .WithConstructorArgument("messageException", message); // Arrange var instance = container.Resolve<IRule>(); // Assert Assert.IsNotNull(instance, null); Assert.AreSame(instance.GetMessage(), message); }
public void TestNextWithArgumentOverridePreviousResolve() { // Act const string msgFirst = "Hello, world."; const string msgLast = "Good night, world."; const int numFirst = 42; const int numLast = 7; var container = new FsContainer(); container.For<IRule>().Use<Rule>() .WithConstructorArgument("message", msgFirst) .WithConstructorArgument("message", msgLast) .WithConstructorArgument("number", numFirst) .WithConstructorArgument("number", numLast); // Arrange var instance = container.Resolve<IRule>(); // Assert Assert.IsNotNull(instance, null); Assert.AreEqual(instance.GetMessage(), msgLast); Assert.AreEqual(instance.GetNumber(), numLast); }