public async Task TestIsRelevant() { userRepositoryMock.Setup(u => u.IsUserInDbAsync(It.IsAny <ulong>())).Returns(() => Task.FromResult(false)); userRepositoryMock.Setup(u => u.AddUserToDbAsync(It.IsAny <ulong>())).Returns(() => Task.CompletedTask); userRepositoryMock.Setup(u => u.IsAllowedAsync(It.IsAny <string>(), It.IsAny <ulong>())).Returns(() => Task.FromResult(true)); msgChannelMock.Setup(m => m.WriteToAsync(It.IsAny <CommandResponse>())).Returns(Task.CompletedTask); Message message = new Message(0, "test", msgChannelMock.Object); var botService = new BotService(ConfigureServices()); await botService.InitAsync().ConfigureAwait(false); await botService.RunAsync().ConfigureAwait(false); MessageReceivedEventArgs eventArgs = new MessageReceivedEventArgs(null); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); eventArgs = new MessageReceivedEventArgs(message); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); AppSettings.IsTesting = true; AppSettings.Configuration = "test"; eventArgs = new MessageReceivedEventArgs(message); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); AppSettings.IsTesting = false; message = new Message(1, "test", msgChannelMock.Object); eventArgs = new MessageReceivedEventArgs(message); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); }
public async Task TestInitRunAndShutDownBotService() { var botService = new BotService(ConfigureServices()); await botService.InitAsync().ConfigureAwait(false); await botService.RunAsync().ConfigureAwait(false); botService.IsRunning.Should().BeTrue(); await botService.ShutdownAsync().ConfigureAwait(false); botService.IsRunning.Should().BeFalse(); }
public async Task TestStartupProgressMessageAndShutDown() { CommandHandler.Clear(); CommandHandler.Register(new CommandDefinition(typeof(PingCommand), new List <string>() { "ping" })); Assert.True(CommandHandler.Count == 1); ConfigureServicesForTests(); BotService botService = new BotService(msgHandlerMock.Object); await botService.InitAsync().ConfigureAwait(false); await botService.RunAsync().ConfigureAwait(false); Assert.True(botService.IsRunning); msgHandlerMock.Verify(m => m.InitAsync(), Times.Once); msgHandlerMock.Verify(m => m.RunAsync(), Times.Once); bool isPublic = false; CommandResponse commandResponse = new CommandResponse(CommandStatus.Error, ""); Mock <IMessageChannel> msgChannelMock = new Mock <IMessageChannel>(MockBehavior.Strict); msgChannelMock.SetupGet(m => m.IsPrivate).Returns(true); msgChannelMock.Setup(m => m.WriteToAsync(It.IsAny <bool>(), It.IsAny <CommandResponse>())) .Callback <bool, CommandResponse>((b, cr) => { isPublic = b; commandResponse = cr; }) .Returns(Task.CompletedTask); Message message = new Message(0, "ping", msgChannelMock.Object); MessageReceivedEventArgs eventArgs = new MessageReceivedEventArgs(message); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); message = new Message(0, "test", msgChannelMock.Object); eventArgs = new MessageReceivedEventArgs(message); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); await Task.Delay(1000).ConfigureAwait(false); Assert.True(isPublic); Assert.Equal(CommandStatus.Success, commandResponse.Status); Assert.Equal("Pong !", commandResponse.Content); await botService.ShutdownAsync().ConfigureAwait(false); Assert.False(botService.IsRunning); msgHandlerMock.Verify(m => m.ShutdownAsync(), Times.Once); }
public async Task TestInitRunAndShutDownBotService() { var msgHandler = msgHandlerMock.Object; var botService = new BotService(msgHandler); await botService.InitAsync().ConfigureAwait(false); await botService.RunAsync().ConfigureAwait(false); Assert.True(botService.IsRunning); await botService.ShutdownAsync().ConfigureAwait(false); Assert.False(botService.IsRunning); }
public async Task TestStartupProgressMessageAndShutDown() { Program.ServiceProvider = Program.ConfigureServices(); userRepositoryMock.Setup(u => u.IsUserInDbAsync(It.IsAny <ulong>())).Returns(() => Task.FromResult(true)); userRepositoryMock.Setup(u => u.AddUserToDbAsync(It.IsAny <ulong>())).Returns(() => Task.CompletedTask); userRepositoryMock.Setup(u => u.IsAllowedAsync(It.IsAny <string>(), It.IsAny <ulong>())).Returns(() => Task.FromResult(true)); CommandHandler.Clear(); CommandHandler.Register(new CommandDefinition(typeof(PingCommand), new List <string>() { "ping" })); CommandHandler.Count.Should().Be(1); var botService = new BotService(ConfigureServices()); await botService.InitAsync().ConfigureAwait(false); await botService.RunAsync().ConfigureAwait(false); botService.IsRunning.Should().BeTrue(); msgHandlerMock.Verify(m => m.InitAsync(), Times.Once); msgHandlerMock.Verify(m => m.RunAsync(), Times.Once); CommandResponse commandResponse = new CommandResponse(CommandStatus.Error, ""); msgChannelMock.Setup(m => m.ReplyToAsync(It.IsAny <Message>(), It.IsAny <CommandResponse>())) .Callback <Message, CommandResponse>((m, cr) => { commandResponse = cr; }) .Returns(Task.CompletedTask); Message message = new Message(0, "ping", msgChannelMock.Object); MessageReceivedEventArgs eventArgs = new MessageReceivedEventArgs(message); msgHandlerMock.Raise(m => m.MessageReceived += null, this, eventArgs); commandResponse.Status.Should().Be(CommandStatus.Success); commandResponse.Content.Should().Be("Pong !"); await Task.Delay(1000).ConfigureAwait(false); await botService.ShutdownAsync().ConfigureAwait(false); botService.IsRunning.Should().BeFalse(); msgHandlerMock.Verify(m => m.ShutdownAsync(), Times.Once); }