Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
 public virtual async Task <FinalTone> MapAsync(string comment, DominantTone dominantTone)
 {
     return(await Task.FromResult(new FinalTone
     {
         Comment = comment,
         Name = dominantTone.Name,
         Score = dominantTone.Score
     }));
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 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> >());
 }