public async Task MessageAdapter_WhenFileOutputTargetIsSpecified_ShouldCallFileCommandHandler() { var settingsMock = Substitute.For <ISettings>(); var message = _fixture.Create <MessageResponse>(); var persistenceFactory = new PersistenceCommandFactory(); var fileHandlerMock = Substitute.For <ICommandHandler>(); persistenceFactory.RegisterCommand("file", () => fileHandlerMock); settingsMock .OutputTarget .Returns("file"); settingsMock .FileName .Returns("myfile.txt"); var adapter = new MessageAdapter(settingsMock, persistenceFactory); await adapter.WriteReplyAsync(message, CancellationToken.None); await fileHandlerMock .Received(1) .ProcessCommand(Arg.Any <string>()); }
public static IServiceCollection AddDataLayer(this IServiceCollection serviceCollection) { return(serviceCollection .AddSingleton <IMessageAdapter, MessageAdapter>() .AddSingleton <FileCommandHandler>() .AddSingleton(sp => { var commandFactory = new PersistenceCommandFactory(); commandFactory.RegisterCommand("file", sp.GetService <FileCommandHandler>); return commandFactory; })); }