+ Start a Discussion
Sylvio AvillaSylvio Avilla 

Test Class for Overlap Trigger

Hello Everyone,

I'm having some trouble to get 75% coverage for the Trigger below:
 
trigger Overlap on Viagem__c  (before insert, before update) {
    
List<Viagem__c> overlaps=[select Name,Observa_o__c,Data_Chegada_Base__c,Hora_Saida_Base__c,Hora_Inicio_Linha__c,Hora_Fim_Linha__c,Hora_Chegada_Base__c,Data_da_Viagem__c,Motorista__c,Veiculo__c from Viagem__c
  where ((Hora_Saida_Base__c >:trigger.new[0].Hora_Saida_Base__c 
        AND Hora_Saida_Base__c < :trigger.new[0].Hora_Chegada_Base__c) OR
        (Hora_Chegada_Base__c  > :trigger.new[0].Hora_Saida_Base__c 
        AND Hora_Chegada_Base__c  < :trigger.new[0].Hora_Chegada_Base__c) OR
        (Hora_Saida_Base__c < :trigger.new[0].Hora_Saida_Base__c 
         AND Hora_Chegada_Base__c  > :trigger.new[0].Hora_Chegada_Base__c))
         AND Veiculo__c=:trigger.new[0].Veiculo__c 
         AND Data_da_Viagem__c=:trigger.new[0].Data_da_Viagem__c
             AND      Id !=:trigger.new[0].Id      ];

   if (!overlaps.isEmpty() )
{  
    if (trigger.new[0].Hora_Saida_Base__c == null|| trigger.new[0].Data_Chegada_Base__c <> trigger.new[0].Data_da_Viagem__c )
    {}
    Else {
        If (overlaps[0].Motorista__c == trigger.new[0].Motorista__c){
         
   trigger.new[0].addError('<span>Viagem com horário concorrente para o Veículo!<b></b></br><b>Viagem:</b></span>'
                           +overlaps[0].Name+'<span><b>.</b></br><b>Ficha:</b></span>'+overlaps[0].Observa_o__c
                           +'<span><b>.</b></br><b>Saída da Base:</b></span>'+overlaps[0].Hora_Saida_Base__c
                           +'<span><b>.</b></br><b>Chegada na Base:</b></span>'+overlaps[0].Hora_Chegada_Base__c
                           ,false);}
        
        Else{   //trigger.new[0].Duplicado__c = overlaps[0].Name;

   trigger.new[0].addError('<span>Viagem com horário concorrente para o Motorista!<b></b></br><b>Viagem:</b></span>'
                           +overlaps[0].Name+'<span><b>.</b></br><b>Ficha:</b></span>'+overlaps[0].Observa_o__c
                           +'<span><b>.</b></br><b>Saída da Base:</b></span>'+overlaps[0].Hora_Saida_Base__c
                           +'<span><b>.</b></br><b>Chegada na Base:</b></span>'+overlaps[0].Hora_Chegada_Base__c
                           ,false);}
   
    }
    
}        
}

The Test is this:
 
