public void Should_Allow_Null_Extra_Configuration() { // Arrange var serviceCollection = new ServiceCollection(); var adapter = new MicrosoftDependencyInjectionAdapter(serviceCollection, null); // Act / Assert Should.NotThrow(() => adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>())); }
public void Should_Return_Nested_Container() { // Arrange var serviceCollection = new ServiceCollection(); var adapter = new MicrosoftDependencyInjectionAdapter(serviceCollection, (config, commands) => config); // Act var nested = adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>()); // Assert nested.ShouldNotBe(adapter); nested.ShouldBeOfType <MicrosoftDependencyInjectionAdapter>(); }
public void Should_Invoke_Extra_Configuration() { // Arrange var serviceCollection = new ServiceCollection(); bool configCalled = false; var adapter = new MicrosoftDependencyInjectionAdapter(serviceCollection, (config, commands) => { configCalled = true; return(config); }); // Act adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>()); // Assert configCalled.ShouldBeTrue(); }
static void Main(string[] args) { var serviceCollection = new ServiceCollection() .AddTransient <IExampleService, ExampleService>() .AddTransient <TestSimpleCommandClass>(); var containerAdapter = new MicrosoftDependencyInjectionAdapter(serviceCollection, (scopeBuilder, commands) => { scopeBuilder.AddSingleton <IExampleConfiguration>(new ExampleConfiguration(commands)); return(scopeBuilder); }); var app = new CommandLineInjectingApplication("commandlineinjector-example", containerAdapter); app.RequiresCommand(); app.AddToSubsequentAllCommands(ExampleConfiguration.ConfigValueOption); app.Command <TestSimpleCommandClass>("simple"); app.Execute(args); Console.ReadLine(); }