Пример #1
0
        public void AddAccount_GivenAPersonThatExistsInCCM_ShouldBeAbleToCreateACreditCardAccountInCCM()
        {
            // ARRANGE
            var primaryApplicant = GetApplicant();

            var credentials = new Credentials()
            {
                BaseUrl  = "https://some.bank.or.cu/api",
                Username = "******",
                Password = "******",
                Facility = "validFacility"
            };

            var credentialsHeader = GetCredentialsHeader(credentials);

            var messageXml = _account.Message?.SerializeToXmlString();

            messageXml = HostValueTranslator.UpdateRequestWithHostValues(
                messageXml,
                _app.HostValues.Where(hv => hv.Field1.StartsWith("AddAccount.")).ToList(),
                _account.Message?.HostValueParentNode
                );

            messageXml = HostValueTranslator.UpdateRequestWithHostValues(
                messageXml,
                primaryApplicant.HostValues.Where(hv => hv.Field1.StartsWith("AddAccount.")).ToList(),
                _account.Message?.HostValueParentNode
                );

            var processMessageNodeRequest = new ProcessMessageNodeRequest()
            {
                CredentialsHeader = credentialsHeader,
                request           = GetXmlNode(messageXml)
            };

            var stubServiceRepo = Substitute.For <ISoapRepository>();

            stubServiceRepo.GetProcessMessageNodeRequest(credentialsHeader, messageXml).Returns(processMessageNodeRequest);

            _messageResponse = GetMessageResponseSuccess();

            stubServiceRepo.AddAccount(_account, _app, primaryApplicant).Returns(_messageResponse);
            var stubLmsRepo = Substitute.For <ILmsRepository>();

            stubLmsRepo.GetUserFullNameById(_app.FinalDecisionUserId.GetValueOrDefault()).Returns("Steve Higgs");

            var mockBehavior = new AddAccountBehavior(_app, _userToken, stubServiceRepo, stubLmsRepo);

            mockBehavior.Account = _account;

            // ACT
            var result        = mockBehavior.AddAccount(primaryApplicant);
            var accountNumber = mockBehavior.MessageResponse.AccountNumber;

            // ASSERT
            Assert.AreEqual(0, result.Messages.Count(m => m.Type == MessageType.Error));
            Assert.IsTrue(result.Result);
            Assert.AreEqual("Success", mockBehavior.MessageResponse.ResponseCode);
            Assert.AreEqual("9000000000007", accountNumber);
        }
Пример #2
0
        public override BaseResult AddAccount(Applicant primaryApplicant, out string accountNumber)
        {
            var result = AddAccountBehavior.AddAccount(primaryApplicant);

            accountNumber = AddAccountBehavior.MessageResponse?.AccountNumber;

            return(result);
        }
Пример #3
0
        public void GetUserFields_WhenUserFieldHostValuesAreAdded_ShouldOutputACollectionOfUserFields()
        {
            // ARRANGE
            List <UserField> userFieldList;
            var applicant = GetApplicant();
            var numberOfUserFieldNameHVs  = _app.HostValues.Count(hv => hv.Field1.Equals("AddAccount.Message.DataUpdate.Account.UserFields.UserField.Name"));
            var numberOfUserFieldValueHVs = _app.HostValues.Count(hv => hv.Field1.Equals("AddAccount.Message.DataUpdate.Account.UserFields.UserField.Value"));
            var numberOfActualUserFieldHV = numberOfUserFieldNameHVs + numberOfUserFieldValueHVs;

            var stubServiceRepo = Substitute.For <ISoapRepository>();
            var stubLmsRepo     = Substitute.For <ILmsRepository>();
            var mockBehavior    = new AddAccountBehavior(_app, _userToken, stubServiceRepo, stubLmsRepo);

            // ACT
            userFieldList = mockBehavior.GetUserFields(applicant);

            // ASSERT
            Assert.IsNotNull(userFieldList);
            Assert.AreEqual(numberOfUserFieldNameHVs, userFieldList.Count(u => !string.IsNullOrWhiteSpace(u.Name)));
            Assert.AreEqual(numberOfUserFieldValueHVs, userFieldList.Count(u => !string.IsNullOrWhiteSpace(u.Value)));
        }
Пример #4
0
        public AddAccount GetAddAccountDto(Application app, Applicant applicant, string userToken)
        {
            var stubServiceRepo = Substitute.For <ISoapRepository>();
            var stubLmsRepo     = Substitute.For <ILmsRepository>();
            var fakeBehavior    = new AddAccountBehavior(app, userToken, stubServiceRepo, stubLmsRepo);

            var account = new AddAccount()
            {
                Message = new Dto.Soap.Message()
                {
                    DataUpdate = new DataUpdate()
                    {
                        TraceNumber    = "668254",
                        ProcessingCode = "ExternalUpdateRequest",
                        Source         = "LoanOrigination",
                        UpdateAction   = "Add",
                        UpdateTarget   = "Account",
                        Account        = new Account()
                        {
                            LoanOfficerName               = "Admin Admin",
                            AccountOpenDate               = "2019-07-25",
                            ProductName                   = app.HostValues.Any(h => h.Field1.Equals("AddAccount.Message.DataUpdate.Account.ProductName")) ? string.Empty : null,
                            RateClass                     = app.HostValues.Any(h => h.Field1.Equals("AddAccount.Message.DataUpdate.Account.RateClass")) ? string.Empty : null,
                            PromotionalRateClass          = app.HostValues.Any(h => h.Field1.Equals("AddAccount.Message.DataUpdate.Account.PromotionalRateClass")) ? string.Empty : null,
                            PromotionalRateClassStartDate = app.HostValues.Any(h => h.Field1.Equals("AddAccount.Message.DataUpdate.Account.PromotionalRateClassStartDate")) ? string.Empty : null,
                            PromotionalRateClassEndDate   = app.HostValues.Any(h => h.Field1.Equals("AddAccount.Message.DataUpdate.Account.PromotionalRateClassEndDate")) ? string.Empty : null,
                            CreditLimit                   = 10000.00m,
                            TaxOwnerPartyId               = "79396",
                            TaxOwnerPartyType             = "Person",
                            UserFields                    = fakeBehavior.GetUserFields(applicant)
                        }
                    }
                }
            };

            return(account);
        }
Пример #5
0
        /// <summary>
        /// Creates a new CCM credit card account.
        /// </summary>
        /// <param name="primaryApplicant"></param>
        /// <param name="accountNumber"></param>
        /// <returns></returns>
        public virtual BaseResult AddAccount(Applicant primaryApplicant, out string accountNumber)
        {
            accountNumber = string.Empty;

            return(AddAccountBehavior.AddAccount(primaryApplicant));
        }