Beispiel #1
0
        public async void OkResultWhenLocationFound()
        {
            // Arrange
            var mockLogger    = new Mock <ILogger <LocationSearchController> >();
            var mockApiClient = new Mock <IWeatherApi>();

            mockApiClient.Setup(c => c.GetLocation(It.IsAny <int>())).ReturnsAsync(
                new LocationResult {
                Title = "Manchester", WoeId = 1234
            }
                );
            var mockLocationLogger = new Mock <ILocationLogger>();
            var controller         = new LocationSearchController(mockLogger.Object, mockApiClient.Object, mockLocationLogger.Object);

            // Act
            var result = await controller.GetLocation(1234);

            var okResult = result as ObjectResult;

            // Assert
            Assert.NotNull(okResult);
            Assert.True(okResult is OkObjectResult);
            Assert.IsType <LocationResult>(okResult.Value);
            var location = okResult.Value as LocationResult;

            Assert.Equal(1234, location.WoeId);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);
        }
Beispiel #2
0
        public async void OkResultWhenPassedASearchLocation()
        {
            // Arrange
            var mockLogger    = new Mock <ILogger <LocationSearchController> >();
            var mockApiClient = new Mock <IWeatherApi>();

            mockApiClient.Setup(c => c.LocationSearch(It.IsAny <string>())).ReturnsAsync(
                new List <LocationSearchResult> {
                new LocationSearchResult {
                    Title = "Manchester", WoeId = 1234
                }
            }
                );
            var mockLocationLogger = new Mock <ILocationLogger>();
            var controller         = new LocationSearchController(mockLogger.Object, mockApiClient.Object, mockLocationLogger.Object);

            // Act
            var result = await controller.Search("Manchester");

            var okResult = result as ObjectResult;

            // Assert
            Assert.NotNull(okResult);
            Assert.True(okResult is OkObjectResult);
            Assert.IsType <List <LocationSearchResult> >(okResult.Value);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);
        }
Beispiel #3
0
        public async void BadRequestWhenNotPassedASearchLocation()
        {
            // Arrange
            var mockLogger         = new Mock <ILogger <LocationSearchController> >();
            var mockApiClient      = new Mock <IWeatherApi>();
            var mockLocationLogger = new Mock <ILocationLogger>();
            var controller         = new LocationSearchController(mockLogger.Object, mockApiClient.Object, mockLocationLogger.Object);

            // Act
            var result = await controller.Search(null);

            var badRequestResult = result as BadRequestResult;

            // Assert
            Assert.NotNull(badRequestResult);
            Assert.Equal(StatusCodes.Status400BadRequest, badRequestResult.StatusCode);
        }
Beispiel #4
0
        public async void NoContentWhenSearchLocationNotFound()
        {
            // Arrange
            var mockLogger    = new Mock <ILogger <LocationSearchController> >();
            var mockApiClient = new Mock <IWeatherApi>();

            mockApiClient.Setup(c => c.LocationSearch(It.IsAny <string>())).ReturnsAsync(default(List <LocationSearchResult>));
            var mockLocationLogger = new Mock <ILocationLogger>();
            var controller         = new LocationSearchController(mockLogger.Object, mockApiClient.Object, mockLocationLogger.Object);

            // Act
            var result = await controller.Search("Nowhere");

            var noContentResult = result as NoContentResult;

            // Assert
            Assert.NotNull(noContentResult);
            Assert.Equal(StatusCodes.Status204NoContent, noContentResult.StatusCode);
        }
Beispiel #5
0
        public async void BadRequestWhenLocationIdIsZero()
        {
            // Arrange
            var mockLogger    = new Mock <ILogger <LocationSearchController> >();
            var mockApiClient = new Mock <IWeatherApi>();

            mockApiClient.Setup(c => c.GetLocation(It.IsAny <int>())).ReturnsAsync(
                new LocationResult {
                Title = "Manchester", WoeId = 1234
            }
                );
            var mockLocationLogger = new Mock <ILocationLogger>();
            var controller         = new LocationSearchController(mockLogger.Object, mockApiClient.Object, mockLocationLogger.Object);

            // Act
            var result = await controller.GetLocation(0);

            var badRequestResult = result as BadRequestResult;

            // Assert
            Assert.NotNull(badRequestResult);
            Assert.Equal(StatusCodes.Status400BadRequest, badRequestResult.StatusCode);
        }