public async Task EditPost_SendsValidatePhoneNumberRequestWithCorrectData_WhenModelStateIsValid_AndEventIsNotNull_AndUserIsOrgAdmin() { const int eventId = 1; const int orgId = 1; var model = new EditRequestViewModel { EventId = eventId, Phone = "111-111-1111" }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }); mediator.Setup(mock => mock.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = true, PhoneNumberE164 = model.Phone }); var sut = new RequestController(mediator.Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.Edit(model); mediator.Verify(x => x.SendAsync(It.Is <ValidatePhoneNumberRequestCommand>(y => y.PhoneNumber == model.Phone && y.ValidateType)), Times.Once); }
public async Task EditPost_ReturnsCorrectViewAndViewModel_WhenPhoneNumberValidationFails() { const int eventId = 1; const int orgId = 1; var model = new EditRequestViewModel { EventId = eventId, Phone = "111-111-1111" }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }); mediator.Setup(mock => mock.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = false }); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableEventQuery>())).ReturnsAsync(new FakeAuthorizableEvent(false, false, false, true)); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableRequestQuery>())).ReturnsAsync(new FakeAuthorizableRequest(false, true, false, false)); var sut = new RequestController(mediator.Object); var result = await sut.Edit(model) as ViewResult; Assert.Equal(result.ViewName, "Edit"); Assert.IsType <EditRequestViewModel>(result.Model); }
public async Task EditPost_SendsEditRequestCommandWithCorrrectModel_WhenModelStateIsValid_AndEventIsNotNull_AndUserIsAuthorized_AndPhoneNumberIsValid() { const int eventId = 1; const int orgId = 1; var viewModel = new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(viewModel); mediator.Setup(mock => mock.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = true }); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableEventQuery>())).ReturnsAsync(new FakeAuthorizableEvent(false, false, false, true)); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableRequestQuery>())).ReturnsAsync(new FakeAuthorizableRequest(false, true, false, false)); var sut = new RequestController(mediator.Object); var model = new EditRequestViewModel { EventId = eventId }; await sut.Edit(model); mediator.Verify(x => x.SendAsync(It.Is <EditRequestCommand>(y => y.RequestModel == model)), Times.Once); }
public async Task EditPost_SendsEditRequestCommand_WhenEventIsNotNullAndUserIsOrgAdmin() { const int eventId = 1; const int orgId = 1; var viewModel = new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(viewModel); EditRequestCommand editRequestCommand = null; // will be assigned from the Moq callback mockMediator.Setup(x => x.SendAsync(It.IsAny <EditRequestCommand>())).ReturnsAsync(Guid.NewGuid()).Callback <EditRequestCommand>(cmd => editRequestCommand = cmd).Verifiable(); var sut = new RequestController(mockMediator.Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.Edit(new EditRequestViewModel { EventId = eventId }); mockMediator.Verify(x => x.SendAsync(It.IsAny <EditRequestCommand>()), Times.Once); editRequestCommand.RequestModel.EventId.ShouldBe(eventId); }
public async Task EditPost_AddsCorrectErrorToModelState_WhenPhoneNumberValidationFails() { const int eventId = 1; const int orgId = 1; var model = new EditRequestViewModel { EventId = eventId, Phone = "111-111-1111" }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }); mediator.Setup(mock => mock.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = false }); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableEventQuery>())).ReturnsAsync(new FakeAuthorizableEvent(false, false, false, true)); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableRequestQuery>())).ReturnsAsync(new FakeAuthorizableRequest(false, true, false, false)); var sut = new RequestController(mediator.Object); var result = await sut.Edit(model) as ViewResult; Assert.Equal(result.ViewData.ModelState.ErrorCount, 1); Assert.Equal(result.ViewData.ModelState[nameof(model.Phone)].ValidationState, ModelValidationState.Invalid); Assert.Equal(result.ViewData.ModelState[nameof(model.Phone)].Errors.Single().ErrorMessage, "Unable to validate phone number"); }
public async Task EditPost_ReturnsRedirectToAction_WhenEventIsNotNullAndUserIsOrgAdmin() { const int eventId = 1; const int orgId = 1; var viewModel = new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(viewModel); mockMediator.Setup(x => x.SendAsync(It.IsAny <EditRequestCommand>())).ReturnsAsync(Guid.NewGuid()); var sut = new RequestController(mockMediator.Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.Edit(new EditRequestViewModel { EventId = eventId }); var objResult = Assert.IsType <RedirectToActionResult>(result); objResult.ActionName.ShouldBe("Requests"); objResult.ControllerName.ShouldBe("Event"); }
public async Task EditGet_SendsEditRequestQuery_WithCorrectArguments() { var eventId = Guid.NewGuid(); var mediator = new Mock <IMediator>(); var sut = new RequestController(mediator.Object); await sut.Edit(eventId); mediator.Verify(x => x.SendAsync(It.Is <EditRequestQuery>(y => y.Id == eventId))); }
public async Task EditGet_ReturnsNotFound_WhenEditRequestQueryReturnsNull() { var eventId = Guid.NewGuid(); var mediator = new Mock <IMediator>(); var sut = new RequestController(mediator.Object); var result = await sut.Edit(eventId); Assert.IsType <NotFoundResult>(result); }
public async Task EditPost_ReturnsBadRequest_WhenEventSummaryQueryReturnsNull() { var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(null).Verifiable(); var sut = new RequestController(mediator.Object); var result = await sut.Edit(new EditRequestViewModel { EventId = 1 }); Assert.IsType <BadRequestObjectResult>(result); }
public async Task EditPost_SendsEventSummaryQuery_WithCorrectArguments() { var viewModel = new EditRequestViewModel { EventId = 1 }; var mediator = new Mock <IMediator>(); var sut = new RequestController(mediator.Object); await sut.Edit(viewModel); mediator.Verify(x => x.SendAsync(It.Is <EventSummaryQuery>(y => y.EventId == viewModel.EventId))); }
public async Task EditGet_ReturnsForbidResult_WhenUserIsNotAuthorized() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EditRequestQuery>())).ReturnsAsync(new EditRequestViewModel()); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableRequestQuery>())).ReturnsAsync(new FakeAuthorizableRequest(false, false, false, false)); var sut = new RequestController(mediator.Object); var result = await sut.Edit(Guid.NewGuid()); Assert.IsType <ForbidResult>(result); }
public async Task EditPost_ReturnsBadRequest_WhenEventSummaryQueryReturnsNull() { var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(null).Verifiable(); var sut = new RequestController(mockMediator.Object); var result = await sut.Edit(new EditRequestViewModel { EventId = 1 }); var objResult = Assert.IsType <BadRequestObjectResult>(result); objResult.StatusCode.ShouldNotBeNull(); objResult.StatusCode.Value.ShouldBe(StatusCodes.Status400BadRequest); }
public async Task EditGet_ReturnsHttpUnauthorizedResult_WhenUserIsNotOrgAdmin() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EditRequestQuery>())).ReturnsAsync(new EditRequestViewModel()); var sut = new RequestController(mediator.Object); sut.MakeUserNotAnOrgAdmin(); var result = await sut.Edit(Guid.NewGuid()); Assert.IsType <UnauthorizedResult>(result); }
public async Task EditPost_ReturnsHttpUnauthorizedResult_WhenUserIsNotOrgAdmin() { var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel()); var sut = new RequestController(mediator.Object); sut.MakeUserNotAnOrgAdmin(); var result = await sut.Edit(new EditRequestViewModel { EventId = 1 }); Assert.IsType <UnauthorizedResult>(result); }
public async Task EditGet_ReturnsViewResult_WhenRequestIsFoundAndUserIsAuthorized() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EditRequestQuery>())).ReturnsAsync(new EditRequestViewModel { Name = "test" }); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableRequestQuery>())).ReturnsAsync(new FakeAuthorizableRequest(true, false, false, false)); var sut = new RequestController(mediator.Object); var result = await sut.Edit(Guid.NewGuid()) as ViewResult; result.ViewName.ShouldBe("Edit"); result.ViewData["Title"].ShouldBe("Edit test"); }
public async Task EditGet_ReturnsNotFound_WhenEditRequestQueryReturnsNull() { var eventId = Guid.NewGuid(); EditRequestQuery eventSummaryQuery = null; // will be assigned from the Moq callback var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <EditRequestQuery>())).ReturnsAsync(null).Callback <EditRequestQuery>(cmd => eventSummaryQuery = cmd).Verifiable(); var sut = new RequestController(mockMediator.Object); var result = await sut.Edit(eventId); var objResult = Assert.IsType <NotFoundResult>(result); objResult.StatusCode.ShouldBe(StatusCodes.Status404NotFound); }
public async Task EditGet_SendsEditRequestQueryQuery_WithCorrectArguments() { var eventId = Guid.NewGuid(); EditRequestQuery eventSummaryQuery = null; // will be assigned from the Moq callback var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <EditRequestQuery>())).ReturnsAsync(null).Callback <EditRequestQuery>(cmd => eventSummaryQuery = cmd).Verifiable(); var sut = new RequestController(mockMediator.Object); await sut.Edit(eventId); mockMediator.Verify(x => x.SendAsync(It.IsAny <EditRequestQuery>()), Times.Once); eventSummaryQuery.Id.ShouldBe(eventId); }
public async Task EditGet_ReturnsViewResult_WhenRequestIsFoundAndUserIsOrgAdmin() { const int orgId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EditRequestQuery>())).ReturnsAsync(new EditRequestViewModel { OrganizationId = orgId, Name = "test" }); var sut = new RequestController(mediator.Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.Edit(Guid.NewGuid()) as ViewResult; result.ViewName.ShouldBe("Edit"); result.ViewData["Title"].ShouldBe("Edit test"); }
public void CanApproveDraftRequest() { //Act _requestController.ApproveRequest(1); var noCommdodityOrBeneficiary = _requestController.CheckBeneficiaryNoAndCommodity(1); // var reqStatus = regionalRequests[0].Status; var resut = (ViewResult)_requestController.Edit(1); //Assert Assert.IsInstanceOf <RegionalRequest>(resut.Model); Assert.IsFalse(noCommdodityOrBeneficiary); //Assert.AreEqual((int)RegionalRequestStatus.Approved, ((RegionalRequest)resut.Model).Status); }
public async Task EditPost_ReturnsViewResult_WhenModelStateIsNotValid() { const int eventId = 1; const int orgId = 1; var viewModel = new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(viewModel); var sut = new RequestController(mediator.Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); sut.ModelState.AddModelError("test", "test error"); var result = await sut.Edit(new EditRequestViewModel { EventId = eventId }) as ViewResult; result.ViewName.ShouldBe("Edit"); }
public void ReviewControllerAcceptReturnsView_ExpectedSuccess() { // Arrange Request request = new Request { RequestId = 7, RequestStatusId = 4, PassengerId = 3, PostId = 10 }; var _mock = new Mock <IRequestLogic>(); _mock.Setup(x => x.GetSingleRequest(It.IsAny <Int32>())).ReturnsAsync(GetRequest()); var controllerUnderTest = new RequestController(_context, _mock.Object); // Act var result = controllerUnderTest.Edit(1, request); // Assert var viewResult = Assert.IsType <Task <IActionResult> >(result); }
public async Task EditPost_ReturnsRedirectToActionWithTheCorrectAcitonAndControllerName_WhenModelStateIsValid_AndEventIsNotNull_AndUserIsAuthorized_AndPhoneNumberIsValid() { const int eventId = 1; const int orgId = 1; var viewModel = new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(viewModel); mediator.Setup(mock => mock.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = true }); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableEventQuery>())).ReturnsAsync(new FakeAuthorizableEvent(false, false, false, true)); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableRequestQuery>())).ReturnsAsync(new FakeAuthorizableRequest(false, true, false, false)); var sut = new RequestController(mediator.Object); var result = await sut.Edit(new EditRequestViewModel { EventId = eventId }) as RedirectToActionResult; result.ActionName.ShouldBe("Requests"); result.ControllerName.ShouldBe("Event"); }