You need to sign in to do that
Don't have an account?
Devendra Hirulkar 3
write test class of below trigger
Hello
the following is my trigger
and i have no idea to how to write test class so please help me sir
trigger copypro on Subsc__c (after insert,after update)
{
//Id recordTypeId = [Select Id From RecordType Where DeveloperName = 'User Group Membership'].Id;
Id recordTypeId = Schema.SObjectType.Subsc__c.getRecordTypeInfosByName().get('User Group Membership').getRecordTypeId();
List<Subsc__c> subscList = new List<Subsc__c>();
for (Subsc__c s : Trigger.new){
if(s.RecordTypeId == recordTypeId)
subscList.add(s);
}
Map<ID, Account> Acc = new Map<ID, Account>(); //Making it a map instead of list for easier lookup
List<Id> listIds = new List<Id>();
set<ID>cObjectID = new set<ID>(); //Making a set of Product ID's
Map<ID, Account> updateMap = new Map<ID, Account>();
for (Subsc__c s : subscList)
{
listIds.add(s.Company_Name__c);
if(s.Product__c != null)
{
cObjectID.add(s.Product__c );//takes the Lookup Record & Add that ID's in cObjectID set
}
}
if(!cObjectID.isEmpty()){
Map<ID,Product2> cObjectMap = new Map<ID,Product2>([select Id,Name from Product2 where Id IN: cObjectID]);
Acc = new Map<Id, Account>([SELECT id, Product_Name__c,(SELECT ID,Product__c FROM Subscs__r) FROM Account WHERE ID IN :listIds]);
for(Subsc__c s : subscList)
{
if(cObjectMap.get(s.Product__c ).Name != Null)
{
// fill the country name on Opportunity with Country Name on Country_Object__c
String pro= cObjectMap.get(s.Product__c ).Name;
Account myacc = acc.get(s.Company_Name__c);
if(myacc != null){ //always check for nulls to avoid null pointer exceptions
myacc.Product_Name__c =pro;
updateMap.put(myacc.Id,myacc);
}
}
}
update updateMap.values();
}
}
please ans as soon possible
thanks
devendra
the following is my trigger
and i have no idea to how to write test class so please help me sir
trigger copypro on Subsc__c (after insert,after update)
{
//Id recordTypeId = [Select Id From RecordType Where DeveloperName = 'User Group Membership'].Id;
Id recordTypeId = Schema.SObjectType.Subsc__c.getRecordTypeInfosByName().get('User Group Membership').getRecordTypeId();
List<Subsc__c> subscList = new List<Subsc__c>();
for (Subsc__c s : Trigger.new){
if(s.RecordTypeId == recordTypeId)
subscList.add(s);
}
Map<ID, Account> Acc = new Map<ID, Account>(); //Making it a map instead of list for easier lookup
List<Id> listIds = new List<Id>();
set<ID>cObjectID = new set<ID>(); //Making a set of Product ID's
Map<ID, Account> updateMap = new Map<ID, Account>();
for (Subsc__c s : subscList)
{
listIds.add(s.Company_Name__c);
if(s.Product__c != null)
{
cObjectID.add(s.Product__c );//takes the Lookup Record & Add that ID's in cObjectID set
}
}
if(!cObjectID.isEmpty()){
Map<ID,Product2> cObjectMap = new Map<ID,Product2>([select Id,Name from Product2 where Id IN: cObjectID]);
Acc = new Map<Id, Account>([SELECT id, Product_Name__c,(SELECT ID,Product__c FROM Subscs__r) FROM Account WHERE ID IN :listIds]);
for(Subsc__c s : subscList)
{
if(cObjectMap.get(s.Product__c ).Name != Null)
{
// fill the country name on Opportunity with Country Name on Country_Object__c
String pro= cObjectMap.get(s.Product__c ).Name;
Account myacc = acc.get(s.Company_Name__c);
if(myacc != null){ //always check for nulls to avoid null pointer exceptions
myacc.Product_Name__c =pro;
updateMap.put(myacc.Id,myacc);
}
}
}
update updateMap.values();
}
}
please ans as soon possible
thanks
devendra
FYI - I strongly recommend you to go through apex test class Trail head module, which will be useful for you to understand apex test class https://developer.salesforce.com/trailhead/force_com_programmatic_beginner/apex_testing/apex_testing_intro
(System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, offer: execution of AfterInsert
caused by: System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, AddCSR: execution of BeforeInsert
caused by: System.NullPointerException: Attempt to de-reference a null object
Trigger.AddCSR: line 4, column 1: []
Trigger.offer: line 10, column 1: [])
how to solve this problem and what changes needed
@istest
public class updateaccount
{
static testMethod void veriflyStudentupdation()
{
Account a = new Account(Name='Sam');
{
insert a;
Subsc__c s = new Subsc__c(Name = 'ram',Company_Name__c=a.Id,Product__c='xyz');
test.startTest();
insert s;
System.debug('Test Started.,..');
test.stopTest();
System.debug('Test Completed.,..');
Account upd_a = [Select Id,Product_Name__c from Account where id = :a.Id];
system.assertEquals(null, upd_a.Product_Name__c );
}
}
}
hi Devendra,try check the sobject variable or list for null check before insertion. This error commony occurs the variaiable you are trying to insert reurn null value. Do the check both in test class and trigger. put a null check some thing like this