+ Start a Discussion
farah sheriffarah sherif 

guys i need a test class for this trigger please

public class VerifyDate {
//method to handle potential checks against two dates
public static Date CheckDates(Date date1, Date date2) {
//if date2 is within the next 30 days of date1, use date2. Otherwise use the end of the month
if(DateWithin30Days(date1,date2)) {
return date2;
} else {
return SetEndOfMonthDate(date1);
}
}
//method to check if date2 is within the next 30 days of date1
private static Boolean DateWithin30Days(Date date1, Date date2) {
//check for date2 being in the past
if( date2 < date1) { return false; }
//check that date2 is within (>=) 30 days of date1
Date date30Days = date1.addDays(30); //create a date 30 days away from date1
if( date2 >= date30Days ) { return false; }
else { return true; }
}
//method to return the end of the month of a given date
private static Date SetEndOfMonthDate(Date date1) {
Integer totalDays = Date.daysInMonth(date1.year(), date1.month());
Date lastDay = Date.newInstance(date1.year(), date1.month(), totalDays);
return lastDay;
}
}
Best Answer chosen by farah sherif
Raj VakatiRaj Vakati
Try this .. it also works 
 
@isTest
private class VerifyDateTest {
    @isTest static void testCheckDates()  {
        Date firstDate = Date.newInstance(2016,04,11);
        Date secondDate = Date.newInstance( 2016,04,16);
        Date tested = VerifyDate.CheckDates(firstDate,secondDate);
        System.assertEquals(tested , secondDate);
    }

     @isTest static void testOutOfRangeDates()  {
        Date firstDate = Date.newInstance(2016,04,11);
        Date secondDate = Date.newInstance( 2016,06,16);
        Date tested1 = VerifyDate.CheckDates(firstDate,secondDate);
        Date endofMonth = Date.newInstance(2016, 04, 31);
         System.assertEquals(endofMonth, tested1);
  
    }

    
    
}

 

All Answers

Raj VakatiRaj Vakati
Try this code
 
@isTest
public class TestVerifyDate {
    //potentialcheck
    @isTest static void testCheckDates(){
        Date checkDate = VerifyDate.CheckDates(date.today(),date.today().addDays(20));
        System.assertEquals(Date.newInstance(2018,5,26), checkDate);
    }
    @isTest static void testCheckDates1(){
        Date checkDate = VerifyDate.CheckDates(date.today(),date.today().addDays(30));
        System.assertEquals(Date.newInstance(2018,5,31), checkDate); 
    }
    //checkboolean
    @isTest static void testDateWithin30Days(){
        Date date1 = date.today();
        Date date2 = date.today().addDays(-2);
        Boolean testDate = VerifyDate.DateWithin30Days(date1,date2);
        System.assertEquals(false,testDate);
    }
    @isTest static void testDateWithin30Days1(){
        Date date1 = date.today();
        Date date2 = date.today().addDays(2);
        Boolean testDate = VerifyDate.DateWithin30Days(date1,date2);
        System.assertEquals(true,testDate);
    }
    @isTest static void testDateWithin30Days2(){
        Date date1 = date.today();
        Date date2 = date.today().addDays(2);
        Boolean testDate = VerifyDate.DateWithin30Days(date1,date2);
        System.assertEquals(true,testDate);
    }    
    //return end of date the month
    @isTest static void testSetEndOfMonthDate(){
        Date lastDate = VerifyDate.SetEndOfMonthDate(date.today());
        System.assertEquals(Date.newInstance(2018,5,31),lastDate);
    }
}

 
Raj VakatiRaj Vakati
Try this .. it also works 
 
@isTest
private class VerifyDateTest {
    @isTest static void testCheckDates()  {
        Date firstDate = Date.newInstance(2016,04,11);
        Date secondDate = Date.newInstance( 2016,04,16);
        Date tested = VerifyDate.CheckDates(firstDate,secondDate);
        System.assertEquals(tested , secondDate);
    }

     @isTest static void testOutOfRangeDates()  {
        Date firstDate = Date.newInstance(2016,04,11);
        Date secondDate = Date.newInstance( 2016,06,16);
        Date tested1 = VerifyDate.CheckDates(firstDate,secondDate);
        Date endofMonth = Date.newInstance(2016, 04, 31);
         System.assertEquals(endofMonth, tested1);
  
    }

    
    
}

 
This was selected as the best answer
farah sheriffarah sherif
thanks raj