function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Reshmi SmijuReshmi Smiju 

Issue with Database.deleteResult method with aTrailhead Class

Hi,

While executing the following class from the Trailhead : Creating Test Data for Apex Tests Chapter, I am facing the error. System.ListException: Missing id at index: 0  with  all the 4 Database.deleteResult statement (marked in the code).
Class :
@isTest
private class TestAccountDeletion {
    @isTest static void TestDeleteAccountWithOneOpportunity(){
        //Test data setup
        Account[] accts = TestDataFactory.createAccountsWithOpps(1,1);
        Test.startTest();
        Database.DeleteResult result= Database.delete(accts[0], false);
        Test.stopTest();
        System.assert(!result.isSuccess());
        System.assert(result.getErrors().size() > 0);
        System.assertEquals('Cannot delete account with related opportunities.',result.getErrors()[0].getMessage());
    }
     @isTest static void TestDeleteAccountWithNoOpportunities(){
        Account [] accts = TestDataFactory.createAccountsWithOpps(1, 0);
        Test.startTest();
        Database.deleteResult result = Database.delete(accts[0],false);
        Test.stopTest();
        System.assert(result.isSuccess());
    }
     @isTest static void TestDeleteBulkAccountsWithOneOpportunity(){
        Account[] accts = TestDataFactory.createAccountsWithOpps(200,1);
        Test.startTest();
        Database.deleteResult[] result = Database.delete(accts,false);
        Test.stopTest();
        for(Database.deleteResult dr:result){
            System.assert(!dr.isSuccess());
            System.assert(dr.getErrors().size() > 0);
            System.assertEquals('Cannot delete account with related opportunities.',
                                dr.getErrors()[0].getMessage());
        }
    }
     @isTest static void TestDeleteBulkAccountsWithNoOpportunity(){
        Account[] accts = TestDataFactory.createAccountsWIthOpps(200,0);
        Test.startTest();
        Database.deleteResult[] result = Database.delete(accts, false);
        Test.stopTest();
        for(Database.deleteResult dr:result){
            System.assert(dr.isSuccess());
    }
    }
}

Pls let me know, what could be the issue. Thanks in Advance
Regards
Reshmi
anand k 11anand k 11
Hi Reshmi,

I was able to execute succesffuly with your code. Can you check again.PFB the screenshot. 

Let me know if i missed anything

User-added image

Thanks
Anand
Reshmi SmijuReshmi Smiju
HI,
Still I am facing the same Issue. Does it need to have any system Preference (wild guess)!!
anand k 11anand k 11
Hi Reshmi,

Try in different DE hope it will work 

Thanks
Anand