/// <summary> /// Creates a Person in CCM. This Person must already exist in DNA/OSI. /// </summary> /// <param name="person"></param> /// <returns></returns> public virtual BaseResult AddPerson(LmsPerson lmsPerson) { return(AddPersonBehavior.AddPerson(lmsPerson)); }
public void AddPerson_GivenAPersonThatExistsInDNA_ButNotInCCM_ShouldBeAbleToAddThatPersonInCCM() { // ARRANGE var applicant = GetApplicant(); var lmsPerson = new LmsPerson() { Applicant = applicant }; var address = applicant.Addresses.FirstOrDefault(); var phone = applicant.Phones.FirstOrDefault(); var credentials = new Credentials() { BaseUrl = "https://some.bank.or.cu/api", Username = "******", Password = "******", Facility = "validFacility" }; var credentialsHeader = GetCredentialsHeader(credentials); var messageXml = _person.Message?.SerializeToXmlString(); messageXml = HostValueTranslator.UpdateRequestWithHostValues( messageXml, _app.HostValues.Where(hv => hv.Field1.StartsWith("AddPerson.")).ToList(), _person.Message?.HostValueParentNode ); messageXml = HostValueTranslator.UpdateRequestWithHostValues( messageXml, applicant.HostValues.Where(hv => hv.Field1.StartsWith("AddPerson.")).ToList(), _person.Message?.HostValueParentNode ); messageXml = HostValueTranslator.UpdateRequestWithHostValues( messageXml, address.HostValues.Where(hv => hv.Field1.StartsWith("AddPerson.")).ToList(), _person.Message?.HostValueParentNode ); messageXml = HostValueTranslator.UpdateRequestWithHostValues( messageXml, phone.HostValues.Where(hv => hv.Field1.StartsWith("AddPerson.")).ToList(), _person.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.AddPerson(_person, _app, lmsPerson, address, phone).Returns(_messageResponse); var stubLmsRepo = Substitute.For <ILmsRepository>(); var mockBehavior = new AddPersonBehavior(_app, _userToken, stubServiceRepo, stubLmsRepo); mockBehavior.Person = _person; mockBehavior.CurrentAddress = address; mockBehavior.MainPhone = phone; // ACT var result = mockBehavior.AddPerson(lmsPerson); // ASSERT Assert.AreEqual(0, result.Messages.Count(m => m.Type == MessageType.Error)); Assert.IsTrue(result.Result); Assert.AreEqual("Success", mockBehavior.MessageResponse.ResponseCode); }