from q2_cores import data_helpers
[docs]
def mock_demographic_info_response(cust_id):
response = f"""
<CustInqResponse xmlns="http://jackhenry.com/jxchange/TPG/2008" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsgRsHdr>
<jXchangeHdr>
<JxVer>R2016.0</JxVer>
<AuditUsrId>Q2</AuditUsrId>
<AuditWsId>Q2</AuditWsId>
<ConsumerName>Amazing FI of Texas</ConsumerName>
<Ver_1/>
<jXLogTrackingId>7a5bb2d6-ae22-45c7-9cba-397b5a59aed0</jXLogTrackingId>
<Ver_2/>
<InstRtId>042200910</InstRtId>
<InstEnv>PROD</InstEnv>
<Ver_3/>
<BusCorrelId>4004e350-e16f-4870-8c11-ba8ceccad761</BusCorrelId>
<Ver_4/>
<Ver_5/>
</jXchangeHdr>
<Ver_1/>
</MsgRsHdr>
<CustRec>
<CustDetail>
<PersonName>
<ComName>{data_helpers.FULLNAME}</ComName>
<FirstName>{data_helpers.FIRSTNAME}</FirstName>
<MiddleName>{data_helpers.MIDDLENAME}</MiddleName>
<LastName>{data_helpers.LASTNAME}</LastName>
<Ver_1/>
</PersonName>
<Addr>
<FreeFormAddrArray>
<AddrLineInfo>
<AddrLine>{data_helpers.FIRSTNAME}</AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine>{data_helpers.ADDRESS1}</AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine>{data_helpers.CITY} {data_helpers.STATEABBRV} {data_helpers.ZIP}-{data_helpers.ZIPCODELAST4}</AddrLine>
<Ver_1/>
</AddrLineInfo>
</FreeFormAddrArray>
<StreetAddr1>{data_helpers.ADDRESS1}</StreetAddr1>
<City>{data_helpers.CITY}</City>
<StateCode>{data_helpers.STATEABBRV}</StateCode>
<PostalCode>{data_helpers.ZIP}{data_helpers.ZIPCODELAST4}</PostalCode>
<DlvryPt>38</DlvryPt>
<FornAddr>N</FornAddr>
<InvAddr>N</InvAddr>
<Ver_1/>
<StreetAddr3>{data_helpers.CITY} {data_helpers.STATEABBRV} {data_helpers.ZIP}-{data_helpers.ZIPCODELAST4}</StreetAddr3>
<Ver_2/>
</Addr>
<CustType>Individual</CustType>
<StdIndustCode>0</StdIndustCode>
<Gender>Female</Gender>
<BirthDt>{data_helpers.DOB}</BirthDt>
<EmplName>unemployed</EmplName>
<OccType>unemployed</OccType>
<CustOrgDt>2016-07-06</CustOrgDt>
<LastMainDt>2016-07-06</LastMainDt>
<Deceased>false</Deceased>
<EmailArray>
<EmailInfo>
<EmailAddr>{data_helpers.EMAIL}</EmailAddr>
<EmailType>Primary E-Mail</EmailType>
<Ver_1/>
</EmailInfo>
<EmailInfo>
<EmailAddr>test@secondary.com</EmailAddr>
<EmailType>Secondary E-Mail</EmailType>
<Ver_1/>
</EmailInfo>
<EmailInfo>
<EmailType>Business Email</EmailType>
<Ver_1></Ver_1>
</EmailInfo>
</EmailArray>
<PhoneArray>
<PhoneInfo>
<PhoneNum>{data_helpers.HOMEPHONE}</PhoneNum>
<PhoneType>Home Phone</PhoneType>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</PhoneInfo>
<PhoneInfo>
<PhoneNum>{data_helpers.WORKPHONE}</PhoneNum>
<PhoneType>Business Phone</PhoneType>
<PhoneExt>{data_helpers.WORKEXTENSION}</PhoneExt>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</PhoneInfo>
<PhoneInfo>
<PhoneType>Home Cell Phone</PhoneType>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</PhoneInfo>
<PhoneInfo>
<PhoneType>Business Cell Phone</PhoneType>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</PhoneInfo>
<PhoneInfo>
<PhoneNum>0</PhoneNum>
<PhoneType>Home Fax Number</PhoneType>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</PhoneInfo>
<PhoneInfo>
<PhoneNum>0</PhoneNum>
<PhoneType>Business Fax Number</PhoneType>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</PhoneInfo>
</PhoneArray>
<Ver_1/>
<Ver_2/>
<Ver_3/>
<Ver_4/>
</CustDetail>
<CustId>{cust_id}</CustId>
<AccountId>
<AcctId>0</AcctId>
<AcctType/>
<Ver_1/>
</AccountId>
<CondNotfArray>
<CondNotfInfo>
<CondNotf>AddrIRSRpt</CondNotf>
<Ver_1/>
</CondNotfInfo>
</CondNotfArray>
<Ver_1/>
<IntnetFinInstIdArray>
<IntnetFinInstIdArrayInfo>
<IntnetFinInstId>286200451288</IntnetFinInstId>
<Ver_1/>
</IntnetFinInstIdArrayInfo>
<IntnetFinInstIdArrayInfo>
<IntnetFinInstId>0</IntnetFinInstId>
<Ver_1/>
</IntnetFinInstIdArrayInfo>
</IntnetFinInstIdArray>
<Ver_2/>
<Ver_3/>
</CustRec>
<x_TaxDetail>
<TaxDetail>
<TINInfo>
<TINCode>I</TINCode>
<TINDesc>INDIVIDUAL</TINDesc>
<TaxId MaskVal="{data_helpers.SOCIALSECURITYWITHHYPHEN}">{data_helpers.SOCIALSECURITY}</TaxId>
<CertCode>C</CertCode>
<CertCodeDesc>Certified</CertCodeDesc>
<CertCodeDt>2016-07-06</CertCodeDt>
<BNotStat>0</BNotStat>
<Ver_1/>
<Ver_2/>
<TINMatchType>Unknown</TINMatchType>
<Ver_3/>
</TINInfo>
<IRSPostAddr>
<StreetAddr1>{data_helpers.ADDRESS1}</StreetAddr1>
<City>{data_helpers.CITY}</City>
<StateCode>{data_helpers.STATEABBRV}</StateCode>
<PostalCode>{data_helpers.ZIP}{data_helpers.ZIPCODELAST4}</PostalCode>
<Ver_1/>
<Ver_2/>
</IRSPostAddr>
<Alien>
<IRSExmpCode>0</IRSExmpCode>
<IRSRecipCode>0</IRSRecipCode>
<Ver_1/>
<AlienTypeCode>N</AlienTypeCode>
<Ver_2/>
<Ver_3/>
<RptChapArray>
<RptChapInfoRec>
<RptChapExst>false</RptChapExst>
<RptChapType>3</RptChapType>
<IRSExmpCode>0</IRSExmpCode>
<IRSRecipCode>0</IRSRecipCode>
<Ver_1/>
</RptChapInfoRec>
<RptChapInfoRec>
<RptChapExst>false</RptChapExst>
<RptChapType>4</RptChapType>
<IRSExmpCode>0</IRSExmpCode>
<IRSRecipCode>0</IRSRecipCode>
<Ver_1/>
</RptChapInfoRec>
</RptChapArray>
<Ver_4/>
</Alien>
<Ver_1/>
</TaxDetail>
<Ver_1/>
</x_TaxDetail>
<Ver_1/>
<x_IdVerify>
<IdVerifyArray>
<IdVerify>
<IdVerifyDesc>Driver's License</IdVerifyDesc>
<IdVerifyCode>DL</IdVerifyCode>
<IdVerifyVal>{data_helpers.DRIVERSLICENSENUM}</IdVerifyVal>
<IdIssueBy>{data_helpers.DRIVERSLICENSESTATEABBREV}</IdIssueBy>
<IdVerifyQueryArray>
<IdVerifyQueryInfo>
<IdVerifyQuery>IssDt</IdVerifyQuery>
<IdVerifyQueryVal>2012-09-06</IdVerifyQueryVal>
<Ver_1/>
</IdVerifyQueryInfo>
<IdVerifyQueryInfo>
<IdVerifyQuery>ExpDt</IdVerifyQuery>
<IdVerifyQueryVal>{data_helpers.DRIVERSLICENSEEXP}</IdVerifyQueryVal>
<Ver_1/>
</IdVerifyQueryInfo>
</IdVerifyQueryArray>
<Ver_1/>
</IdVerify>
</IdVerifyArray>
<Ver_1/>
</x_IdVerify>
<Ver_2/>
<Ver_3/>
</CustInqResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_demographic_info_response_no_dl(cust_id):
response = f"""
<CustInqResponse xmlns="http://jackhenry.com/jxchange/TPG/2008" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsgRsHdr>
<jXchangeHdr>
<JxVer>R2016.0</JxVer>
<AuditUsrId>Q2</AuditUsrId>
<AuditWsId>Q2</AuditWsId>
<ConsumerName>Amazing FI of Texas</ConsumerName>
<Ver_1/>
<jXLogTrackingId>7a5bb2d6-ae22-45c7-9cba-397b5a59aed0</jXLogTrackingId>
<Ver_2/>
<InstRtId>042200910</InstRtId>
<InstEnv>PROD</InstEnv>
<Ver_3/>
<BusCorrelId>4004e350-e16f-4870-8c11-ba8ceccad761</BusCorrelId>
<Ver_4/>
<Ver_5/>
</jXchangeHdr>
<Ver_1/>
</MsgRsHdr>
<CustRec>
<CustDetail>
<PersonName>
<ComName>{data_helpers.FULLNAME}</ComName>
<FirstName>{data_helpers.FIRSTNAME}</FirstName>
<MiddleName>{data_helpers.MIDDLENAME}</MiddleName>
<LastName>{data_helpers.LASTNAME}</LastName>
<Ver_1/>
</PersonName>
<Addr>
<FreeFormAddrArray>
<AddrLineInfo>
<AddrLine>{data_helpers.FIRSTNAME}</AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine>{data_helpers.ADDRESS1}</AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine>{data_helpers.CITY} {data_helpers.STATEABBRV} {data_helpers.ZIP}-{data_helpers.ZIPCODELAST4}</AddrLine>
<Ver_1/>
</AddrLineInfo>
</FreeFormAddrArray>
<StreetAddr1>{data_helpers.ADDRESS1}</StreetAddr1>
<City>{data_helpers.CITY}</City>
<StateCode>{data_helpers.STATEABBRV}</StateCode>
<PostalCode>{data_helpers.ZIP}{data_helpers.ZIPCODELAST4}</PostalCode>
<DlvryPt>38</DlvryPt>
<FornAddr>N</FornAddr>
<InvAddr>N</InvAddr>
<Ver_1/>
<StreetAddr3>{data_helpers.CITY} {data_helpers.STATEABBRV} {data_helpers.ZIP}-{data_helpers.ZIPCODELAST4}</StreetAddr3>
<Ver_2/>
</Addr>
<BirthDt>{data_helpers.DOB}</BirthDt>
<EmailArray>
<EmailInfo>
<EmailAddr>{data_helpers.EMAIL}</EmailAddr>
<EmailType>Primary E-Mail</EmailType>
<Ver_1/>
</EmailInfo>
</EmailArray>
<PhoneArray>
<PhoneInfo>
<PhoneNum>{data_helpers.HOMEPHONE}</PhoneNum>
<PhoneType>Home Phone</PhoneType>
</PhoneInfo>
<PhoneInfo>
<PhoneNum>{data_helpers.WORKPHONE}</PhoneNum>
<PhoneType>Business Phone</PhoneType>
<PhoneExt>{data_helpers.WORKEXTENSION}</PhoneExt>
</PhoneInfo>
</PhoneArray>
</CustDetail>
<CustId>{cust_id}</CustId>
</CustRec>
<x_TaxDetail>
<TaxDetail>
<TINInfo>
<TINCode>I</TINCode>
<TINDesc>INDIVIDUAL</TINDesc>
<TaxId MaskVal="{data_helpers.SOCIALSECURITYWITHHYPHEN}">{data_helpers.SOCIALSECURITY}</TaxId>
<CertCode>C</CertCode>
<CertCodeDesc>Certified</CertCodeDesc>
<CertCodeDt>2016-07-06</CertCodeDt>
<BNotStat>0</BNotStat>
<Ver_1/>
<Ver_2/>
<TINMatchType>Unknown</TINMatchType>
<Ver_3/>
</TINInfo>
</TaxDetail>
</x_TaxDetail>
</CustInqResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_update_demographic_info_response(cust_id):
response = f"""
<CustModResponse>
<CustID>{cust_id}</CustID>
<RsStat>Success</RsStat>
</CustModResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_update_demographic_info_response_fail(cust_id):
response = f"""
<CustModResponse>
<CustID>{cust_id}</CustID>
<RsStat>Fail</RsStat>
</CustModResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_update_demographic_info_response_error(cust_id):
response = f"""
<CustModResponse>
<CustID>{cust_id}</CustID>
<Error>Something went Wrong</Error>
</CustModResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_search_response(cust_id: str) -> str:
response = f"""
<AddrSrchResponse
xmlns="http://jackhenry.com/jxchange/TPG/2008"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SrchMsgRsHdr>
<jXchangeHdr>
<JxVer>R2024.1</JxVer>
<AuditUsrId>Q2</AuditUsrId>
<AuditWsId>Q2Online</AuditWsId>
<Ver_1/>
<jXLogTrackingId>e9ea457f-2968-41c8-97f0-b9833ec7451e</jXLogTrackingId>
<Ver_2/>
<InstRtId>042200910</InstRtId>
<InstEnv>PROD</InstEnv>
<Ver_3/>
<BusCorrelId>1033aa34-142c-4cff-b4b4-720077709c87</BusCorrelId>
<Ver_4/>
<Ver_5/>
</jXchangeHdr>
<SentRec>1</SentRec>
<MoreRec>false</MoreRec>
<Cursor>0</Cursor>
<TotRec>1</TotRec>
<Ver_1/>
</SrchMsgRsHdr>
<AddrSrchRecArray>
<AddrSrchRec>
<CustId>{cust_id}</CustId>
<AccountId>
<AcctId>0</AcctId>
<AcctType/>
<Ver_1/>
</AccountId>
<AddrKeyInfo>
<AddrKey>{cust_id}0000000000000000000 CUSTCUST000</AddrKey>
<AddrCatUse>Cust</AddrCatUse>
<Ver_1/>
</AddrKeyInfo>
<AddrInfo>
<Addr>
<StreetAddr1>{data_helpers.ADDRESS1}</StreetAddr1>
<City>{data_helpers.CITY}</City>
<StateProv>{data_helpers.STATE}</StateProv>
<StateCode>{data_helpers.STATEABBRV}</StateCode>
<PostalCode>{data_helpers.FULLZIP}</PostalCode>
<FornAddr>N</FornAddr>
<InvAddr>N</InvAddr>
<Ver_1/>
<Ver_2/>
</Addr>
<Ver_1/>
</AddrInfo>
<Ver_1/>
</AddrSrchRec>
</AddrSrchRecArray>
</AddrSrchResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_account_inquiry_response(acct_id: str, acct_type: str) -> str:
response = f"""
<AcctInqResponse xmlns="http://jackhenry.com/jxchange/TPG/2008"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsgRsHdr>
<jXchangeHdr>
<JxVer>R2024.1</JxVer>
<AuditUsrId>Q2</AuditUsrId>
<AuditWsId>Q2Online</AuditWsId>
<Ver_1/>
<jXLogTrackingId>913cd0c1-e356-492e-87ef-a53ae79078a1</jXLogTrackingId>
<Ver_2/>
<InstRtId>042200910</InstRtId>
<InstEnv>PROD</InstEnv>
<Ver_3/>
<BusCorrelId>4ff64df6-e8af-4bc8-be49-645d00d1b356</BusCorrelId>
<Ver_4/>
<Ver_5/>
</jXchangeHdr>
<Ver_1/>
</MsgRsHdr>
<DepAcctInqRec>
<x_DepInfoRec>
<DepInfoRec>
<CustId>{data_helpers.CUSTOMER_CIF}</CustId>
<AcctStat>1</AcctStat>
<Ver_1/>
</DepInfoRec>
<DepAcctId>
<AcctId>{acct_id}</AcctId>
<AcctType>{acct_type}</AcctType>
<Ver_1/>
</DepAcctId>
<PersonName>
<ComName>{data_helpers.FULLNAME}</ComName>
<Ver_1/>
</PersonName>
<Addr>
<StreetAddr1>{data_helpers.ADDRESS1}</StreetAddr1>
<City>{data_helpers.CITY}</City>
<StateProv>{data_helpers.STATE}</StateProv>
<StateCode>{data_helpers.STATEABBRV}</StateCode>
<PostalCode>{data_helpers.FULLZIP}</PostalCode>
<FornAddr>N</FornAddr>
<InvAddr>N</InvAddr>
<Ver_1/>
<Ver_2/>
</Addr>
<Ver_1/>
</x_DepInfoRec>
</DepAcctInqRec>
</AcctInqResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_modify_response() -> str:
response = """
<AddrModResponse xmlns="http://jackhenry.com/jxchange/TPG/2008"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsgRsHdr>
<jXchangeHdr>
<JxVer>R2024.1</JxVer>
<AuditUsrId>Q2</AuditUsrId>
<AuditWsId>Q2Online</AuditWsId>
<Ver_1/>
<Ver_2/>
<InstRtId>042200910</InstRtId>
<Ver_3/>
<Ver_4/>
<Ver_5/>
</jXchangeHdr>
<Ver_1/>
</MsgRsHdr>
<RsStat>Success</RsStat>
<Ver_1/>
</AddrModResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_modify_delete_response(mock_addr_key) -> str:
response = f"""
<passthru servicename="Customer">
<AddrMod xmlns="http://jackhenry.com/jxchange/TPG/2008">
<MsgRqHdr/>
<AddrKey>{mock_addr_key}</AddrKey>
<Dlt>true</Dlt>
</AddrMod>
</passthru>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_modify_modify_address2_response(mock_addr_key) -> str:
response = f"""
<passthru servicename="Customer">
<AddrMod xmlns="http://jackhenry.com/jxchange/TPG/2008">
<MsgRqHdr/>
<AddrKey>{mock_addr_key}</AddrKey>
<AddrInfo>
<Addr>
<StreetAddr1>{data_helpers.ADDRESS1}</StreetAddr1>
<StreetAddr2>{data_helpers.ADDRESS2}</StreetAddr2>
<City>{data_helpers.CITY}</City>
<StateCode>{data_helpers.STATEABBRV}</StateCode>
<PostalCode>{data_helpers.FULLZIP}</PostalCode>
</Addr>
</AddrInfo>
</AddrMod>
</passthru>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_add_response() -> str:
response = """
<AddrAddResponse xmlns="http://jackhenry.com/jxchange/TPG/2008"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsgRsHdr>
<jXchangeHdr>
<JxVer>R2024.1</JxVer>
<AuditUsrId>Q2</AuditUsrId>
<AuditWsId>Q2Online</AuditWsId>
<Ver_1/>
<Ver_2/>
<InstRtId>042200910</InstRtId>
<Ver_3/>
<Ver_4/>
<Ver_5/>
</jXchangeHdr>
<Ver_1/>
</MsgRsHdr>
<RsStat>Success</RsStat>
<AddrKey>MOCKKEY0000000000000000 CUSTCUST000</AddrKey>
<Ver_1/>
</AddrAddResponse>
"""
return data_helpers.normalize_xml_str(response)
[docs]
def mock_address_add_additional_response() -> str:
response = """
<passthru servicename="Customer">
<AddrAdd
xmlns="http://jackhenry.com/jxchange/TPG/2008">
<SrchMsgRqHdr/>
<CustId>234567</CustId>
<AccountId>
<AcctId>1234</AcctId>
<AcctType>test</AcctType>
<Ver_1/>
</AccountId>
<AddrCatUse>Seasonal</AddrCatUse>
<AddrCat2Use>Seasonal2</AddrCat2Use>
<AddrInfo>
<Addr>
<StreetAddr1>10124 Lake Creek Parkway</StreetAddr1>
<StreetAddr2>4th Flr</StreetAddr2>
<City>Austin</City>
<StateCode>TX</StateCode>
<PostalCode>78729-9999</PostalCode>
</Addr>
</AddrInfo>
</AddrAdd>
</passthru>
"""
return data_helpers.normalize_xml_str(response)