You need to sign in to do that
Don't have an account?
isalew
Apex Test Auto-Create Record, "sObject type is not supported"
I have built a trigger that creates a custom object when a Lead record meets certain criteria. They are then associated by a lookup relationship.
By manual testing, the trigger works, but how do I write the apex test?
Currently, my code is as follows:
------------------------------------------------------------
@isTest
private without sharing class LC_TestClass{
static testmethod void CRED_Test(){
//Insert LD1
Lead LD1 = new Lead(
LastName = 'LD1',
Email = 'LD1@LCA.com',
Company = 'LCA',
Status = 'Open - Not Contacted'
);
insert LD1;
//Verify LCA
LD1 = [SELECT ID, Company, LC_Lead_Company__c, Status, LC_Status__c, OwnerID FROM Lead WHERE ID = :LD1.id];
LCA = [SELECT ID, Name, OwnerID, Status__c, Lead_Count__c, Domain__c FROM LeadCompay__c WHERE Domain__c = :LD1.LC_Email_Domain__c];
System.assertEquals( LD1.LC_Company__c, LCA.Id);
System.assertEquals( LD1.OwnerId , LCA.OwnerId );
System.assertEquals( 'LCA' , LCA.Name );
System.assertEquals( 'Open - Not Contacted' , LCA.Status__c );
System.assertEquals( '1' , LCA.Lead_Count__c );
------------------------------------------------------------
Unfortunately, the developer console gives me the following error from line 18:
sObject type 'LeadCompany__c' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name...
Any help?
By manual testing, the trigger works, but how do I write the apex test?
Currently, my code is as follows:
------------------------------------------------------------
@isTest
private without sharing class LC_TestClass{
static testmethod void CRED_Test(){
//Insert LD1
Lead LD1 = new Lead(
LastName = 'LD1',
Email = 'LD1@LCA.com',
Company = 'LCA',
Status = 'Open - Not Contacted'
);
insert LD1;
//Verify LCA
LD1 = [SELECT ID, Company, LC_Lead_Company__c, Status, LC_Status__c, OwnerID FROM Lead WHERE ID = :LD1.id];
LCA = [SELECT ID, Name, OwnerID, Status__c, Lead_Count__c, Domain__c FROM LeadCompay__c WHERE Domain__c = :LD1.LC_Email_Domain__c];
System.assertEquals( LD1.LC_Company__c, LCA.Id);
System.assertEquals( LD1.OwnerId , LCA.OwnerId );
System.assertEquals( 'LCA' , LCA.Name );
System.assertEquals( 'Open - Not Contacted' , LCA.Status__c );
System.assertEquals( '1' , LCA.Lead_Count__c );
------------------------------------------------------------
Unfortunately, the developer console gives me the following error from line 18:
sObject type 'LeadCompany__c' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name...
Any help?
The "sObject Type not supported" error was resolved by a basic spelling correction: "LeadCompay__c" on line 18 should have been "LeadCompany__c"
I also improved the query by referencing the relationship between LD1 and LCA in one SOQL query:
LD1 = [SELECT ID, LC_Lead_Company__c, Status, OwnerID, LC_Lead_Company__r.Name, LC_Lead_Company__r.OwnerId, LC_Lead_Company__r.Status__c, LC_Lead_Company__r.Lead_Count__c, LC_Lead_Company__r.Domain__c FROM Lead WHERE ID = :LD1.id];
All Answers
-Glyn
Furthermore, I tried declaring this field in the test, and the same error appears.
The "sObject Type not supported" error was resolved by a basic spelling correction: "LeadCompay__c" on line 18 should have been "LeadCompany__c"
I also improved the query by referencing the relationship between LD1 and LCA in one SOQL query:
LD1 = [SELECT ID, LC_Lead_Company__c, Status, OwnerID, LC_Lead_Company__r.Name, LC_Lead_Company__r.OwnerId, LC_Lead_Company__r.Status__c, LC_Lead_Company__r.Lead_Count__c, LC_Lead_Company__r.Domain__c FROM Lead WHERE ID = :LD1.id];