You need to sign in to do that
Don't have an account?

Test Class Question: Business Relationship may not use Relationship field : Mailing Street:
I am getting the following error message:
System.DmlException: Insert failed. First exception on row 0; first error: INVALID_FIELD_FOR_INSERT_UPDATE, Business Relationship may not use Relationship field : Mailing Street: [Mailing Street]
Stack Trace:
Class.TestCreateNewDistributionDestination.testUpdateCaseToCreateNew: line 24, column 1
The organization that this class is in uses person accounts, and I updated the code to address this from another poster's suggestion (creating accounts, then contacts, then merging them), however I am now running into this error.
Here's the code, any help would be much appreciated! This is my first test class attempt, and I am very stuck.
@isTest private class TestCreateNewDistributionDestination{ static testMethod void testUpdateCaseToCreateNew(){ ////Query RecordType Id to Create PersonAccounts for Test//// Id RecId = [ SELECT r.Id, r.Name, r.DeveloperName, r.IsPersonType FROM RecordType r WHERE sObjectType = 'Account' AND IsPersonType=True AND DeveloperName='Individual' ].Id; system.debug('RecordId:' + RecId); ////Create PersonAccounts for Test by Creating Accounts, Then Contacts, Then Merging Them//// account[] accs = new account[] { new account(Name='Mr. John Sandbox1'), new account(name='Mr. John Sandbox2') };
////****THIS LINE IS LINE 24 AND CAUSES THE ERROR****////
insert accs; contact[] cons = new contact[] { new contact(accountid=accs[0].id,salutation='Mr.',firstname='John',lastname='Sandbox1'), new contact(accountid=accs[1].id,salutation='Mr.',firstname='John',lastname='Sandbox2') }; insert cons; accs[0].recordtypeid = accs[1].recordtypeid = RecId; update accs; system.debug('Accounts Have Been Created'); Map<String,Id> DDRTMap = new Map<String,Id>{}; ////Generate a List of Disbursement Destination Record Types//// List<RecordType> DDRTList = [ SELECT r.DeveloperName, r.Id, r.Name FROM RecordType r WHERE sObjectType = 'Disbursement_Destination__c']; ////Put the List into a Map//// for(RecordType RT: DDRTList){ DDRTMap.put(RT.DeveloperName,RT.Id); } system.debug('<<<<ABOUT TO INSERT CASES>>>>'); ////Create 6 Cases for the Test; 2 of each of 3 record types; 1 insert, 1 update of each//// Case[] Css = new Case[]{ new Case( Account = accs.get(0), Type = 'Wire Request', RecordTypeId = DDRTMap.get('Disbursement_Destination_Wire'), Existing_or_New_Disbursement_Destination__c = 'Use/Create a New Disbursement Destination', Receiving_Account_s_Number_Case__c = '135792468', Receiving_Account_s_Name_Case__c = 'TEST Receiving Account', Payee_s_Name_Case__c = accs.get(0).name, Payee_s_Street_Case__c = '1 Test Lane', Payee_s_City_Case__c = 'Testville', Payee_s_State_Case__c = 'NJ', Payee_s_Zip_Code_Case__c = '12345', Receiving_Bank_s_Name_Case__c = 'TEST BANK', Receiving_Bank_s_ABA_ACH_Case__c = '123456789', Receiving_Bank_s_ABA_Wire_Case__c= '123456789', Receiving_Bank_s_Street_Case__c = '1 Bank Street', Receiving_Bank_s_City_Case__c = 'Bankstown', Receiving_Bank_s_State_Case__c = 'NJ', Receiving_Bank_s_Zip_Code_Case__c = '98765' ), new Case( Account = accs.get(1), Type = 'Wire Request', RecordTypeId = DDRTMap.get('Disbursement_Destination_Wire'), Existing_or_New_Disbursement_Destination__c = 'Leave Disbursement Destination Blank', Receiving_Account_s_Number_Case__c = '135792468', Receiving_Account_s_Name_Case__c = 'TEST Receiving Account', Payee_s_Name_Case__c = accs.get(1).name, Payee_s_Street_Case__c = '1 Test Lane', Payee_s_City_Case__c = 'Testville', Payee_s_State_Case__c = 'NJ', Payee_s_Zip_Code_Case__c = '12345', Receiving_Bank_s_Name_Case__c = 'TEST BANK', Receiving_Bank_s_ABA_ACH_Case__c = '123456789', Receiving_Bank_s_ABA_Wire_Case__c= '123456789', Receiving_Bank_s_Street_Case__c = '1 Bank Street', Receiving_Bank_s_City_Case__c = 'Bankstown', Receiving_Bank_s_State_Case__c = 'NJ', Receiving_Bank_s_Zip_Code_Case__c = '98765' ), new Case( Account = accs.get(0), Type = 'Wire Request', RecordTypeId = DDRTMap.get('Disbursement_Destination_ACH'), Existing_or_New_Disbursement_Destination__c = 'Use/Create a New Disbursement Destination', Receiving_Account_s_Number_Case__c = '135792468', Receiving_Account_s_Name_Case__c = 'TEST Receiving Account', Payee_s_Name_Case__c = accs.get(0).name, Payee_s_Street_Case__c = '1 Test Lane', Payee_s_City_Case__c = 'Testville', Payee_s_State_Case__c = 'NJ', Payee_s_Zip_Code_Case__c = '12345', Receiving_Bank_s_Name_Case__c = 'TEST BANK', Receiving_Bank_s_ABA_ACH_Case__c = '123456789', Receiving_Bank_s_ABA_Wire_Case__c= '123456789', Receiving_Bank_s_Street_Case__c = '1 Bank Street', Receiving_Bank_s_City_Case__c = 'Bankstown', Receiving_Bank_s_State_Case__c = 'NJ', Receiving_Bank_s_Zip_Code_Case__c = '98765' ), new Case( Account = accs.get(1), Type = 'Wire Request', RecordTypeId = DDRTMap.get('Disbursement_Destination_ACH'), Existing_or_New_Disbursement_Destination__c = 'Leave Disbursement Destination Blank', Receiving_Account_s_Number_Case__c = '135792468', Receiving_Account_s_Name_Case__c = 'TEST Receiving Account', Payee_s_Name_Case__c = accs.get(1).name, Payee_s_Street_Case__c = '1 Test Lane', Payee_s_City_Case__c = 'Testville', Payee_s_State_Case__c = 'NJ', Payee_s_Zip_Code_Case__c = '12345', Receiving_Bank_s_Name_Case__c = 'TEST BANK', Receiving_Bank_s_ABA_ACH_Case__c = '123456789', Receiving_Bank_s_ABA_Wire_Case__c= '123456789', Receiving_Bank_s_Street_Case__c = '1 Bank Street', Receiving_Bank_s_City_Case__c = 'Bankstown', Receiving_Bank_s_State_Case__c = 'NJ', Receiving_Bank_s_Zip_Code_Case__c = '98765' ), new Case( Account = accs.get(0), Type = 'Wire Request', RecordTypeId = DDRTMap.get('Disbursement_Destination_Check'), Existing_or_New_Disbursement_Destination__c = 'Use/Create a New Disbursement Destination', Receiving_Account_s_Number_Case__c = '135792468', Receiving_Account_s_Name_Case__c = 'TEST Receiving Account', Payee_s_Name_Case__c = accs.get(0).name, Payee_s_Street_Case__c = '1 Test Lane', Payee_s_City_Case__c = 'Testville', Payee_s_State_Case__c = 'NJ', Payee_s_Zip_Code_Case__c = '12345', Receiving_Bank_s_Name_Case__c = 'TEST BANK', Receiving_Bank_s_ABA_ACH_Case__c = '123456789', Receiving_Bank_s_ABA_Wire_Case__c= '123456789', Receiving_Bank_s_Street_Case__c = '1 Bank Street', Receiving_Bank_s_City_Case__c = 'Bankstown', Receiving_Bank_s_State_Case__c = 'NJ', Receiving_Bank_s_Zip_Code_Case__c = '98765' ), new Case( Account = accs.get(1), Type = 'Wire Request', RecordTypeId = DDRTMap.get('Disbursement_Destination_Check'), Existing_or_New_Disbursement_Destination__c = 'Leave Disbursement Destination Blank', Receiving_Account_s_Number_Case__c = '135792468', Receiving_Account_s_Name_Case__c = 'TEST Receiving Account', Payee_s_Name_Case__c = accs.get(1).name, Payee_s_Street_Case__c = '1 Test Lane', Payee_s_City_Case__c = 'Testville', Payee_s_State_Case__c = 'NJ', Payee_s_Zip_Code_Case__c = '12345', Receiving_Bank_s_Name_Case__c = 'TEST BANK', Receiving_Bank_s_ABA_ACH_Case__c = '123456789', Receiving_Bank_s_ABA_Wire_Case__c= '123456789', Receiving_Bank_s_Street_Case__c = '1 Bank Street', Receiving_Bank_s_City_Case__c = 'Bankstown', Receiving_Bank_s_State_Case__c = 'NJ', Receiving_Bank_s_Zip_Code_Case__c = '98765' ) }; system.debug('Cases Have Been Created, But Not Inserted'); ////Insert the cases, update the cases needed test.starttest(); insert Css; system.debug('Inserted Css'); Css[1].Existing_or_New_Disbursement_Destination__c = 'Use/Create a New Disbursement Destination'; Css[3].Existing_or_New_Disbursement_Destination__c = 'Use/Create a New Disbursement Destination'; Css[5].Existing_or_New_Disbursement_Destination__c = 'Use/Create a New Disbursement Destination'; update Css; system.debug('Updated Css'); test.stoptest(); List<Case> insertedCases = [ SELECT Type, RecordTypeId FROM Case WHERE Id IN :Css]; system.debug(insertedCases.size() + ' Cases Have Been Created'); system.debug(insertedCases); System.AssertEquals(insertedCases.size(),6); for(Case Cs : insertedCases ){ System.AssertEquals('Disbursement Destination Already Populated',Cs.Existing_or_New_Disbursement_Destination__c); System.AssertNotEquals('',Cs.Disbursement_Destination__c); } List<Disbursement_Destination__c> TestDDs = [ SELECT name FROM Disbursement_Destination__c]; system.debug(TestDDs); //System.Assert(TestDDs.size(),2); } }
Thanks again!