Пример #1
0
        public async Task ReturnsBadRequestIfPokemonDoesNotExist(string name)
        {
            DescriptionService
            .Setup(s => s.GetShakespeareanDescription(It.IsAny <string>()))
            .ReturnsAsync(new Monad <string>(new KeyNotFoundException()));

            var result = await Controller.GetShakespeareanDescription(name);

            Assert.IsType <BadRequestObjectResult>(result);
        }
Пример #2
0
        public async Task ThrowsOnIllegalResult()
        {
            DescriptionService
            .Setup(s => s.GetShakespeareanDescription(It.IsAny <string>()))
            .ReturnsAsync(new Monad <string>(result: null !));

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(
                async() => await Controller.GetShakespeareanDescription("mew"));

            Assert.Null(exception.InnerException);
        }
Пример #3
0
        public async Task ReturnsTooManyRequestsIfAnyLimitIsExceeded(string name)
        {
            DescriptionService
            .Setup(s => s.GetShakespeareanDescription(It.IsAny <string>()))
            .ReturnsAsync(new Monad <string>(new LimitExceededException()));

            var result = await Controller.GetShakespeareanDescription(name);

            var statusCodeResult = Assert.IsType <StatusCodeResult>(result);

            Assert.Equal(StatusCodes.Status429TooManyRequests, statusCodeResult.StatusCode);
        }
Пример #4
0
        public async Task ReturnedNameMatchesParameter(string name, string description)
        {
            DescriptionService
            .Setup(s => s.GetShakespeareanDescription(It.IsAny <string>()))
            .ReturnsAsync(new Monad <string>(description));

            var result = await Controller.GetShakespeareanDescription(name);

            var okResult = Assert.IsType <OkObjectResult>(result);
            var response = Assert.IsType <PokemonResponse>(okResult.Value);

            Assert.Equal(name, response.Name);
        }
Пример #5
0
        public async Task ThrowsOnUnexpectedError()
        {
            var expected = new ArgumentException();

            DescriptionService
            .Setup(s => s.GetShakespeareanDescription(It.IsAny <string>()))
            .ReturnsAsync(new Monad <string>(expected));

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(
                async() => await Controller.GetShakespeareanDescription("mew"));

            Assert.Same(expected, exception.InnerException);
        }
Пример #6
0
        public async Task PokemonNameIsAlwaysPassedLowercase(string name)
        {
            DescriptionService
#pragma warning disable CA1308 // We actually want ToLowerInvariant
            .Setup(s => s.GetShakespeareanDescription(name.ToLowerInvariant()))
#pragma warning restore CA1308
            .ReturnsAsync(new Monad <string>("Dummy"))
            .Verifiable();

            var result = await Controller.GetShakespeareanDescription(name);

            DescriptionService.VerifyAll();
        }