public void SubmitAccessRequestTests(AccessRequestSubmitStatus submitQueryStatus, string mediatorCode, string pageMessage, UserMessageLevel userMessageLevel) { //Arrange string firstname = "First", lastname = "Last", companyname = "companyName", email = "*****@*****.**", confirmEmail = "*****@*****.**", userType = "Employer", title = "Mr", position = "Position", phoneNumber = "0987654321", mobile = "1234567890", address1 = "Line1", city = "City", postcode = "Postcode"; var addressViewModelBuilder = new AddressViewModelBuilder().AddressLine1(address1).City(city).Postcode(postcode).Build(); var accessRequestViewModel = new AccessRequestViewModelBuilder().Firstname(firstname).Lastname(lastname).MobileNumber(mobile) .PhoneNumber(phoneNumber).Position(position).UserType(userType).ConfirmEmail(confirmEmail).Title(title) .Email(email).Companyname(companyname) .Address(addressViewModelBuilder) .Build(); var providerMock = new Mock <IAccessRequestProvider>(); providerMock.Setup(x => x.SubmitAccessRequest(It.IsAny <AccessRequestViewModel>())).Returns(submitQueryStatus); Mock <IReferenceDataMediator> referenceDataMediator = new Mock <IReferenceDataMediator>(); referenceDataMediator.Setup(c => c.GetReferenceData(It.IsAny <ReferenceDataTypes>())) .Returns(new MediatorResponse <ReferenceDataListViewModel>() { ViewModel = new ReferenceDataListViewModel() }); var mediator = new AccessRequestMediatorBuilder().With(providerMock).With(referenceDataMediator).Build(); //Act var response = mediator.SubmitAccessRequest(accessRequestViewModel); //Assert response.Code.Should().Be(mediatorCode); response.Message.Text.Should().Be(pageMessage); response.Message.Level.Should().Be(userMessageLevel); }
public MediatorResponse <AccessRequestViewModel> SubmitAccessRequest(AccessRequestViewModel viewModel) { var validationResult = _validator.Validate(viewModel); if (!validationResult.IsValid) { viewModel = PopulateStaticData(viewModel); return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.ValidationError, viewModel, validationResult)); } AccessRequestSubmitStatus resultStatus = _accessRequestProvider.SubmitAccessRequest(viewModel); //populate reference data viewModel = PopulateStaticData(viewModel); switch (resultStatus) { case AccessRequestSubmitStatus.Success: return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.Success, viewModel, AccessRequestPageMessages.RequestHasBeenSubmittedSuccessfully, UserMessageLevel.Success)); default: return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.Error, viewModel, AccessRequestPageMessages.ErrorWhileRequestSubmission, UserMessageLevel.Error)); } }