You need to sign in to do that
Don't have an account?
Sandesh Vishwakarma 9
Hello Wonderful people, Please help me out with the test class code for this trigger and handler class
Apex Trigger :-
trigger TruckSupplyActual on Truck_Supply_Actual__c (after insert, after update) {
if(Trigger.isAfter && Trigger.isInsert)
{
TriggerHandler.insertRecord(Trigger.new);
}
if(Trigger.isBefore || Trigger.isAfter && Trigger.isUpdate )
{
TriggerHandler.updateRecord(Trigger.newMap, Trigger.oldMap);
}
}
--------------------------------------------------------------------------------------------------------------
Apex Handler Class :-
public class TriggerHandler {
public static void insertRecord(list<Truck_Supply_Actual__c> recordList ){
list<Truck_Supply_Booking__c> truckSupplyBookinggList = new list<Truck_Supply_Booking__c>();
for(Truck_Supply_Actual__c a : recordList){
if(a.Amount__c != null){
Decimal i = a.Amount__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.ID;
truckSupplyBookingList.Date__c = system.today();
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
insert truckSupplyBookinggList;
}
}
public static void updateRecord(Map<id,Truck_Supply_Actual__c> newValues , Map <id,Truck_Supply_Actual__c> oldValues){
list<Truck_Supply_Booking__c> truckSupplyBookinggList = new list<Truck_Supply_Booking__c>();
for(Truck_Supply_Actual__c a : newValues.values())
{
if(oldValues.get(a.Id).Additional_Amount__c != newValues.get(a.Id).Additional_Amount__c)
{
Truck_Supply_Actual__c record = [Select Id, Additional_Amount__c From Truck_Supply_Actual__c WHERE id =: a.Id];
record.Additional_1_Created__c = true;
update record;
Decimal i = newValues.get(a.Id).Additional_Amount__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.Id;
truckSupplyBookingList.Date__c = a.Date__c;
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
// -------------------------------- 2 -----------------------------------
if(oldValues.get(a.Id).Additional_Amount_2__c != newValues.get(a.Id).Additional_Amount_2__c)
{
Truck_Supply_Actual__c recordd = [Select Id, Additional_Amount_2__c From Truck_Supply_Actual__c WHERE id =: a.Id];
recordd.Additional_2_Created__c = true;
update recordd;
Decimal i = newValues.get(a.Id).Additional_Amount_2__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.Id;
truckSupplyBookingList.Date__c = a.Date__c;
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
//------------------------------------- 3 ----------------------------
if(oldValues.get(a.Id).Additional_Amount_3__c != newValues.get(a.Id).Additional_Amount_3__c)
{
Truck_Supply_Actual__c recordd = [Select Id, Additional_Amount_3__c From Truck_Supply_Actual__c WHERE id =: a.Id];
recordd.Additional_3_Created__c = true;
update recordd;
Decimal i = newValues.get(a.Id).Additional_Amount_3__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.Id;
truckSupplyBookingList.Date__c = a.Date__c;
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
}
insert truckSupplyBookinggList;
}
}
trigger TruckSupplyActual on Truck_Supply_Actual__c (after insert, after update) {
if(Trigger.isAfter && Trigger.isInsert)
{
TriggerHandler.insertRecord(Trigger.new);
}
if(Trigger.isBefore || Trigger.isAfter && Trigger.isUpdate )
{
TriggerHandler.updateRecord(Trigger.newMap, Trigger.oldMap);
}
}
--------------------------------------------------------------------------------------------------------------
Apex Handler Class :-
public class TriggerHandler {
public static void insertRecord(list<Truck_Supply_Actual__c> recordList ){
list<Truck_Supply_Booking__c> truckSupplyBookinggList = new list<Truck_Supply_Booking__c>();
for(Truck_Supply_Actual__c a : recordList){
if(a.Amount__c != null){
Decimal i = a.Amount__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.ID;
truckSupplyBookingList.Date__c = system.today();
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
insert truckSupplyBookinggList;
}
}
public static void updateRecord(Map<id,Truck_Supply_Actual__c> newValues , Map <id,Truck_Supply_Actual__c> oldValues){
list<Truck_Supply_Booking__c> truckSupplyBookinggList = new list<Truck_Supply_Booking__c>();
for(Truck_Supply_Actual__c a : newValues.values())
{
if(oldValues.get(a.Id).Additional_Amount__c != newValues.get(a.Id).Additional_Amount__c)
{
Truck_Supply_Actual__c record = [Select Id, Additional_Amount__c From Truck_Supply_Actual__c WHERE id =: a.Id];
record.Additional_1_Created__c = true;
update record;
Decimal i = newValues.get(a.Id).Additional_Amount__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.Id;
truckSupplyBookingList.Date__c = a.Date__c;
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
// -------------------------------- 2 -----------------------------------
if(oldValues.get(a.Id).Additional_Amount_2__c != newValues.get(a.Id).Additional_Amount_2__c)
{
Truck_Supply_Actual__c recordd = [Select Id, Additional_Amount_2__c From Truck_Supply_Actual__c WHERE id =: a.Id];
recordd.Additional_2_Created__c = true;
update recordd;
Decimal i = newValues.get(a.Id).Additional_Amount_2__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.Id;
truckSupplyBookingList.Date__c = a.Date__c;
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
//------------------------------------- 3 ----------------------------
if(oldValues.get(a.Id).Additional_Amount_3__c != newValues.get(a.Id).Additional_Amount_3__c)
{
Truck_Supply_Actual__c recordd = [Select Id, Additional_Amount_3__c From Truck_Supply_Actual__c WHERE id =: a.Id];
recordd.Additional_3_Created__c = true;
update recordd;
Decimal i = newValues.get(a.Id).Additional_Amount_3__c;
for(Integer j=1;j<=i;j++){
Truck_Supply_Booking__c truckSupplyBookingList = new Truck_Supply_Booking__c();
truckSupplyBookingList.Truck_Supply_Actual__c = a.Id;
truckSupplyBookingList.Date__c = a.Date__c;
truckSupplyBookingList.Status__c = 'Available';
truckSupplyBookingList.truck__c = a.Truck__c;
truckSupplyBookinggList.add(truckSupplyBookingList);
}
}
}
insert truckSupplyBookinggList;
}
}
Can you confirm what is the relation between Truck_Supply_Actual__c,Truck_Supply_Booking__c so I can share the test class for you.
Thanks,
Is Truck_Supply_Booking__c child ?
Thanks,
Yes.
Truck_Supplies_Booking is a child.
Can you confirm what type of field is Truck__c. As I have to replicate entire structure in my org need these information.
Thanks,
Can you try the below test class it gave me 100% coverage. Make sure you give all the required fields while inserting Truck and Truck_Supply_Actual__c.
Let me know if you face any issues.
If this solution helps, Please mark it as best answer.
Thanks,
Can you confirm what is not working. Are you able to save the test class ? Is it failing with some error?
Thanks,