public void PipelineLoanStateTransitionRegisteringToWithdrawn()
        {
            var partialBorrowerResult = borrowersClient.PartialRegistration(borrowerRegistration);

            if (partialBorrowerResult == null)
            {
                Assert.Fail($"Could not create a partially registered borrower for email {emailAddress}.  Failing Test.");
            }

            var stateResult = loanApplicationClient.GetLoanApplication(partialBorrowerResult.content.LoanApplicationGuid.ToString());

            Assert.That(stateResult.content.LoanApplicationState == LoanApplicationState.Registering);
            Assert.That(stateResult.content.LoanApplicationStatus == LoanApplicationStatus.RegistrationPending);

            int emailCount  = GetEmails(emailAddress).Count;
            var stateClient = new LoanApplicationStateClient();
            var noContent   = new ResponseObject <EmptyResult>();

            noContent = stateClient.ChangeStateToWithdraw(partialBorrowerResult.content.LoanApplicationGuid.ToString());
            Assert.That(noContent.statusCode == HttpStatusCode.OK);

            stateResult = loanApplicationClient.GetLoanApplication(partialBorrowerResult.content.LoanApplicationGuid.ToString());
            Assert.That(stateResult.content.LoanApplicationState == LoanApplicationState.Withdrawn);

            List <string> emails = GetEmails(emailAddress);

            Assert.That(emails.Count > emailCount);
        }
 public StateTransitionTests(string environment) : base(environment)
 {
     env = environment;
     borrowerRegistration            = CoreModelConstructors.CreateRegisterBorrowerRequest();
     loanApplicationClient           = new LoanApplicationClient();
     bcdClient                       = new LoanApplicationBcdClient();
     coreLoanApplicationStatusClient = new LoanApplicationStatusClient();
     loanApplicationStateClient      = new LoanApplicationStateClient();
 }
        public void PipelineLoanStateTransitionToDecline()
        {
            var borrowerState = TransitionToReviewingState(borrowerRegistration);
            var stateClient   = new LoanApplicationStateClient();
            var noContent     = new ResponseObject <EmptyResult>();

            noContent = stateClient.ChangeStateToDecline(borrowerState.LoanApplicationGuid.ToString());
            Assert.That(noContent.statusCode == HttpStatusCode.OK);

            List <string> emails = GetAdverseActionsEmails(emailAddress);

            Assert.That(emails.Count > 0);
        }