Beispiel #1
0
        public async Task Then_The_Mediator_Query_Is_Handled_And_Data_Returned(
            string postCode,
            string route,
            uint distance,
            GetAdvertsQueryResult queryResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] AdvertsController controller)
        {
            //Arrange
            mediator.Setup(x => x.Send(It.Is <GetAdvertsQuery>(c =>
                                                               c.Distance.Equals(distance) &&
                                                               c.Postcode.Equals(postCode) &&
                                                               c.Route.Equals(route)
                                                               ), CancellationToken.None))
            .ReturnsAsync(queryResult);

            //Act
            var controllerResult = await controller.GetAdverts(postCode, route, distance) as ObjectResult;

            //Assert
            Assert.IsNotNull(controllerResult);
            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as GetAdvertsResponse;

            Assert.IsNotNull(model);
            model.Should().BeEquivalentTo((GetAdvertsResponse)queryResult);
        }
Beispiel #2
0
        public async Task Then_If_There_Is_An_Error_Then_Internal_Server_Error_Response_Returned(
            string postCode,
            string route,
            uint distance,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] AdvertsController controller)
        {
            //Arrange
            mediator.Setup(x => x.Send(It.IsAny <GetAdvertsQuery>(), CancellationToken.None))
            .ThrowsAsync(new Exception());

            //Act
            var controllerResult = await controller.GetAdverts(postCode, route, distance) as StatusCodeResult;

            //Assert
            Assert.IsNotNull(controllerResult);
            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.InternalServerError);
        }