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
Akshay Alandkar 8Akshay Alandkar 8 

test class for this trigger class

public with sharing class BulkRequestDetailTriggerHelper extends GNT.TriggerHelper{
public static boolean skipTrigger = false;
Set<Id> bulkReqId = new Set<Id>();
Set<Id> uniqueGrantIdsSet = new Set<Id>();
Set<Id> grantId = new Set<Id>();
Set<Id> currentRecordId = new Set<Id>();
List<LSC_Bulk_Request__c> bulkRequestListToUpdate = new List<LSC_Bulk_Request__c>();
List<LSC_Bulk_Request_Detail__c> bulkReqDetList = new List<LSC_Bulk_Request_Detail__c>();
Set<String> selectedTypes;

public BulkRequestDetailTriggerHelper(){
}

public override void processBeforeInsert(){
if (skipTrigger==false) {
// checkDuplicates((List<LSC_Bulk_Request_Detail__c>) Trigger.New);
}
}
public override void processAfterInsert(){
if (skipTrigger==false) {
updateBulkRequest((List<LSC_Bulk_Request_Detail__c>) Trigger.New);
UpdateNoofAmendmentRequests(Trigger.New);
UpdateNoOfProgressReport(Trigger.New);
UpdateNoofPaymentRequests(Trigger.New);
}
}
public override void processBeforeDelete(){
if (skipTrigger==false) {
//updtGrntCountBR((List<LSC_Bulk_Request_Detail__c>) Trigger.Old);
System.debug('we are Trigger.Old==>>'+Trigger.Old);
}
}

private void updateBulkRequest(List<LSC_Bulk_Request_Detail__c> bulkReqDetailList) {
for(LSC_Bulk_Request_Detail__c bkDet : bulkReqDetailList) {
bulkReqId.add(bkDet.Bulk_Request__c);
}
System.debug('bulkReqId==>>'+bulkReqId);
List<LSC_Bulk_Request_Detail__c> allBulkDetailRecords = [Select id, Name,Bulk_Request__c,GrantId__c from LSC_Bulk_Request_Detail__c
where Bulk_Request__c = :bulkReqId];

if(allBulkDetailRecords.size() > 0){
for(LSC_Bulk_Request_Detail__c det: allBulkDetailRecords){
uniqueGrantIdsSet.add(det.GrantId__c);
System.debug('uniqueGrantIdsSet==>>'+uniqueGrantIdsSet);
}
}

List<LSC_Bulk_Request__c> bulkRecord = [Select Id,Status__c from LSC_Bulk_Request__c where Id = :bulkReqId];
system.debug('bulkRecord==>>'+bulkRecord);
if(bulkRecord.size() > 0){
for(LSC_Bulk_Request__c bk : bulkRecord){
//bk.TotalGrantsIncluded__c = uniqueGrantIdsSet.size();
bk.Status__c = 'Created';
// bk.Id = bulkRecord.Id;
bulkRequestListToUpdate.add(bk);
system.debug('coming here==>>'+bulkRequestListToUpdate);
}
}
if(bulkRequestListToUpdate.size() >0){
system.debug('bulkRequestListToUpdate==>>'+bulkRequestListToUpdate.size());
BulkRequestTriggerHelper.skipTrigger = true;
update bulkRequestListToUpdate;
BulkRequestTriggerHelper.skipTrigger = false;
}
}
//check if grant already selected
/* private void checkDuplicates(List<LSC_Bulk_Request_Detail__c> bulkReqDetailList) {
System.debug('bulkReqDetailList==>>'+bulkReqDetailList);
List<LSC_Bulk_Request_Detail__c> existing = [SELECT Bulk_Request__c,GrantId__c,Id,Name FROM LSC_Bulk_Request_Detail__c];
System.debug('existing ==>>'+existing);
for(LSC_Bulk_Request_Detail__c brdn : bulkReqDetailList){
for(LSC_Bulk_Request_Detail__c brde : existing){
if(brde.GrantId__c == brdn.GrantId__c){
System.debug('brde.GrantId__c==>>'+brde.GrantId__c);
System.debug('brdn.GrantId__c==>>'+brdn.GrantId__c);
brdn.addError('Duplicate grants cannot be added');
//ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.WARNING,GNT.ErrorMessageHelper.fetchMessage('P07-GRNTR-34616')));
}
}
}
}*/

//Added by Parul on 12/10/2022
private void UpdateNoofAmendmentRequests(List<LSC_Bulk_Request_Detail__c> lstBulkRec){
Set<Id> grntIds = new Set<Id>();
List<Grant__c> zeroLst = new List<Grant__c>();
for (LSC_Bulk_Request_Detail__c bdr: lstBulkRec){
if (bdr.GrantId__c != null){
Grant__c grnt = new Grant__c();
grnt.id = bdr.GrantId__c;
grnt.NoOfAmendmentReq__c = 0;
zeroLst.add(grnt);
grntIds.add(bdr.GrantId__c);
}
}
System.debug('grntIds==>>'+grntIds);
if(grntIds.size() == 0){
return;
}
List<Grant__c> grntsFieldsToup = new List<Grant__c>();
for(AggregateResult ar : [SELECT Grant__c,COUNT(Id) pendngAmd FROM AmendmentRequest__c WHERE Grant__c =:grntIds AND
Status__c NOT IN ('Approved', 'Rejected','Force Closed')group by Grant__c]){
System.debug('ar ==>>'+ar);
Grant__c gnt = new Grant__c();
gnt.Id = (Id)ar.get('Grant__c');
gnt.NoOfAmendmentReq__c = (Integer)ar.get('pendngAmd');
grntsFieldsToUp.add(gnt);
}
// GrantTriggerHelper.skipTrigger = true;
update grntsFieldsToUp;
// GrantTriggerHelper.skipTrigger = false;
//update count zero if nothing pending
if(grntsFieldsToUp.size() == 0){
update zeroLst;
}
}
private void UpdateNoofPaymentRequests(List<LSC_Bulk_Request_Detail__c> lstBulkRec){
Set<Id> grntIds = new Set<Id>();
List<Grant__c> zeroLst = new List<Grant__c>();
for (LSC_Bulk_Request_Detail__c bdr : lstBulkRec){
if (bdr.GrantId__c != null){
Grant__c grnt = new Grant__c();
grnt.id = bdr.GrantId__c;
grnt.NoOfPaymentReq__c = 0;
zeroLst.add(grnt);
grntIds.add(bdr.GrantId__c);
}
}
System.debug('grntIds==>>'+grntIds);
if(grntIds.size() == 0){
return;
}
List<Grant__c> grntsFieldsToup = new List<Grant__c>();
for(AggregateResult ar : [SELECT Grant__c,COUNT(Id) pymntCount FROM PaymentRequest__c WHERE Grant__c =:grntIds AND
Status__c NOT IN :new List<String>{PaymentRequestStaticUtility.PAYMENT_REQUEST_STATUS_PAID,PaymentRequestStaticUtility.PAYMENT_REQUEST_STATUS_REJECTED, PaymentRequestStaticUtility.PAYMENT_REQUEST_STATUS_APPROVED, PaymentRequestStaticUtility.PAYMENT_REQUEST_STATUS_FORCECLOSED} group by Grant__c]){
System.debug('ar ==>>'+ar);
Grant__c gnt = new Grant__c();
gnt.Id = (Id)ar.get('Grant__c');
gnt.NoOfPaymentReq__c = (Integer)ar.get('pymntCount');
grntsFieldsToUp.add(gnt);
}
// GrantTriggerHelper.skipTrigger = true;
update grntsFieldsToUp;
// GrantTriggerHelper.skipTrigger = false;
//update count zero if nothing pending
if(grntsFieldsToUp.size() == 0){
update zeroLst;
}
}

private void UpdateNoOfProgressReport(List<LSC_Bulk_Request_Detail__c> lstBulkRec){
Set<Id> grntIds = new Set<Id>();
List<Grant__c> zeroLst = new List<Grant__c>();
for (LSC_Bulk_Request_Detail__c bdr : lstBulkRec){
if (bdr.GrantId__c != null){
Grant__c grnt = new Grant__c();
grnt.id = bdr.GrantId__c;
grnt.NoOfProgRep__c = 0;
zeroLst.add(grnt);
grntIds.add(bdr.GrantId__c);
}
}
System.debug('grntIds==>>'+grntIds);
if(grntIds.size() == 0){
return;
}
List<Grant__c> grntsFieldsToup = new List<Grant__c>();
for(AggregateResult ar : [SELECT Grant__c,COUNT(Id) prgRCount FROM ProgressReports__c WHERE Grant__c =:grntIds AND
Status__c NOT IN ('Approved','Rejected','Force Closed') group by Grant__c]){
System.debug('ar ==>>'+ar);
Grant__c gnt = new Grant__c();
gnt.Id = (Id)ar.get('Grant__c');
gnt.NoOfProgRep__c = (Integer)ar.get('prgRCount');
grntsFieldsToUp.add(gnt);
}
// GrantTriggerHelper.skipTrigger = true;
update grntsFieldsToUp;
//GrantTriggerHelper.skipTrigger = false;
//update count zero if nothing pending
if(grntsFieldsToUp.size() == 0){
update zeroLst;
}
}
}
AnkaiahAnkaiah (Salesforce Developers) 
Akshay,

Refer the below trailhead will help you to proceed further on your test class.

https://trailhead.salesforce.com/content/learn/modules/apex_testing/apex_testing_intro

Thanks!!