private void ConfigureServices(IServiceCollection services) { services.AddSingleton <IFileIOService, FileIOService>(); services.AddSingleton <IStoragePathService, WindowsStoragePathService>(); services.AddSingleton <IPrinterConfigurationManagerService, PrinterConfigurationManagerService>(sp => { var service = new PrinterConfigurationManagerService( sp.GetService <IStoragePathService>(), sp.GetService <IFileIOService>()); service.Load(); return(service); }); services.AddTransient <PrinterConfigurationView>(); services.AddTransient <PrintersConfigurationView>(); services.AddScoped <IPrinterControllerService, MarlinPrinterControllerService>(); services.AddScoped <IPrinterPacketParser, MarlinPrinterPacketParser>(x => { var options = new MarlinPrinterPacketParserOptions() { }; return(new MarlinPrinterPacketParser(options)); }); services.AddSingleton <ISerialPortAdapter, SerialPortAdapter <WrappedSerialPort> >(); services.AddTransient <ICommandValidatorService, CommandValidatorService>(); services.AddTransient <ICommandsDefinitionLoaderService, CommandsDefinitionLoaderService>(x => { var service = new CommandsDefinitionLoaderService(); service.Load("Config\\MarlinCommands.json"); return(service); }); }
public void Given_When_Then() { // Arrange var sut = new CommandsDefinitionLoaderService(); // Act sut.Load("Data\\TestCommands.json"); // Assert Assert.Single(sut.CommandDefinitions.Commands); Assert.Equal("G10", sut.CommandDefinitions.Commands[0].Key); Assert.Equal("Description of the command.", sut.CommandDefinitions.Commands[0].Description); Assert.Equal("http://www.somewebsite.com/docs/commands/g10", sut.CommandDefinitions.Commands[0].Url); Assert.Equal(4, sut.CommandDefinitions.Commands[0].Parameters.Count); Assert.Equal("A", sut.CommandDefinitions.Commands[0].Parameters[0].Token); Assert.Equal("Parameter 1.", sut.CommandDefinitions.Commands[0].Parameters[0].Description); Assert.True(sut.CommandDefinitions.Commands[0].Parameters[0].Optional); Assert.Equal("B", sut.CommandDefinitions.Commands[0].Parameters[1].Token); Assert.Equal("Parameter 2.", sut.CommandDefinitions.Commands[0].Parameters[1].Description); Assert.False(sut.CommandDefinitions.Commands[0].Parameters[1].Optional); Assert.Equal("C", sut.CommandDefinitions.Commands[0].Parameters[2].Token); Assert.Equal("Parameter 3.", sut.CommandDefinitions.Commands[0].Parameters[2].Description); Assert.False(sut.CommandDefinitions.Commands[0].Parameters[2].Optional); Assert.Equal("[P1,P2,P3,Z]", sut.CommandDefinitions.Commands[0].Parameters[2].Requires); Assert.Equal("D", sut.CommandDefinitions.Commands[0].Parameters[3].Token); Assert.Equal("Parameter 4.", sut.CommandDefinitions.Commands[0].Parameters[3].Description); Assert.False(sut.CommandDefinitions.Commands[0].Parameters[3].Optional); Assert.Equal("1,2,3,4,5", sut.CommandDefinitions.Commands[0].Parameters[3].Choices); }