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
DustinLHDustinLH 

system.assertEquals Failure on Test Class

I am getting a system.assertEquals error on the following test class. Error:

System.AssertException: Assertion Failed: Expected: null, Actual: 00580000001k6g1AAAClass.testReferralAssignOwner.test: line 11, column 1

 Test Class:

@isTest
private class testReferralAssignOwner {
  static testMethod void test() {
    List<User> testUsers = [select id from user where isactive = true limit 2];
    Account a = new Account(Name='test');
    insert a;
    List<Referral__c> refs = new List<Referral__c>();
    refs.add(new Referral__c(Client_Name__c=a.id,Phone__c='12345',Assigned__c=testUsers[0].Id));
    refs.add(new Referral__c(Client_name__c=a.id,Phone__c='12345',Assigned__c=testUsers[1].Id));
    insert refs;
    system.assertEquals(refs[0].OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c;
    system.assertEquals(refs[1].OwnerId,testUsers[1].Id); // OwnerId should equal Assigned__c;
    refs[0].OwnerId = testUsers[1].Id;
    refs[1].Assigned__c = testUsers[0].Id;
    update refs;
    system.assertEquals(refs[0].Assigned__c,testUsers[1].Id); // Assigned__c should equal OwnerId now
    system.assertEquals(refs[1].OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c now
  }  
}

 It says that it is expecitng null and getting a user ID instead. It should be expecting the user ID, so I am not sure what the problem is. Any help is greatly appreciated!

Best Answer chosen by Admin (Salesforce Developers) 
DustinLHDustinLH

Awesome, thanks you are the best! Here is the final test class that works for 100% coverage:

@isTest
private class testReferralAssignOwner {
  static testMethod void test() {
    List<User> testUsers = [select id from user where isactive = true limit 2];
    
    Account a = new Account(Name='test');
    insert a;
    
    List<Referral__c> refs = new List<Referral__c>();
    refs.add(new Referral__c(Client_Name__c=a.id,Phone__c='12345',Assigned__c=testUsers[0].Id));
    refs.add(new Referral__c(Client_name__c=a.id,Phone__c='12345',Assigned__c=testUsers[1].Id));
    insert refs;

    Map<Id, Referral__c> refMap = new Map<Id, Referral__c>([SELECT Id, Assigned__c, OwnerId FROM Referral__c WHERE Id IN :refs]);

    system.assertEquals(refMap.get(refs[0].Id).OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c;
    system.assertEquals(refMap.get(refs[1].Id).OwnerId,testUsers[1].Id); // OwnerId should equal Assigned__c;
    refs[0].OwnerId = testUsers[1].Id;
    refs[1].Assigned__c = testUsers[0].Id;
    update refs;
    
    Map<Id, Referral__c> refMap2 = new Map<Id, Referral__c>([SELECT Id, Assigned__c, OwnerId FROM Referral__c WHERE Id IN :refs]);
    
    system.assertEquals(refMap2.get(refs[0].Id).Assigned__c,testUsers[1].Id); // Assigned__c should equal OwnerId now
    system.assertEquals(refMap2.get(refs[1].Id).OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c now
  }  
}

 

All Answers

Nisse Knudsen.ax1026Nisse Knudsen.ax1026
insert refs;
    system.assertEquals(testUsers[0].Id,refs[0].OwnerId); // OwnerId should equal Assigned__c;
    system.assertEquals(testUsers[1].Id,refs[1].OwnerId); // OwnerId should equal Assigned__c;

 If you switch the parameters you should have Expected: ID and Actual: Null.

 

To resolve you should query the DB again including the OwnerId field:

 

insert refs;

Map<Id, Referral__c> refMap = new Map<Id, Referral__c>([SELECT Id, Assigned__c, OwnerId FROM Referral__c WHERE Id IN :refs]);

    system.assertEquals(refMap.get(refs[0].Id).OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c;
    system.assertEquals(refMap.get(refs[1].Id).OwnerId,testUsers[1].Id); // OwnerId should equal Assigned__c;

 

DustinLHDustinLH

Thanks for the quick reply!

 

I am getting this error once I add the code:

ErrorError: Compile Error: Incompatible key type SOBJECT:Referral__c for MAP<Id,Referral__c> at line 16 column 25

 

Here is the code:

 

@isTest
private class testReferralAssignOwner {
  static testMethod void test() {
    List<User> testUsers = [select id from user where isactive = true limit 2];
    
    Account a = new Account(Name='test');
    insert a;
    
    List<Referral__c> refs = new List<Referral__c>();
    refs.add(new Referral__c(Client_Name__c=a.id,Phone__c='12345',Assigned__c=testUsers[0].Id));
    refs.add(new Referral__c(Client_name__c=a.id,Phone__c='12345',Assigned__c=testUsers[1].Id));
    insert refs;

    Map<Id, Referral__c> refMap = new Map<Id, Referral__c>([SELECT Id, Assigned__c, OwnerId FROM Referral__c WHERE Id IN :refs]);

    system.assertEquals(refMap.get(refs[0]).Id.OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c;
    system.assertEquals(refMap.get(refs[1]).Id.OwnerId,testUsers[1].Id); // OwnerId should equal Assigned__c;
    refs[0].OwnerId = testUsers[1].Id;
    refs[1].Assigned__c = testUsers[0].Id;
    update refs;
    system.assertEquals(refs[0].Assigned__c,testUsers[1].Id); // Assigned__c should equal OwnerId now
    system.assertEquals(refs[1].OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c now
  }  
}

 


Nisse Knudsen.ax1026Nisse Knudsen.ax1026
system.assertEquals(refMap.get(refs[0].Id).OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c;
    system.assertEquals(refMap.get(refs[1].Id).OwnerId,testUsers[1].Id); // OwnerId should equal Assigned__c;
    

 Sorry, my fault! Try this! ;)

DustinLHDustinLH

Awesome, thanks you are the best! Here is the final test class that works for 100% coverage:

@isTest
private class testReferralAssignOwner {
  static testMethod void test() {
    List<User> testUsers = [select id from user where isactive = true limit 2];
    
    Account a = new Account(Name='test');
    insert a;
    
    List<Referral__c> refs = new List<Referral__c>();
    refs.add(new Referral__c(Client_Name__c=a.id,Phone__c='12345',Assigned__c=testUsers[0].Id));
    refs.add(new Referral__c(Client_name__c=a.id,Phone__c='12345',Assigned__c=testUsers[1].Id));
    insert refs;

    Map<Id, Referral__c> refMap = new Map<Id, Referral__c>([SELECT Id, Assigned__c, OwnerId FROM Referral__c WHERE Id IN :refs]);

    system.assertEquals(refMap.get(refs[0].Id).OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c;
    system.assertEquals(refMap.get(refs[1].Id).OwnerId,testUsers[1].Id); // OwnerId should equal Assigned__c;
    refs[0].OwnerId = testUsers[1].Id;
    refs[1].Assigned__c = testUsers[0].Id;
    update refs;
    
    Map<Id, Referral__c> refMap2 = new Map<Id, Referral__c>([SELECT Id, Assigned__c, OwnerId FROM Referral__c WHERE Id IN :refs]);
    
    system.assertEquals(refMap2.get(refs[0].Id).Assigned__c,testUsers[1].Id); // Assigned__c should equal OwnerId now
    system.assertEquals(refMap2.get(refs[1].Id).OwnerId,testUsers[0].Id); // OwnerId should equal Assigned__c now
  }  
}

 

This was selected as the best answer