public void Should_Allow_Null_Extra_Configuration() { // Arrange var containerMock = new Mock <IContainer>(); var nestedContainer = Mock.Of <INestedContainer>(); containerMock.Setup(x => x.GetNestedContainer()).Returns(nestedContainer); var adapter = new LamarContainerAdapter(containerMock.Object, null); // Act / Assert Should.NotThrow(() => adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>())); }
public void Should_Dispose_Container() { // Arrange var containerMock = new Mock <IContainer>(); containerMock.Setup(x => x.Dispose()); var adapter = new LamarContainerAdapter(containerMock.Object, (config, commands) => config); // Act adapter.Dispose(); // Assert containerMock.Verify(x => x.Dispose(), Times.Once()); }
public void GetInstance_Should_Pass_To_Container() { // Arrange var containerMock = new Mock <IContainer>(); containerMock.Setup(x => x.GetInstance <string>()).Returns("test"); var adapter = new LamarContainerAdapter(containerMock.Object, (config, commands) => config); // Act var result = adapter.GetInstance <string>(); // Assert result.ShouldBe("test"); containerMock.Verify(x => x.GetInstance <string>(), Times.Once()); }
public void Should_Return_Nested_Container() { // Arrange var containerMock = new Mock <IContainer>(); var nestedContainer = Mock.Of <INestedContainer>(); containerMock.Setup(x => x.GetNestedContainer()).Returns(nestedContainer); var adapter = new LamarContainerAdapter(containerMock.Object, (config, commands) => config); // Act var nested = adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>()); // Assert nested.ShouldNotBe(adapter); nested.ShouldBeOfType <LamarNestedContainerAdapter>(); containerMock.Verify(x => x.GetNestedContainer(), Times.Once()); }
public void Should_Invoke_Extra_Configuration() { // Arrange var containerMock = new Mock <IContainer>(); var nestedContainer = Mock.Of <INestedContainer>(); containerMock.Setup(x => x.GetNestedContainer()).Returns(nestedContainer); bool configCalled = false; var adapter = new LamarContainerAdapter(containerMock.Object, (config, commands) => { configCalled = true; return(config); }); // Act adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>()); // Assert configCalled.ShouldBeTrue(); }
static void Main(string[] args) { var structureMapContainer = new Container(config => { config.For <IExampleService>().Use <ExampleService>(); config.For <IExampleConfiguration>().Use <ExampleConfiguration>(); config.Injectable <ExampleConfiguration>(); }); var containerAdapter = new LamarContainerAdapter(structureMapContainer, (container, commands) => { container.Inject(new ExampleConfiguration(commands)); return(container); }); var app = new CommandLineInjectingApplication("commandlineinjector-example", containerAdapter); app.RequiresCommand(); app.AddToSubsequentAllCommands(ExampleConfiguration.ConfigValueOption); app.Command <TestSimpleCommandClass>("simple"); app.Execute(args); }