You need to sign in to do that
Don't have an account?

how to write test class for this batch class
global class ZuoraProductRatePlanChargeHandlerBatch implements Database.Batchable<sObject>
{
global Database.QueryLocator start(Database.BatchableContext BC){
String Query ='SELECT Id, Rate_Plan_Charge__c, Rate_Plan_Charge__r.Invoice_Display_Name__c,Subscription_Product_Charge__c,Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c,Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.id,Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c FROM SPG_Product_User__c WHERE Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__c != null';
return database.getQueryLocator(query);
}
global void execute(Database.BatchableContext Bc, List<SPG_Product_User__c> puList){
map<id, Zuora__SubscriptionRatePlan__c> mapValues = new Map<Id, Zuora__SubscriptionRatePlan__c>();
for(SPG_Product_User__c pu:puList){
if(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c != null && pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c == pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c){
}else if(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c == null || (pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c != null && pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c != pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c))
{
if (!mapValues.containsKey(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__c)){
Zuora__SubscriptionRatePlan__c tempSRP = new Zuora__SubscriptionRatePlan__c();
tempSRP.Id=pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.id;
tempSRP.PRPC_Invoice_Display_Name__c = pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c != null ? pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c : pu.Rate_Plan_Charge__r.Invoice_Display_Name__c;
mapValues.put(tempSRP.Id,tempSRP);
}
else {
mapValues.get(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__c).PRPC_Invoice_Display_Name__c = pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c != null ? pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c : pu.Rate_Plan_Charge__r.Invoice_Display_Name__c;
}
}
}
if(mapValues.size() >0 ){
update mapValues.values();
}
}
global void finish(Database.BatchableContext BC){
}
}
Thanks in Advance
{
global Database.QueryLocator start(Database.BatchableContext BC){
String Query ='SELECT Id, Rate_Plan_Charge__c, Rate_Plan_Charge__r.Invoice_Display_Name__c,Subscription_Product_Charge__c,Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c,Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.id,Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c FROM SPG_Product_User__c WHERE Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__c != null';
return database.getQueryLocator(query);
}
global void execute(Database.BatchableContext Bc, List<SPG_Product_User__c> puList){
map<id, Zuora__SubscriptionRatePlan__c> mapValues = new Map<Id, Zuora__SubscriptionRatePlan__c>();
for(SPG_Product_User__c pu:puList){
if(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c != null && pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c == pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c){
}else if(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c == null || (pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c != null && pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.PRPC_Invoice_Display_Name__c != pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c))
{
if (!mapValues.containsKey(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__c)){
Zuora__SubscriptionRatePlan__c tempSRP = new Zuora__SubscriptionRatePlan__c();
tempSRP.Id=pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__r.id;
tempSRP.PRPC_Invoice_Display_Name__c = pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c != null ? pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c : pu.Rate_Plan_Charge__r.Invoice_Display_Name__c;
mapValues.put(tempSRP.Id,tempSRP);
}
else {
mapValues.get(pu.Subscription_Product_Charge__r.Zuora__SubscriptionRatePlan__c).PRPC_Invoice_Display_Name__c = pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c != null ? pu.Subscription_Product_Charge__r.PRPC_Invoice_Display_Name__c : pu.Rate_Plan_Charge__r.Invoice_Display_Name__c;
}
}
}
if(mapValues.size() >0 ){
update mapValues.values();
}
}
global void finish(Database.BatchableContext BC){
}
}
Thanks in Advance