You need to sign in to do that
Don't have an account?
Testing Bulk Update (system.assertequals)
Hey guys, I have created a test class, I am new to apex code so I have been taking a bit from here and there. Basically the first part of the class works but the bulk validation is not working I want to use system.assertequals to verify that the value on the update field is equal to the expected value, how do I do this with a list of records
This is the test class, the part that is not working is commented at the end. The error I am getting when running the test is System.AssertException: Assertion Failed: Expected: 005d0000000jTxVAAU, Actual: null I think I know the reason for the error I just dont know how to bulk validate the value returned as I did with the single validation.
Many thanks in advance.
@isTest(SeeAllData=true)
private class TestClassCaseLookupTrigger {
/* Tests a user creating a case and then updating the owner to a queue,
then updates the ownership from a queue to another user,
this should cause the lookup field New_Owner__c be updated with the same id as the new owner*/
//Tests single and mass updates
static testMethod void singleandmassupdates() {
List<Queuesobject> queues=[SELECT Queue.Name, QueueId FROM QueueSobject
WHERE SobjectType = 'Case'];
Map<String,String> CaseQueues = new Map<String,String>{};
for(QueueSobject q:queues)
Casequeues.put(q.Queue.Name,q.QueueId);
List<User> userlist=[SELECT Alias, Id FROM User
WHERE UserType != 'CSNOnly' AND IsActive = TRUE];
Map<String,String> usermap= new map<string,string>{};
for(User us:userlist)
usermap.put(us.Alias,us.Id);
//Set up user
User testuser = [SELECT Id FROM User WHERE Alias='cbrow'];
//Run as test user
System.RunAs(testuser){
System.debug('Inserting a case..');
//creating and updating a single case
Case testCase = new Case(status = 'New', Origin='Phone');
insert testCase;
System.debug('Changing ownership to queue..');
testCase.ownerid=CaseQueues.get('L1 EMEA Queue');
update testCase;
System.debug('Changing ownership to another user..');
testCase.ownerid=usermap.get('BChir');
update testCase;
Case result = [select New_Owner__c from Case where Id = :testCase.Id];
System.assertEquals(usermap.get('BChir'),result.New_Owner__c);
System.debug('Inserting and updating 200 cases...bulk validation');
List<Case> testCases = new List<Case>();
for(integer i=0; i<200; i++) {
testCases.add( new Case(status ='New',Origin='Phone',Ownerid=usermap.get('BChir')) );
}
insert testCases;
//change the ownership from a queue to a user on list of cases created before
for(integer i=0; i<200; i++) {
testCases[i].OwnerId=CaseQueues.get('L1 EMEA Queue');
}
update testCases;
for(integer i=0; i<200; i++){
System.assertEquals(usermap.get('BChir'),TestCases[i].New_Owner__c); //this is not working
}
}
}
}
Hi
Here I put some debug statement and see the debug values and if possible put some more debug statements so that u can get some id that value can be put in system,asser.
Regards,
Rajesh.
Thanks Rajesh, but that is the actual problem, I don't know how to query on the ids and values on my New_Owner__c field in the list of 200 records updated in a similar way to what I did in the single validation test, how can I query the list of 200 records to the comparte in the system.assertequals ?
Cheers