public DominantTone Create(IEnumerable <Tone> tones) { var(name, score) = GetDominantToneValuePair(tones); var dominantTone = new DominantTone { Name = name, Score = (decimal)score }; switch (name) { case "Joy": dominantTone.IsHappy = true; break; case "Sad": dominantTone.IsSad = true; break; default: dominantTone.IsOther = true; break; } return(dominantTone); }
public async Task <FinalTone> MapAsync(string comment, DominantTone dominantTone) { var finalTone = await _toneStrategy.MapAsync(comment, dominantTone); finalTone.Joke = "You don't need a joke, you're happy enough!"; return(finalTone); }
public virtual async Task <FinalTone> MapAsync(string comment, DominantTone dominantTone) { return(await Task.FromResult(new FinalTone { Comment = comment, Name = dominantTone.Name, Score = dominantTone.Score })); }
public async Task <FinalTone> MapAsync(string comment, DominantTone dominantTone) { var jokes = await _toneStrategy.JokeService.Get(); var jokeToSend = jokes.First(); var finalTone = await _toneStrategy.MapAsync(comment, dominantTone); finalTone.Joke = $"We think you may still fancy a joke: {jokeToSend.Setup + " " + jokeToSend.Punchline}"; return(finalTone); }
public async Task SendRequest_HappyComment_DoesNotCallJokeService() { var request = CreateHttpRequest("this is great"); var dominantTone = new DominantTone { IsHappy = true, Name = "Joy", Score = (decimal)0.75 }; _dominantToneMapper.Setup(_ => _.Create(It.IsAny <IEnumerable <Tone> >())).Returns(dominantTone); _toneService.Setup(_ => _.GetTonesAsync(It.IsAny <Comment>())).ReturnsAsync(It.IsAny <IEnumerable <Tone> >()); var result = (OkObjectResult)await _toneAnalyzerFunction.Run(request, _mockAsyncCollector.Object); var resultValue = (FinalTone)result.Value; Assert.Equal("Joy", resultValue.Name); _jokeService.Verify(_ => _.Get(), Times.Never); }
public async Task SendRequest_NeitherHappyOrSadComment_ReturnOtherToneWithJoke() { var request = CreateHttpRequest("i feel analytical"); var dominantTone = new DominantTone { IsOther = true, Name = "Analytical", Score = (decimal)0.75 }; var jokes = CreateJokes(); CreateSetup(dominantTone); _jokeService.Setup(_ => _.Get()).ReturnsAsync(jokes); var result = (OkObjectResult)await _toneAnalyzerFunction.Run(request, _mockAsyncCollector.Object); var resultValue = (FinalTone)result.Value; Assert.Equal("Analytical", resultValue.Name); Assert.Equal($"We think you may still fancy a joke: {jokes.First().Setup} {jokes.First().Punchline}", resultValue.Joke); }
public async Task SendRequest_SadComment_ReturnSadToneWithJoke() { var request = CreateHttpRequest("im sad"); var dominantTone = new DominantTone { IsSad = true, Name = "Sad", Score = (decimal)0.75 }; var jokes = CreateJokes(); _dominantToneMapper.Setup(_ => _.Create(It.IsAny <IEnumerable <Tone> >())).Returns(dominantTone); _toneService.Setup(_ => _.GetTonesAsync(It.IsAny <Comment>())).ReturnsAsync(It.IsAny <IEnumerable <Tone> >()); _jokeService.Setup(_ => _.Get()).ReturnsAsync(jokes); var result = (OkObjectResult)await _toneAnalyzerFunction.Run(request, _mockAsyncCollector.Object); var resultValue = (FinalTone)result.Value; Assert.Equal("Sad", resultValue.Name); Assert.Equal($"To cheer you up here is a joke: {jokes.First().Setup} {jokes.First().Punchline}", resultValue.Joke); }
private void CreateSetup(DominantTone dominantTone) { _dominantToneMapper.Setup(_ => _.Create(It.IsAny <IEnumerable <Tone> >())).Returns(dominantTone); _toneService.Setup(_ => _.GetTonesAsync(It.IsAny <Comment>())).ReturnsAsync(It.IsAny <IEnumerable <Tone> >()); }