My test case is inserting and updating records that should be meeting the criteria of the following validation rule, but the test says that it is failing:
Validation Rule:
AND(
OR(
ISPICKVAL( Existing_or_New_Disbursement_Destination__c , 'Leave Disbursement Destination Blank or Partially Filled'),
ISPICKVAL( Existing_or_New_Disbursement_Destination__c , 'Use/Create a New Disbursement Destination')
),
Disbursement_Destination__c <> Null
)
The system.debugs at the end output null and 'Use/Create a New Disbursement Destination', but when the
Update Css;
line runs, it throws an error for failing the above validation rule. I know the test case is very long, but most of it is just 6 cases being inserted on a bunch of lines for cleaner formatting.
Any help on this would be appreciated, thanks!
Test Case:
@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);
//NEWWWWWW
Id pmId = [
SELECT u.Id, u.Name
FROM User u
WHERE name = 'Jason Ackerman'
].Id;
Account acc1 = new account( salutation = 'Mr.', firstname = 'John', lastname = 'Sandbox1', Portfolio_Manager_Lookup__c=pmId , recordtypeid = RecId );
Account acc2 = new account( salutation = 'Mr.', firstname = 'John', lastname = 'Sandbox2', Portfolio_Manager_Lookup__c=pmId , recordtypeid = RecId );
insert acc1;
insert acc2;
//End NEWWWWWW
system.debug('Accounts Have Been Created' + acc1.id + ', ' + acc2.id);
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 = 'Case'];
////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(
AccountId = acc1.Id,
Type = 'Wire Request',
RecordTypeId = DDRTMap.get('Fund_Transfer_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_Name_Case__c = acc1.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(
AccountId = acc2.Id,
Type = 'Wire Request',
RecordTypeId = DDRTMap.get('Fund_Transfer_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_Name_Case__c = acc2.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(
AccountId = acc1.Id,
Type = 'Wire Request',
RecordTypeId = DDRTMap.get('Fund_Transfer_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_Name_Case__c = acc1.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(
AccountId = acc2.Id,
Type = 'Wire Request',
RecordTypeId = DDRTMap.get('Fund_Transfer_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_Name_Case__c = acc2.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(
AccountId = acc1.Id,
Type = 'Wire Request',
RecordTypeId = DDRTMap.get('Fund_Transfer_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_Name_Case__c = acc1.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(
AccountId = acc2.Id,
Type = 'Wire Request',
RecordTypeId = DDRTMap.get('Fund_Transfer_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_Name_Case__c = acc2.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('MINE: Check:' + DDRTMap.get('Fund_Transfer_Check') + ', Wire:' + DDRTMap.get('Fund_Transfer_Wire') + ', APH:' + DDRTMap.get('Fund_Transfer_ACH'));
//system.debug('MINE: Case 1 Account Get: ' + css.get(0).account);
//system.debug('MINE: Cases Have Been Created, But Not Inserted');
////Insert the cases, update the cases needed
test.starttest();
insert Css;
//system.debug('MINE: Inserted Css');
system.debug('MINE: ' + Css[1].Disbursement_Destination__c);
system.debug('MINE: ' + Css[1].Existing_or_New_Disbursement_Destination__c);
system.debug('MINE: ' + Css[2].Disbursement_Destination__c);
system.debug('MINE: ' + Css[2].Existing_or_New_Disbursement_Destination__c);
system.debug('MINE: ' + Css[3].Disbursement_Destination__c);
system.debug('MINE: ' + Css[3].Existing_or_New_Disbursement_Destination__c);
system.debug('MINE: ' + Css[4].Disbursement_Destination__c);
system.debug('MINE: ' + Css[4].Existing_or_New_Disbursement_Destination__c);
system.debug('MINE: ' + Css[5].Disbursement_Destination__c);
system.debug('MINE: ' + Css[5].Existing_or_New_Disbursement_Destination__c);
system.debug('MINE: ' + Css[0].Disbursement_Destination__c);
system.debug('MINE: ' + Css[0].Existing_or_New_Disbursement_Destination__c);
Css[1].Disbursement_Destination__c = Null;
Css[3].Disbursement_Destination__c = Null;
Css[5].Disbursement_Destination__c = Null;
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';
system.debug('MINE: Case 1 DD: ' + Css[1].Disbursement_Destination__c + ' and Existing or New? ' + Css[1].Existing_or_New_Disbursement_Destination__c);
update Css;
system.debug('Updated Css');
test.stoptest();
List<Case> insertedCases = [
SELECT Type, RecordTypeId, Existing_or_New_Disbursement_Destination__c, Disbursement_Destination__c
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(Null,Cs.Disbursement_Destination__c);
}
List<Disbursement_Destination__c> TestDDs = [
SELECT name
FROM Disbursement_Destination__c];
system.debug(TestDDs);
//System.Assert(TestDDs.size(),2);
}
}