write a test class for below mention class

trigger SubscriptionProductChargeTrigger on Zuora__SubscriptionProductCharge__c (after insert, after update) {
    
    List<Zuora__SubscriptionProductCharge__c> lstSub = new List<Zuora__SubscriptionProductCharge__c>();
    if(!AccountTriggerHelper.isRecursive){
        List<id> ids=new List<id>();
        for(Zuora__SubscriptionProductCharge__c sp: Trigger.new){
            ids.add(sp.Zuora__Subscription__c) ;
        }
        List<String> skuList=new List<String>();
        for(Zuora__SubscriptionProductCharge__c sp: Trigger.new){
            skuList.add(sp.Zuora__ProductSKU_Product__c);
        }
        
        List<Zuora__Product__c > productList=[SELECT id, Zuora__SKU__c   FROM Zuora__Product__c  WHERE Zuora__SKU__c  in:skuList];
        Map<String,id> skuToProductIdmap=new Map<String,id>();
        for(Zuora__Product__c  prod:productList){
            skuToProductIdmap.put(prod.Zuora__SKU__c , prod.Id);
        }
        
        for(Zuora__SubscriptionProductCharge__c sp: Trigger.new){
            if(((Trigger.isInsert && sp.DateofChurn__c != null && sp.ReasonforChurn__c != null) || 
                (Trigger.isupdate &&  sp.DateofChurn__c != null && sp.DateofChurn__c != Trigger.oldMap.get(sp.Id).DateofChurn__c
                 && sp.ReasonforChurn__c != null && sp.ReasonforChurn__c != Trigger.oldMap.get(sp.Id).ReasonforChurn__c))){
                     Zuora__SubscriptionProductCharge__c newSP = new Zuora__SubscriptionProductCharge__c();
                     newSP.Name = sp.Name;
                     newSP.Zuora__Type__c = 'Churned Product';
                     newSP.Zuora__TotalContractValue__c = sp.Zuora__TotalContractValue__c;
                     newSP.Zuora__BillingPeriod__c = sp.Zuora__BillingPeriod__c;
                     newSP.DateofChurn__c = sp.DateofChurn__c;
                     newSP.ReasonforChurn__c = sp.ReasonforChurn__c;
                     newSP.Zuora__EffectiveStartDate__c = sp.Zuora__EffectiveStartDate__c;
                     newSP.Zuora__EffectiveEndDate__c = sp.Zuora__EffectiveEndDate__c;
                     newSP.Zuora__Account__c = sp.Zuora__Account__c;
                     newSP.Zuora__Subscription__c = sp.Zuora__Subscription__c;
                     newSP.Zuora__Product__c = skuToProductIdmap.get(sp.Zuora__ProductSKU_Product__c);
                     newSP.currencyISOCode = sp.currencyISOCode;
                     newSP.Original_End_Date__c = Trigger.oldMap.get(sp.Id).Zuora__EffectiveEndDate__c;
                     newSP.Zuora__Price__c = sp.Zuora__Price__c;
                     newSP.Zuora__RatePlanName__c = sp.Zuora__RatePlanName__c;
                     newSP.Zuora__Model__c = sp.Zuora__Model__c;
                     newSP.ChurnNotes__c = sp.ChurnNotes__c;
                     newSP.Zuora__ExtendedAmount__c = sp.Zuora__ExtendedAmount__c;
                     newSP.Competitor__c = sp.Competitor__c;
                     lstSub.add(newSP);
                    system.debug(Logginglevel.error,'Original Zuora__Product__c value: '+ sp.Zuora__Product__c);
                     System.debug(Logginglevel.error,'New Zuora__Product__c value: ' + newSP.Zuora__Product__c);
                 }
        }
        AccountTriggerHelper.isRecursive = true;
        insert lstSub;
    }
}