public async Task TheHandleMethodShouldReturnErrorNoticeWhenNoMenuisPresentAsync() { // Act await commandHandler.HandleAsync(null, string.Empty, CancellationToken.None); // Assert slackbot.Received().SendMessage(string.Empty, "I don't know which meals are being served today!"); }
public async Task TheHandleMethodShouldReturnErrorNoticeWhenNoMenuisPresentAsync() { // Act await commandHandler.HandleAsync(null, string.Empty, default); // Assert slackbot.Received().SendMessage(string.Empty, "I don't know which meals are being served the day after tomorrow!"); }
public async Task TheHandleMethodShouldNotCareAboutCaseSensitivityAsync(string commandName) { // Act await commandHandler.HandleAsync(commandName, string.Empty, default); // Assert slackbot.Received().SendMessage(string.Empty, "A fake command"); }
public async Task TheHandleMethodShouldReturnNoticeIfNothingIsFoundAsync() { // Act await commandHandler.HandleAsync(string.Empty, string.Empty, default); // Assert slackbot.Received().SendMessage(string.Empty, "I don't know which meals are being served this week!"); }
public async Task TheHandleMethodShouldAddResponseAsync(string regex, string response) { // Act await commandHandler.HandleAsync($"add {regex} {response}", string.Empty, default); // Assert await chatResponseRepository.Received().AddAsync(regex, response); slackbot.Received().SendMessage(string.Empty, "I added your chat response to my AI."); }
public async Task TheHandleMethodShouldClearExistingMenuAsync() { // Arrange menuRepository.DeleteOneAsync(Arg.Any <Expression <Func <Menu, bool> > >(), CancellationToken.None).Returns(1); // Act await commandHandler.HandleAsync($"{DateTime.Today:ddMMyyyy}", string.Empty, default); // Assert slackbot.Received().SendMessage(string.Empty, $"I cleared the menu on *{DateTime.Today:dd.MM.yyyy}*."); }
public async Task TheHandleMethodShouldReturnAMaxiumumOfSevenDaysAsync() { // Act await commandHandler.HandleAsync("10", string.Empty, default); // Assert slackbot.Received().SendMessage(string.Empty, "I don't know which meals are being served the next 7 days!"); }
public async Task TheHandleMethodShouldOnlyReturnMenusAsync() { // Arrange menuRepository.ToListAsync(Arg.Any <FilterDefinition <Menu> >(), CancellationToken.None).Returns( new[] { new Menu { Date = DateTime.Today.ToString("yyyyMMdd"), Meals = new[] { "Foo" }, }, }.ToList()); // Act await commandHandler.HandleAsync("Foo", string.Empty, default); // Assert slackbot.Received().SendMessage(string.Empty, $"On *{DateTime.Today:dd.MM.yyyy}* the meals are:{Environment.NewLine}1. Foo"); }
public async Task TheHandleMethodShouldAcceptWellFormedUrlsFromSlackAsync() { using (var httpTest = new HttpTest()) { // Arrange var importData = new[] { new { date = "20010101", meals = new[] { "foo", "bar" } } }; httpTest.RespondWithJson(importData); // Act await commandHandler.HandleAsync("<https://api.myjson.com/bins/1dekrb>", string.Empty, default); // Assert httpTest.ShouldHaveCalled("https://api.myjson.com/bins/1dekrb"); slackbot.Received().SendMessage(string.Empty, "I imported 1 menus."); await menuRepository.Received().InsertOneAsync( Arg.Is <Menu>( x => x.Date == "20010101" && x.Meals[0] == "foo" && x.Meals[1] == "bar"), CancellationToken.None); } }
public async Task TheHandleMethodShouldAddMealToExistingMenuAsync() { // Arrange menuRepository.SingleOrDefaultAsync(Arg.Any <Expression <Func <Menu, bool> > >(), CancellationToken.None).Returns( new Menu { Date = DateTime.Today.ToString("yyyyMMdd"), Meals = new[] { "Foo" }, }); // Act await commandHandler.HandleAsync($"{DateTime.Today:ddMMyyyy} Bar", string.Empty, default); // Assert await menuRepository.Received().ReplaceOneAsync( Arg.Any <Expression <Func <Menu, bool> > >(), Arg.Is <Menu>( x => x.Meals.Contains("Foo") && x.Meals.Contains("Bar"))); slackbot.Received().SendMessage(string.Empty, $"I added _Bar_ to the menu on *{DateTime.Today:dd.MM.yyyy}*."); }