public void And_Employer_Adding_Apprentices_Then_Redirect_To_Add_Apprentice( AssignViewModel viewModel, [Greedy] CohortController controller) { var expectedRouteValues = new RouteValueDictionary(new { viewModel.AccountHashedId, viewModel.AccountLegalEntityHashedId, viewModel.ReservationId, viewModel.StartMonthYear, viewModel.CourseCode, viewModel.ProviderId, viewModel.TransferSenderId, viewModel.EncodedPledgeApplicationId, Origin = viewModel.ReservationId.HasValue ? Origin.Reservations : Origin.Apprentices }); viewModel.WhoIsAddingApprentices = WhoIsAddingApprentices.Employer; var result = controller.Assign(viewModel) as RedirectToActionResult; result.Should().NotBeNull(); result.ActionName.Should().Be("Apprentice"); result.ControllerName.Should().Be("Cohort"); result.RouteValues.Should().BeEquivalentTo(expectedRouteValues); }
public CreateCohortWithOtherPartyControllerTestFixture() { var autoFixture = new Fixture(); CommitmentsApiClientMock = new Mock <ICommitmentsApiClient>(); ErrorDetail = new ErrorDetail("field1", "error message"); MapperResult = new CreateCohortWithOtherPartyRequest(); ModelMapperMock = new Mock <IModelMapper>(); ModelMapperMock .Setup(x => x.Map <CreateCohortWithOtherPartyRequest>(It.IsAny <object>())) .ReturnsAsync(() => MapperResult); MessageViewModel = autoFixture.Create <MessageViewModel>(); ModelMapperMock.Setup(x => x.Map <MessageViewModel>(It.IsAny <object>())) .ReturnsAsync(() => MessageViewModel); Sut = new CohortController( CommitmentsApiClientMock.Object, Mock.Of <ILogger <CohortController> >(), Mock.Of <ILinkGenerator>(), ModelMapperMock.Object, Mock.Of <IAuthorizationService>(), Mock.Of <IEncodingService>() ); }
public WhenPostingDetailsFixture() { var autoFixture = new Fixture(); var modelMapper = new Mock <IModelMapper>(); _commitmentsApiClient = new Mock <ICommitmentsApiClient>(); var linkGenerator = new Mock <ILinkGenerator>(); _cohortId = autoFixture.Create <long>(); _accountHashedId = autoFixture.Create <string>(); _accountLegalEntityHashedId = autoFixture.Create <string>(); _viewModel = new DetailsViewModel { CohortId = _cohortId, AccountHashedId = _accountHashedId, AccountLegalEntityHashedId = _accountLegalEntityHashedId }; _sendCohortApiRequest = new SendCohortRequest(); _approveCohortApiRequest = new ApproveCohortRequest(); _viewEmployerAgreementRequest = new ViewEmployerAgreementRequest { AccountHashedId = autoFixture.Create <string>(), AgreementHashedId = autoFixture.Create <string>() }; modelMapper.Setup(x => x.Map <SendCohortRequest>(It.Is <DetailsViewModel>(vm => vm == _viewModel))) .ReturnsAsync(_sendCohortApiRequest); modelMapper.Setup(x => x.Map <ApproveCohortRequest>(It.Is <DetailsViewModel>(vm => vm == _viewModel))) .ReturnsAsync(_approveCohortApiRequest); modelMapper.Setup(x => x.Map <ViewEmployerAgreementRequest>(It.Is <DetailsViewModel>(vm => vm == _viewModel))) .ReturnsAsync(_viewEmployerAgreementRequest); _commitmentsApiClient.Setup(x => x.SendCohort(It.Is <long>(c => c == _cohortId), It.Is <SendCohortRequest>(r => r == _sendCohortApiRequest), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _commitmentsApiClient.Setup(x => x.ApproveCohort(It.Is <long>(c => c == _cohortId), It.Is <ApproveCohortRequest>(r => r == _approveCohortApiRequest), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _linkGeneratorResult = autoFixture.Create <string>(); linkGenerator.Setup(x => x.AccountsLink(It.IsAny <string>())) .Returns(_linkGeneratorResult); linkGenerator.Setup(x => x.CommitmentsLink(It.IsAny <string>())) .Returns(_linkGeneratorResult); _controller = new CohortController(_commitmentsApiClient.Object, Mock.Of <ILogger <CohortController> >(), linkGenerator.Object, modelMapper.Object, Mock.Of <IAuthorizationService>()); }
public async Task Then_Returns_View_With_Correct_ViewModel( IndexRequest request, IndexViewModel viewModel, string organisationsLink, string schemesLink, [Frozen] Mock <IModelMapper> mockMapper, [Frozen] Mock <ILinkGenerator> mockLinkGenerator, CohortController controller) { mockMapper .Setup(mapper => mapper.Map <IndexViewModel>(request)) .ReturnsAsync(viewModel); mockLinkGenerator .Setup(generator => generator.AccountsLink($"accounts/{request.AccountHashedId}/agreements")) .Returns(organisationsLink); mockLinkGenerator .Setup(generator => generator.AccountsLink($"accounts/{request.AccountHashedId}/schemes")) .Returns(schemesLink); var result = await controller.Index(request) as ViewResult; result.ViewName.Should().BeNull(); var model = result.Model as IndexViewModel; model.Should().BeSameAs(viewModel); }
public WhenGettingFileUploadStartFixture() { _request = new SelectAddDraftApprenticeshipJourneyRequest { ProviderId = ProviderId }; Sut = new CohortController(Mock.Of <IMediator>(), Mock.Of <IModelMapper>(), Mock.Of <ILinkGenerator>(), Mock.Of <ICommitmentsApiClient>(), Mock.Of <IFeatureTogglesService <ProviderFeatureToggle> >(), Mock.Of <IEncodingService>()); }
public WhenPostingSelectAddDraftApprenticeshipJourneyFixture() { _viewModel = new SelectAddDraftApprenticeshipJourneyViewModel { ProviderId = ProviderId }; Sut = new CohortController(Mock.Of <IMediator>(), Mock.Of <IModelMapper>(), Mock.Of <ILinkGenerator>(), Mock.Of <ICommitmentsApiClient>(), Mock.Of <IFeatureTogglesService <ProviderFeatureToggle> >(), Mock.Of <IEncodingService>()); }
public PostConfirmEmployerFixture() { var fixture = new Fixture(); _providerId = 123; _viewModel = new ConfirmEmployerViewModel { ProviderId = _providerId, EmployerAccountLegalEntityPublicHashedId = "XYZ" }; _commitmentApiClient = new Mock <ICommitmentsApiClient>(); _emptyCohortRequest = fixture.Create <CommitmentsV2.Api.Types.Requests.CreateEmptyCohortRequest>(); _emptyCohortResponse = fixture.Create <CommitmentsV2.Api.Types.Responses.CreateCohortResponse>(); _mockModelMapper = new Mock <IModelMapper>(); _mockModelMapper .Setup(x => x.Map <CommitmentsV2.Api.Types.Requests.CreateEmptyCohortRequest>(_viewModel)) .ReturnsAsync(_emptyCohortRequest); _commitmentApiClient .Setup(x => x.CreateCohort(_emptyCohortRequest, It.IsAny <CancellationToken>())) .ReturnsAsync(_emptyCohortResponse); RedirectUrl = $"{_viewModel.ProviderId}/apprentices/{_emptyCohortResponse.CohortReference}/Details"; _linkGenerator = new Mock <ILinkGenerator>(); _linkGenerator.Setup(x => x.ProviderApprenticeshipServiceLink(RedirectUrl)).Returns(RedirectUrl); Sut = new CohortController(Mock.Of <IMediator>(), _mockModelMapper.Object, _linkGenerator.Object, _commitmentApiClient.Object); }
public async Task ThenRedirectsToConfirmProvider( SelectProviderViewModel viewModel, long providerId, ValidationResult validationResult, [Frozen] Mock <IValidator <SelectProviderViewModel> > mockValidator, [Frozen] Mock <ICommitmentsApiClient> mockApiClient, [Frozen] Mock <IModelMapper> mockMapper, GetProviderResponse apiResponse, ConfirmProviderRequest confirmProviderRequest, [Greedy] CohortController controller) { var actionName = "ConfirmProvider"; viewModel.ProviderId = providerId.ToString(); mockValidator .Setup(x => x.Validate(viewModel)) .Returns(validationResult); mockApiClient .Setup(x => x.GetProvider(long.Parse(viewModel.ProviderId), CancellationToken.None)) .ReturnsAsync(apiResponse); mockMapper .Setup(x => x.Map <ConfirmProviderRequest>(viewModel)) .ReturnsAsync(confirmProviderRequest); var result = await controller.SelectProvider(viewModel) as RedirectToActionResult; Assert.NotNull(result); Assert.AreEqual(actionName, result.ActionName); }
public WhenGettingApprovalTestFixture() { var autoFixture = new Fixture(); _request = autoFixture.Create <ApprovedRequest>(); _viewModel = autoFixture.Create <ApprovedViewModel>(); _viewModel.WithParty = Party.Provider; var modelMapper = new Mock <IModelMapper>(); modelMapper.Setup(x => x.Map <ApprovedViewModel>(It.Is <ApprovedRequest>(r => r == _request))) .ReturnsAsync(_viewModel); _linkGeneratorResult = autoFixture.Create <string>(); var linkGenerator = new Mock <ILinkGenerator>(); linkGenerator.Setup(x => x.CommitmentsLink(It.IsAny <string>())) .Returns(_linkGeneratorResult); CohortController = new CohortController(Mock.Of <ICommitmentsApiClient>(), Mock.Of <ILogger <CohortController> >(), linkGenerator.Object, modelMapper.Object, Mock.Of <IAuthorizationService>()); }
public WhenGettingReadyForReviewFixture() { var autoFixture = new Fixture(); _request = autoFixture.Create <CohortsByAccountRequest>(); _viewModel = autoFixture.Create <ReviewViewModel>(); var modelMapper = new Mock <IModelMapper>(); modelMapper.Setup(x => x.Map <ReviewViewModel>(It.Is <CohortsByAccountRequest>(r => r == _request))) .ReturnsAsync(_viewModel); _linkGeneratorResult = autoFixture.Create <string>(); var linkGenerator = new Mock <ILinkGenerator>(); linkGenerator.Setup(x => x.CommitmentsLink(It.IsAny <string>())) .Returns(_linkGeneratorResult); CohortController = new CohortController(Mock.Of <ICommitmentsApiClient>(), Mock.Of <ILogger <CohortController> >(), linkGenerator.Object, modelMapper.Object, Mock.Of <IAuthorizationService>(), Mock.Of <IEncodingService>()); }
public CreateTestsFixture() { AutoFixture = new Fixture(); Mediator = new Mock <IMediator>(); Controller = new CohortController(Mediator.Object); Request = AutoFixture.Create <CreateCohortRequest>(); Result = AutoFixture.Create <AddCohortResult>(); Mediator .Setup(m => m.Send(It.Is <AddCohortCommand>(c => c.AccountId == Request.AccountId && c.AccountLegalEntityId == Request.AccountLegalEntityId && c.ProviderId == Request.ProviderId && c.CourseCode == Request.CourseCode && c.Cost == Request.Cost && c.StartDate == Request.StartDate && c.EndDate == Request.EndDate && c.OriginatorReference == Request.OriginatorReference && c.ReservationId == Request.ReservationId && c.FirstName == Request.FirstName && c.LastName == Request.LastName && c.DateOfBirth == Request.DateOfBirth && c.Uln == Request.Uln && c.TransferSenderId == Request.TransferSenderId && c.UserInfo == Request.UserInfo), CancellationToken.None)) .ReturnsAsync(Result); }
public void And_Provider_Adding_Apprentices_Then_Redirect_To_Message( AssignViewModel viewModel, [Frozen] Mock <ITempDataProvider> tempDataProvider, [Greedy] CohortController controller) { var tempdata = new TempDataDictionary(new DefaultHttpContext(), tempDataProvider.Object); controller.TempData = tempdata; var expectedRouteValues = new RouteValueDictionary(new { viewModel.AccountHashedId, viewModel.AccountLegalEntityHashedId, viewModel.ReservationId, viewModel.StartMonthYear, viewModel.CourseCode, viewModel.ProviderId, viewModel.TransferSenderId, viewModel.EncodedPledgeApplicationId, Origin = viewModel.ReservationId.HasValue ? Origin.Reservations : Origin.Apprentices }); viewModel.WhoIsAddingApprentices = WhoIsAddingApprentices.Provider; var result = controller.Assign(viewModel) as RedirectToActionResult; result.Should().NotBeNull(); result.ActionName.Should().Be("Message"); result.RouteValues.Should().BeEquivalentTo(expectedRouteValues); }
public void And_Provider_Adding_Apprentices_Then_Legal_Entity_Name_Stored_In_TempData( [Frozen] AssignViewModel viewModel, [Frozen] Mock <ITempDataProvider> tempDataProvider, [Frozen, Greedy] CohortController controller) { var tempdata = new TempDataDictionary(new DefaultHttpContext(), tempDataProvider.Object); controller.TempData = tempdata; var expectedRouteValues = new RouteValueDictionary(new { viewModel.AccountHashedId, viewModel.AccountLegalEntityHashedId, viewModel.ReservationId, viewModel.StartMonthYear, viewModel.CourseCode, viewModel.ProviderId, viewModel.TransferSenderId, Origin = viewModel.ReservationId.HasValue ? Origin.Reservations : Origin.Apprentices }); viewModel.WhoIsAddingApprentices = WhoIsAddingApprentices.Provider; var result = controller.Assign(viewModel) as RedirectToActionResult; Assert.True(controller.TempData.Contains(new KeyValuePair <string, object>(nameof(viewModel.LegalEntityName), viewModel.LegalEntityName))); }
public async Task And_Then_No_Cohort_Is_Returned_From_Mediator( long cohortId, [Greedy] CohortController controller) { var controllerResult = await controller.Get(cohortId) as NotFoundResult; controllerResult.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public WhenGettingACohortWithDraftApprenticeFixture() { _request = new CreateCohortWithDraftApprenticeshipRequest(); _viewModel = new AddDraftApprenticeshipViewModel(); _modelMapper = new Mock <IModelMapper>(); _modelMapper.Setup(x => x.Map <AddDraftApprenticeshipViewModel>(_request)).ReturnsAsync(_viewModel); Sut = new CohortController(Mock.Of <IMediator>(), _modelMapper.Object, Mock.Of <ILinkGenerator>(), Mock.Of <ICommitmentsApiClient>()); }
public async Task ThenMapperIsCalled( [Frozen] Mock <IModelMapper> modelMapper, CohortsByAccountRequest request, CohortController controller) { await controller.Draft(request); modelMapper.Verify(x => x.Map <DraftViewModel>(request), Times.Once); }
public WhenGettingChooseCohortFixture() { Request = new ChooseCohortByProviderRequest(); ModelMapperMock = new Mock <IModelMapper>(); ChooseCohortViewModel = new ChooseCohortViewModel(); ModelMapperMock.Setup(x => x.Map <ChooseCohortViewModel>(Request)).ReturnsAsync(ChooseCohortViewModel); Sut = new CohortController(Mock.Of <IMediator>(), ModelMapperMock.Object, Mock.Of <ILinkGenerator>(), Mock.Of <ICommitmentsApiClient>(), Mock.Of <IFeatureTogglesService <ProviderFeatureToggle> >(), Mock.Of <IEncodingService>()); }
public async Task ThenMapsTheRequestToViewModel( SelectProviderRequest request, SelectProviderViewModel viewModel, [Frozen] Mock <IModelMapper> mockMapper, [Greedy] CohortController controller) { await controller.SelectProvider(request); mockMapper.Verify(x => x.Map <SelectProviderViewModel>(It.IsAny <SelectProviderRequest>()), Times.Once); }
public DeleteTestsFixture() { AutoFixture = new Fixture(); Mediator = new Mock <IMediator>(); Controller = new CohortController(Mediator.Object); UserInfo = AutoFixture.Create <UserInfo>(); Mediator.Setup(m => m.Send(It.IsAny <DeleteCohortCommand>(), It.IsAny <CancellationToken>())) .ReturnsAsync(Unit.Value); }
public WhenGettingSelectAddDraftApprenticeshipJourneyFixture() { _request = new SelectAddDraftApprenticeshipJourneyRequest { ProviderId = ProviderId }; _featureToggleServiceMock = new Mock <IFeatureTogglesService <ProviderFeatureToggle> >(); _featureToggleServiceMock.Setup(x => x.GetFeatureToggle(ProviderFeature.BulkUploadV2WithoutPrefix)).Returns(new ProviderFeatureToggle { IsEnabled = false }); Sut = new CohortController(Mock.Of <IMediator>(), Mock.Of <IModelMapper>(), Mock.Of <ILinkGenerator>(), Mock.Of <ICommitmentsApiClient>(), _featureToggleServiceMock.Object, Mock.Of <IEncodingService>()); }
public CohortController CreateController() { var controller = new CohortController( CommitmentsApiClient, Mock.Of <ILogger <CohortController> >(), LinkGenerator, ModelMapper, AuthorizationService ); return(controller); }
public void And_Unknown_Adding_Apprentices_Then_Redirect_To_Error( AssignViewModel viewModel, [Greedy] CohortController controller) { viewModel.WhoIsAddingApprentices = (WhoIsAddingApprentices)55; var result = controller.Assign(viewModel) as RedirectToActionResult; result.Should().NotBeNull(); result.ActionName.Should().Be("Error"); result.ControllerName.Should().Be("Error"); }
public async Task ThenCallsApi( SelectProviderViewModel viewModel, long providerId, [Frozen] Mock <ICommitmentsApiClient> mockApiClient, GetProviderResponse apiResponse, [Greedy] CohortController controller) { viewModel.ProviderId = providerId.ToString(); await controller.SelectProvider(viewModel); mockApiClient.Verify(x => x.GetProvider(providerId, CancellationToken.None), Times.Once); }
public GetTestsFixture() { AutoFixture = new Fixture(); Mediator = new Mock <IMediator>(); Controller = new CohortController(Mediator.Object); GetCohortResult = AutoFixture.Create <GetCohortSummaryQueryResult>(); Mediator.Setup(m => m.Send(It.Is <GetCohortSummaryQuery>(q => q.CohortId == CohortId), CancellationToken.None)).ReturnsAsync(GetCohortResult); GetCohortsRequest = AutoFixture.Build <GetCohortsRequest>().With(x => x.AccountId, AccountId).Create(); GetCohortsResult = AutoFixture.Create <GetCohortsResult>(); Mediator.Setup(m => m.Send(It.Is <GetCohortsQuery>(q => q.AccountId == AccountId), CancellationToken.None)).ReturnsAsync(GetCohortsResult); }
public SendTestsFixture() { AutoFixture = new Fixture(); Mediator = new Mock <IMediator>(); Controller = new CohortController(Mediator.Object); Request = AutoFixture.Create <SendCohortRequest>(); Mediator.Setup(m => m.Send(It.Is <SendCohortCommand>(c => c.CohortId == CohortId && c.Message == Request.Message && c.UserInfo == Request.UserInfo), CancellationToken.None)) .ReturnsAsync(Unit.Value); }
public WhenGettingDeleteCohortFixture() { var fixture = new Fixture(); _request = fixture.Create <DeleteCohortRequest>(); _modelMapperMock = new Mock <IModelMapper>(); _viewModel = fixture.Create <DeleteCohortViewModel>(); _modelMapperMock .Setup(x => x.Map <DeleteCohortViewModel>(_request)) .ReturnsAsync(_viewModel); Sut = new CohortController(Mock.Of <IMediator>(), _modelMapperMock.Object, Mock.Of <ILinkGenerator>(), Mock.Of <ICommitmentsApiClient>(), Mock.Of <IFeatureTogglesService <ProviderFeatureToggle> >(), Mock.Of <IEncodingService>()); }
public WhenPostingDetailsFixture() { var autoFixture = new Fixture(); var modelMapper = new Mock <IModelMapper>(); _commitmentsApiClient = new Mock <ICommitmentsApiClient>(); _policyAuthorizationWrapper = new Mock <IPolicyAuthorizationWrapper>(); var linkGenerator = new Mock <ILinkGenerator>(); _cohortId = autoFixture.Create <long>(); _providerId = autoFixture.Create <long>(); _accountLegalEntityHashedId = autoFixture.Create <string>(); _viewModel = new DetailsViewModel { CohortId = _cohortId, ProviderId = _providerId, AccountLegalEntityHashedId = _accountLegalEntityHashedId }; _sendCohortApiRequest = new SendCohortRequest(); _approveCohortApiRequest = new ApproveCohortRequest(); modelMapper.Setup(x => x.Map <SendCohortRequest>(It.Is <DetailsViewModel>(vm => vm == _viewModel))) .ReturnsAsync(_sendCohortApiRequest); modelMapper.Setup(x => x.Map <ApproveCohortRequest>(It.Is <DetailsViewModel>(vm => vm == _viewModel))) .ReturnsAsync(_approveCohortApiRequest); _commitmentsApiClient.Setup(x => x.SendCohort(It.Is <long>(c => c == _cohortId), It.Is <SendCohortRequest>(r => r == _sendCohortApiRequest), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _commitmentsApiClient.Setup(x => x.ApproveCohort(It.Is <long>(c => c == _cohortId), It.Is <ApproveCohortRequest>(r => r == _approveCohortApiRequest), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _policyAuthorizationWrapper.Setup(x => x.IsAuthorized(It.IsAny <System.Security.Claims.ClaimsPrincipal>(), It.IsAny <string>())).ReturnsAsync(true); _linkGeneratorResult = autoFixture.Create <string>(); linkGenerator.Setup(x => x.ProviderApprenticeshipServiceLink(It.IsAny <string>())) .Returns(_linkGeneratorResult); _controller = new CohortController(Mock.Of <IMediator>(), modelMapper.Object, linkGenerator.Object, _commitmentsApiClient.Object, Mock.Of <IFeatureTogglesService <ProviderFeatureToggle> >(), Mock.Of <IEncodingService>()); }
public async Task ThenReturnsView( SelectProviderRequest request, SelectProviderViewModel viewModel, [Frozen] Mock <IModelMapper> mockMapper, [Greedy] CohortController controller) { mockMapper .Setup(mapper => mapper.Map <SelectProviderViewModel>(request)) .ReturnsAsync(viewModel); var result = await controller.SelectProvider(request) as ViewResult; Assert.Null(result.ViewName); Assert.AreSame(viewModel, result.Model); }
public async Task ThenViewIsReturned( [Frozen] Mock <IModelMapper> modelMapper, CohortsByAccountRequest request, DraftViewModel viewModel, CohortController controller) { modelMapper .Setup(x => x.Map <DraftViewModel>(request)) .ReturnsAsync(viewModel); var result = await controller.Draft(request) as ViewResult; Assert.NotNull(result); Assert.AreEqual(result.Model, viewModel); }
public void And_Employer_Adding_Apprentices_And_No_Reservation_Then_Redirect_To_Reservation_Selection( [Frozen] Mock <ILinkGenerator> linkGenerator, AssignViewModel viewModel, [Greedy] CohortController controller) { const string reservationsUrl = "RESERVATIONS-URL"; linkGenerator.Setup(x => x.ReservationsLink(It.IsAny <string>())).Returns(reservationsUrl); viewModel.ReservationId = null; viewModel.WhoIsAddingApprentices = WhoIsAddingApprentices.Employer; var result = controller.Assign(viewModel) as RedirectResult; result.Url.Should().Be(reservationsUrl); }