@isTest 
public class TestOverlap {
  static testMethod void TestOverlapComOverlap() {
      
       

            date mydate = date.parse('01/01/2015');
        
        Itinerario_Diario__c itinerario = new Itinerario_Diario__c (Dia__c = mydate );
        insert itinerario;
          
        Funcionarios__c motorista = new Funcionarios__c();
        insert motorista;
            
        Veiculo__c veiculo = new Veiculo__c ();
        insert veiculo;
   
      Viagem__c teste = new Viagem__c( 
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0100',
      Hora_Inicio_Linha__c = '0200',
      Hora_Fim_Linha__c = '0300',
      Hora_Chegada_Base__c = '0400',
      Motorista__c = motorista.ID,
      Veiculo__c = veiculo.ID  )   ;
      insert teste;
      
      
      try{
             
      Viagem__c testeduplicado = new Viagem__c( 
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0110',
      Hora_Inicio_Linha__c = '0210',
      Hora_Fim_Linha__c = '0310',
      Hora_Chegada_Base__c = '0410',
      Motorista__c = motorista.ID,
      Veiculo__c = motorista.ID);
      insert testeduplicado;
      
    }  
      catch(DmlException e) { 
    System.debug('The following exception has occurred: ' + e.getMessage());
      }        
  }

Cloud anyone point me the right direction

Thanks
 
Best Answer chosen by Sylvio Avilla
Abhishek BansalAbhishek Bansal
Hi,

Change your test class code and add another method in it like this :

@isTest
public class TestOverlap {
  static testMethod void TestOverlapComOverlap() {
      
       

            date mydate = date.parse('01/01/2015');
        
        Itinerario_Diario__c itinerario = new Itinerario_Diario__c (Dia__c = mydate );
        insert itinerario;
          
        Funcionarios__c motorista = new Funcionarios__c();
        insert motorista;
            
        Veiculo__c veiculo = new Veiculo__c ();
        insert veiculo;
   
      Viagem__c teste = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0100',
      Hora_Inicio_Linha__c = '0200',
      Hora_Fim_Linha__c = '0300',
      Hora_Chegada_Base__c = '0400',
      Motorista__c = motorista.ID,
      Veiculo__c = veiculo.ID  )   ;
      insert teste;
      
      
      try{
             
      Viagem__c testeduplicado = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0110',
      Hora_Inicio_Linha__c = '0210',
      Hora_Fim_Linha__c = '0310',
      Hora_Chegada_Base__c = '0410',
      Motorista__c = motorista.ID,
      Veiculo__c = motorista.ID);
      insert testeduplicado;
      
    }  
      catch(DmlException e) {
    System.debug('The following exception has occurred: ' + e.getMessage());
      }

static testMethod void TestOverlapComOverlap1() {
      
       

            date mydate = date.parse('01/01/2015');
        
        Itinerario_Diario__c itinerario = new Itinerario_Diario__c (Dia__c = mydate );
        insert itinerario;
          
        Funcionarios__c motorista = new Funcionarios__c();
        insert motorista;
        
        Funcionarios__c motorista1 = new Funcionarios__c();
        insert motorista1;
            
        Veiculo__c veiculo = new Veiculo__c ();
        insert veiculo;
   
      Viagem__c teste = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0100',
      Hora_Inicio_Linha__c = '0200',
      Hora_Fim_Linha__c = '0300',
      Hora_Chegada_Base__c = '0400',
      Motorista__c = motorista.ID,
      Veiculo__c = veiculo.ID  )   ;
      insert teste;
      
      
      try{
             
      Viagem__c testeduplicado = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0110',
      Hora_Inicio_Linha__c = '0210',
      Hora_Fim_Linha__c = '0310',
      Hora_Chegada_Base__c = '0410',
      Motorista__c = motorista1.ID,
      Veiculo__c = motorista1.ID);
      insert testeduplicado;
      
    }  
      catch(DmlException e) {
    System.debug('The following exception has occurred: ' + e.getMessage());
      }   
       
  }

Regards,
Abhishek

All Answers

Abhishek BansalAbhishek Bansal
Hi,

Change your test class code and add another method in it like this :

@isTest
public class TestOverlap {
  static testMethod void TestOverlapComOverlap() {
      
       

            date mydate = date.parse('01/01/2015');
        
        Itinerario_Diario__c itinerario = new Itinerario_Diario__c (Dia__c = mydate );
        insert itinerario;
          
        Funcionarios__c motorista = new Funcionarios__c();
        insert motorista;
            
        Veiculo__c veiculo = new Veiculo__c ();
        insert veiculo;
   
      Viagem__c teste = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0100',
      Hora_Inicio_Linha__c = '0200',
      Hora_Fim_Linha__c = '0300',
      Hora_Chegada_Base__c = '0400',
      Motorista__c = motorista.ID,
      Veiculo__c = veiculo.ID  )   ;
      insert teste;
      
      
      try{
             
      Viagem__c testeduplicado = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0110',
      Hora_Inicio_Linha__c = '0210',
      Hora_Fim_Linha__c = '0310',
      Hora_Chegada_Base__c = '0410',
      Motorista__c = motorista.ID,
      Veiculo__c = motorista.ID);
      insert testeduplicado;
      
    }  
      catch(DmlException e) {
    System.debug('The following exception has occurred: ' + e.getMessage());
      }

static testMethod void TestOverlapComOverlap1() {
      
       

            date mydate = date.parse('01/01/2015');
        
        Itinerario_Diario__c itinerario = new Itinerario_Diario__c (Dia__c = mydate );
        insert itinerario;
          
        Funcionarios__c motorista = new Funcionarios__c();
        insert motorista;
        
        Funcionarios__c motorista1 = new Funcionarios__c();
        insert motorista1;
            
        Veiculo__c veiculo = new Veiculo__c ();
        insert veiculo;
   
      Viagem__c teste = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0100',
      Hora_Inicio_Linha__c = '0200',
      Hora_Fim_Linha__c = '0300',
      Hora_Chegada_Base__c = '0400',
      Motorista__c = motorista.ID,
      Veiculo__c = veiculo.ID  )   ;
      insert teste;
      
      
      try{
             
      Viagem__c testeduplicado = new Viagem__c(
      Itinerario_Diario__c = itinerario.ID,
      Hora_Saida_Base__c = '0110',
      Hora_Inicio_Linha__c = '0210',
      Hora_Fim_Linha__c = '0310',
      Hora_Chegada_Base__c = '0410',
      Motorista__c = motorista1.ID,
      Veiculo__c = motorista1.ID);
      insert testeduplicado;
      
    }  
      catch(DmlException e) {
    System.debug('The following exception has occurred: ' + e.getMessage());
      }   
       
  }

Regards,
Abhishek
This was selected as the best answer
Sylvio AvillaSylvio Avilla
Thank you! It worked!