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>());
        }
Exemple #2
0
 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;
     }));
 }
        public async Task MessageAdapter_WhenCancellationRequested_ShouldThrow()
        {
            var settingsMock       = Substitute.For <ISettings>();
            var persistenceFactory = new PersistenceCommandFactory();

            settingsMock
            .TargetLanguage
            .Returns("RU");

            var adapter = new MessageAdapter(settingsMock, persistenceFactory);

            var cancelledToken = new CancellationToken(true);
            await Assert.ThrowsAsync <OperationCanceledException>(async() => await adapter.GetMessageAsync(cancelledToken));
        }
        public async Task MessageAdapter_WhenLanguageIsUnexpected_ShouldReturnEnglish()
        {
            var settingsMock       = Substitute.For <ISettings>();
            var persistenceFactory = new PersistenceCommandFactory();

            settingsMock
            .TargetLanguage
            .Returns(_fixture.Create <string>());

            var adapter = new MessageAdapter(settingsMock, persistenceFactory);


            var message = await adapter.GetMessageAsync(CancellationToken.None);

            Assert.Equal("Hello World", message.Message);
        }
        public async Task MessageAdapter_WhenLanguageIsDE_ShouldReturnMessage()
        {
            var settingsMock       = Substitute.For <ISettings>();
            var persistenceFactory = new PersistenceCommandFactory();

            settingsMock
            .TargetLanguage
            .Returns("DE");

            var adapter = new MessageAdapter(settingsMock, persistenceFactory);


            var message = await adapter.GetMessageAsync(CancellationToken.None);

            Assert.Equal("Hallo Welt", message.Message);
        }
Exemple #6
0
 public MessageAdapter(ISettings settings, PersistenceCommandFactory persistenceCommandFactory)
 {
     _settings = settings;
     _persistenceCommandFactory = persistenceCommandFactory;
 }