Пример #1
0
        public void Should_Allow_Null_Extra_Configuration()
        {
            // Arrange
            var containerMock   = new Mock <IContainer>();
            var nestedContainer = Mock.Of <IContainer>();

            containerMock.Setup(x => x.GetNestedContainer()).Returns(nestedContainer);
            var adapter = new StructureMapContainerAdapter(containerMock.Object, null);

            // Act / Assert
            Should.NotThrow(() => adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>()));
        }
Пример #2
0
        public void Should_Dispose_Container()
        {
            // Arrange
            var containerMock = new Mock <IContainer>();

            containerMock.Setup(x => x.Dispose());
            var adapter = new StructureMapContainerAdapter(containerMock.Object, (config, commands) => config);

            // Act
            adapter.Dispose();

            // Assert
            containerMock.Verify(x => x.Dispose(), Times.Once());
        }
Пример #3
0
        public void GetInstance_Should_Pass_To_Container()
        {
            // Arrange
            var containerMock = new Mock <IContainer>();

            containerMock.Setup(x => x.GetInstance <string>()).Returns("test");
            var adapter = new StructureMapContainerAdapter(containerMock.Object, (config, commands) => config);

            // Act
            var result = adapter.GetInstance <string>();


            // Assert
            result.ShouldBe("test");
            containerMock.Verify(x => x.GetInstance <string>(), Times.Once());
        }
Пример #4
0
        public void Should_Return_Nested_Container()
        {
            // Arrange
            var containerMock   = new Mock <IContainer>();
            var nestedContainer = Mock.Of <IContainer>();

            containerMock.Setup(x => x.GetNestedContainer()).Returns(nestedContainer);
            var adapter = new StructureMapContainerAdapter(containerMock.Object, (config, commands) => config);

            // Act
            var nested = adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>());

            // Assert
            nested.ShouldNotBe(adapter);
            nested.ShouldBeOfType <StructureMapContainerAdapter>();
            containerMock.Verify(x => x.GetNestedContainer(), Times.Once());
        }
Пример #5
0
        public void Should_Invoke_Extra_Configuration()
        {
            // Arrange
            var containerMock   = new Mock <IContainer>();
            var nestedContainer = Mock.Of <IContainer>();

            containerMock.Setup(x => x.GetNestedContainer()).Returns(nestedContainer);
            bool configCalled = false;
            var  adapter      = new StructureMapContainerAdapter(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>();
            });

            var containerAdapter = new StructureMapContainerAdapter(structureMapContainer, (container, commands) =>
            {
                container.Configure(config =>
                {
                    config.For <IExampleConfiguration>().Use(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);
        }