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);
        }
示例#2
0
        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));
            }
        }