• Anna Antonella Adiletta 1
  • NEWBIE
  • 25 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 6
    Questions
  • 6
    Replies
I have to write test class for this apex code:

public static void CreaEventoCorrispondente() {


        if (trigger.isInsert) {

            Map<Integer, Event> EventstoUpsert1 = new Map<Integer, Event> ();
            Map<Integer, Event> EventstoUpsert2 = new Map<Integer, Event> ();
            List<Schema.PicklistEntry> ple = Edizione__c.Lead_Tutor__c.getDescribe().getPicklistValues();
            List<String> cognomiTutor = new List<String> ();
            for (Schema.PicklistEntry p : ple) {
                cognomiTutor.add(p.getLabel());
            }
            Map<String, Id> CognomiIds = new Map<String, Id> ();
            for (User u :[SELECT Id, LastName FROM User WHERE LastName IN :cognomiTutor]) {
                CognomiIds.put(u.LastName, u.Id);
            }

            integer pos = 0;

        
            for (Edizione__c e : (List<Edizione__c>) trigger.new) {

                if (e.Lead_Tutor__c != NULL && CognomiIds.keySet().contains(e.Lead_Tutor__c)) {
                    Event newEvent1 = new Event(isAllDayEvent = TRUE, Location=e.Sede__c, Subject = e.Name, StartDateTime = (DateTime.newInstance(e.Data_inizio__c , (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Lead_Tutor__c));
                    EventstoUpsert1.put(pos, newEvent1);
                }
                if (e.Lead_Tutor__c != NULL && CognomiIds.keySet().contains(e.Second_Tutor__c)) {
                    Event newEvent2 = new Event(isAllDayEvent = TRUE, Location=e.Sede__c, Subject = e.Name, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Second_Tutor__c));
                    EventstoUpsert2.put(pos, newEvent2);
                }
                pos++;
            }
            if (!EventstoUpsert1.isEmpty()) {
                insert EventstoUpsert1.values();
                for (Integer i : EventstoUpsert1.keySet()) {
                    Edizione__c ed = ((Edizione__c) trigger.new[i]);
                    ed.IdEventoLeadTutor__c = EventstoUpsert1.get(i).Id;
                }

            }
            if (!EventstoUpsert2.isEmpty()) {
                insert EventstoUpsert2.values();
                for (Integer i : EventstoUpsert2.keySet()) {
                    Edizione__c ed = ((Edizione__c) trigger.new[i]);
                    ed.IdEventoSecondTutor__c = EventstoUpsert2.get(i).Id;
                }

            }

        } else if (trigger.isUpdate) {

            Map<Id, Event> EventstoUpsert1 = new Map<Id, Event> ();
            Map<Id, Event> EventstoUpsert2 = new Map<Id, Event> ();
            List<Schema.PicklistEntry> ple = Edizione__c.Lead_Tutor__c.getDescribe().getPicklistValues();
            List<String> cognomiTutor = new List<String> ();
            List<Id> EventstoDelete = new List<Id>();
            for (Schema.PicklistEntry p : ple) {
                cognomiTutor.add(p.getLabel());
            }
            Map<String, Id> CognomiIds = new Map<String, Id> ();
            for (User u :[SELECT Id, LastName FROM User WHERE LastName IN :cognomiTutor]) {
                CognomiIds.put(u.LastName, u.Id);
            }

            for (Edizione__c e : (List<Edizione__c>) trigger.new) {
                if (e.Lead_Tutor__c != ((Edizione__c) trigger.oldMap.get(e.Id)).Lead_Tutor__c) {
                    if (((Edizione__c) trigger.oldMap.get(e.Id)).Lead_Tutor__c == NULL){
                        Event ev = new Event();
                        ev = new Event(isAllDayEvent = TRUE, Subject = e.Name, Location=e.Sede__c, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Lead_Tutor__c));
                        EventstoUpsert1.put(e.Id, ev);
                    } else if (e.Lead_tutor__c == NULL) {
                        EventstoDelete.add(e.IdEventoLeadTutor__c);
                        e.IdEventoLeadTutor__c = NULL;
                    } else {
                        if (((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoLeadTutor__c != NULL) {
                            EventstoUpsert1.put(e.Id, new Event(Id = ((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoLeadTutor__c, OwnerId = CognomiIds.get(e.Lead_Tutor__c)));
                        }
                    }
                }
                if (e.Second_Tutor__c != ((Edizione__c) trigger.oldMap.get(e.Id)).Second_Tutor__c) {
                    if (((Edizione__c) trigger.oldMap.get(e.Id)).Second_Tutor__c == NULL){
                        Event ev = new Event();
                        ev = new Event(isAllDayEvent = TRUE, Subject = e.Name, Location=e.Sede__c, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Second_Tutor__c));
                        EventstoUpsert2.put(e.Id, ev);
                    } else if (e.Second_tutor__c == NULL) {
                        EventstoDelete.add(e.IdEventoSecondTutor__c);
                        e.IdEventoSecondTutor__c = NULL;
                    } else {
                        if (((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoSecondTutor__c != NULL) {
                            EventstoUpsert2.put(e.Id, new Event(Id = ((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoSecondTutor__c, OwnerId =  CognomiIds.get(e.Second_Tutor__c)));
                        }
                    }
                }
            }

            if (!EventstoUpsert1.isEmpty()) {
                upsert EventstoUpsert1.values();
                for (Id i : EventstoUpsert1.keySet()) {
                    Edizione__c ed = ((Edizione__c) trigger.newMap.get(i));
                    ed.IdEventoSecondTutor__c = EventstoUpsert1.get(i).Id;
                }
            }
            if (!EventstoUpsert2.isEmpty()) {
                upsert EventstoUpsert2.values();
                for (Id i : EventstoUpsert2.keySet()) {
                    Edizione__c ed = ((Edizione__c) trigger.newMap.get(i));
                    ed.IdEventoSecondTutor__c = EventstoUpsert2.get(i).Id;
                }
            }
            if (!EventstoDelete.isEmpty()){
                List<Event> ETDL = new List<Event>();
                for (Id i : EventstoDelete){
                    ETDL.add(new Event(Id = i));
                }
                delete ETDL;
            }

        }

    }

This class retrive an apex trigger :

trigger Trigger_Edizione on Edizione__c (before update, before insert, after update, before delete) {
if (trigger.isBefore){
        if (!trigger.isDelete){
            EdizioneHelper.CreaEventoCorrispondente();
        } else {
            EdizioneHelper.CancellaEventoCorrispondente();
        }
    } 




The test class that I have writed is :

static testMethod void TestCreaEventoCorrispondente() {
     
     Map<Integer, Event> Events1 = new Map<Integer, Event> ();
      Map<Integer, Event> Events2 = new Map<Integer, Event> ();
     List <Schema.PicklistEntry> l_picklist = new List <Schema.PicklistEntry>();
     List <Id>l_Ids= new List <Id>();
     Map<String,Id> S_Ids = new Map <String,Id> ();
       
List <Edizione__c> l_ed= new List <Edizione__c>();
     Edizione__c edizione = new Edizione__c(Data_inizio__c=date.valueof('2016-09-07'),Data_fine__c=date.valueof('2016-09-07'),motivo_stato__c='edizione confermata', Codice_piattaforma__c='edizione',Sede__c='Milano',Name='ciccio',Data_Invio_al_Sito__c=date.valueof('2016-09-15'),Lead_Tutor__c='Colonna');
        insert edizione;
     l_ed.add(edizione);
   
       
        List <Event> l_ev = new List <Event>(); 
        Event ev = new Event (Location=edizione.Sede__c,Subject=edizione.name, IsAllDayEvent=false, StartDateTime = datetime.newInstance(2014, 11, 13, 16, 30, 0), EndDateTime = datetime.newInstance(2014, 11, 13, 18, 30, 0));
         l_ev.add(ev); 
        insert ev;
        
      
         User us = new User (Username='d.pippo@bridgepartners.it.dev',LastName='Pugliese',FirstName='Domenico', Email='d.pugliese@bridgepartners.it', Alias='dpugl', CommunityNickname='d.pippo', TimeZoneSidKey='Europe/Rome', LocaleSidKey='it_IT', EmailEncodingKey='ISO-8859-1', ProfileId='00e58000000ZU0WAAW', LanguageLocaleKey='it');
        insert us;
         update us;
    
     EdizioneHelper.CreaEventoCorrispondente();
     
     update ev;
     EdizioneHelper.CreaEventoCorrispondente();
     
     delete ev;
     EdizioneHelper.CreaEventoCorrispondente();
     
     delete l_ev;
     EdizioneHelper.CreaEventoCorrispondente();
   
         
     ev.IsAllDayEvent=true;
     update ev;
     EdizioneHelper.CreaEventoCorrispondente();
     
     edizione.Second_Tutor__c='Fioretti';
     update edizione;
     EdizioneHelper.CreaEventoCorrispondente();
     
 }
   

The result of run test  is :


System.NullPointerException: Attempt to de-reference a null object, when I write in the test class
EdizioneHelper.CreaEventoCorrispondente(); 
and when I write   if (trigger.isInsert)  in the apex class


 
Hi, I have to write test class for this apex code: 

global class IntegrationUtils {
    public class IntegrationUtilsException extends Exception{}

    public static Httpresponse sendSoapRequest(String endPoint,String soapMessage){
      return IntegrationUtils.sendSoapRequest(endPoint, soapMessage, 10000);
    }
    public static Httpresponse sendSoapRequest(String endPoint,String soapMessage,Integer timeOut){
        
        if (endPoint==null || endPoint=='' || soapMessage==null || soapMessage=='' || timeOut == null)
            throw new IntegrationUtilsException('Input parameters not correct!!');
        
        HttpResponse res = null;
        
        System.debug(Logginglevel.INFO,soapMessage);
        
        try{
        
            Http h = new Http();
            HttpRequest req = new HttpRequest();
            req.setMethod('POST');
            req.setHeader('Accept-Encoding','gzip,deflate');
            req.setHeader('Content-Type','text/xml;charset=UTF-8');
                    
            req.setEndpoint(endPoint);              
            req.setHeader('Content-Length',String.valueOf(soapMessage.length()));
            
            req.setBody(soapMessage);
            req.setTimeout(timeOut);
            res=h.send(req);
            System.debug(Logginglevel.INFO,'Soap response:' + res.getBody());           
            return res;
        }
        
        catch(Exception e){
            return null;
            //throw new IntegrationUtilsException('Error setting or invoking HttpRequest with provided SOAP');
        }           
    }

    public static String replaceInTemplate(String template, Map<String,String> placeholderContentMap){
        
        if (template==null || template=='' || placeholderContentMap==null)
            throw new IntegrationUtilsException('Input parameters not correct!!');
        
        String returnValue = template;
        
        for(String currentPlaceholder:placeholderContentMap.keySet()){  
            String currentContent=placeholderContentMap.get(currentPlaceholder);    
            System.debug(Logginglevel.INFO,'Current placeholder:' + currentPlaceholder + 'Current content:' + currentContent);
            //System.debug(currentContent);
            returnValue = returnValue.replace(currentPlaceholder, currentContent==null?'':currentContent.escapeXml());          
        }       
     
        return returnValue;         
    }
    
    public static Dom.Xmlnode searchXmlNodeByName(Dom.Xmlnode xmlDocument,String nodeName){
        return searchXmlNodeByName(xmlDocument,nodeName, false);
    }
    
    public static Dom.Xmlnode searchXmlNodeByName(Dom.Xmlnode xmlDocument,String nodeName, Boolean searchOnlyChilds){
        
        Dom.Xmlnode xmlNode = null;
        Integer i;
        System.debug('**********nodeName: '+nodeName);
        System.debug('**********searchOnlyChilds: '+searchOnlyChilds);
        try{       
            String xmlDocName = xmlDocument.getName();
            System.debug('**********xmlDocName: '+xmlDocName);     
            if(!searchOnlyChilds && xmlDocName==nodeName)
                xmlNode = xmlDocument;
            else {
                Dom.Xmlnode[] xmlNodeList = xmlDocument.getChildElements();
                for(i=0;i<xmlDocument.getChildElements().size();i++){   
                    Dom.Xmlnode currXmlNode = xmlNodeList[i];                   
                    //while(xmlNode==null){ 
                    //System.debug('Current parent:' + xmlDocument.getName() + ' - Current child:' + currXmlNode.getName());                                    
                        xmlNode = searchXmlNodeByName(currXmlNode,nodeName);
                        if(xmlNode!=null)
                            break;                              
                    //}
                }
            }
            System.debug('********** xmlNode: '+ xmlNode);
            return xmlNode;
        }
        
        catch(Exception e){
            throw new IntegrationUtilsException('Error during searchXmlNodeByName with provided parameters');
        }          
        
    }

    public static Dom.Document parseXmlString(String xml) {
       Dom.Document domDoc = new Dom.Document();
        domDoc.load(xml);
        return domDoc;      
     } 
}


@isTest(seealldata = true)
private class IntegrationUtils_Test {
   
    static testMethod void Costruttore_Test(){
    IntegrationUtils IU= new IntegrationUtils ();  
    IntegrationUtils.IntegrationUtilsException IUE = new IntegrationUtils.IntegrationUtilsException ();
 
    string endPoint='end';
    string soapMessage='message';
    Integer timeOut =10;   
    
  IntegrationUtils.sendSoapRequest(endPoint,soapMessage,timeOut);
 
 // endPoint='';
  //soapMessage='';
  //timeOut= null;
        
  IntegrationUtils.sendSoapRequest(endPoint,soapMessage,timeOut);
        
        String template = 'Templa';
        Map<String,String> placeholderContentMap = new Map <string,string>();
        template = 'mjkhg';
        String currentPlaceholder = 'Place';
        String currentContent='Content';
    currentContent = placeholderContentMap.get(currentPlaceholder);
        currentContent= null;
        
        
       IntegrationUtils.replaceInTemplate(template, placeholderContentMap);
        
     
       Http h = new Http();
 
       HttpRequest req = new HttpRequest();

       
        req.setMethod('GET');

        HttpResponse res = h.send(req);

        Dom.Document doc = res.getBodyDocument();

        //Retrieve the root element for this document.

        Dom.XMLNode address = doc.getRootElement();

        string nodeName='ciao';
        Boolean searchOnlyChilds= true;
        
        IntegrationUtils.searchXmlNodeByName(address,nodeName,searchOnlyChilds);
        
  
        
        
      
}
}

how can I  continue in write this test class? Thank you
I'm trying to write test class, for an apex code.  I do not understand  why the code coverage is yet  60% . Can someone help me? thank you

public class ModuloIncaricoInteraziendaleCtrl {
        
    private Quote quote {get; set;}
    public List<Qlip> qlips {get; set;}
 
    public class QliP {
        
        public QuoteLineItem qli {get; set;}
        public List<Partecipazione__c> partecipazioni {get; set;}
        public integer numeropartecipazioni {get; set;}
        
        public QliP(QuoteLineItem qlix, List<Partecipazione__c> partecipazionix){
            this.qli = qlix;
            this.partecipazioni = partecipazionix;
            this.numeropartecipazioni = partecipazionix.size();
        }
        
    }
 
    public ModuloIncaricoInteraziendaleCtrl(ApexPages.StandardController Ctrl){
        
        if (!Test.isRunningTest()) {Ctrl.addfields(new list<string>{'QuoteLineItems', 'Account.Name'});}
        this.quote=(Quote)Ctrl.getRecord();
        
        List<Id> QuoteLineItemsId = new List<Id>();
        for (QuoteLineItem qli : quote.QuoteLineItems){
            QuoteLineItemsId.add(qli.Id);
        }
        
        List<QuoteLineItem> queryQLI = [SELECT Id, LineNumber, Product2.Name, Edizione__r.Name, Edizione__r.Data_inizio__c, Edizione__r.Data_fine__c, Edizione__r.Ha_Partecipazioni__c, TotalPrice, Importo_IVA__c, Totale__c FROM QuoteLineItem WHERE Id IN :QuoteLineItemsId];
        List<Partecipazione__c> queryPartecipazioni = [SELECT Id, Name, Voce_Preventivo__c, Referente__r.FirstName, Referente__r.LastName, Referente__r.MiddleName, Referente__r.Suffix, Referente__r.Posizione__c, Referente__r.Email FROM Partecipazione__c WHERE Voce_Preventivo__c IN :QuoteLineItemsId ORDER BY Voce_Preventivo__c];
        
        qlips = new List<QliP>();
        for (QuoteLineItem qli : queryQLI) {
            
            List<Partecipazione__c> suePart = new List<Partecipazione__c>();
            integer NpartIgnote = 0;
            for (Partecipazione__c p : queryPartecipazioni){
                if(p.Voce_Preventivo__c == qli.Id){
                    if(p.Referente__c == NULL){
                        NpartIgnote++;
                        Contact cont = new Contact(LastName = 'Nominativo da comunicare ' + NpartIgnote + ' ' + Quote.Account.Name);
                        p.Referente__r = cont;
                        system.debug(p.Referente__r.Name);
                    }
                    suePart.add(p);
                }
            }
            Qlip newQlip = new QliP(qli, suePart);
            qlips.add(newQlip);
        }
        
    }

}


@istest
private class ModuloIncaricoInteraziendaleCtrl_Test {
    
    private static TestMethod void TestCostruttore(){
       
        List<Account> Lacc = new List <Account>();
        Account acc= new Account (FirstName='Antonio', LastName='Verdi', MiddleName='pippo',Type='Analyst' );
        insert acc;
        Lacc.add(acc);
        
        Edizione__c ed = new Edizione__c ( Name='test', Data_inizio__c=date.valueOf('2016-09-07'), Data_fine__c=date.valueOf('2016-09-07'),Ha_partecipazioni__c=true);
        insert ed;
       
        List <Contact> Lctc= new List <Contact>();
        Contact ctc= new Contact (LastName='Magneti', FirstName='Roberto', MiddleName='mauro', Suffix='Junior',email='k@email.it', posizione__c='direttore commerciale');
        insert ctc; 
        Lctc.add(ctc);
   
        List<Opportunity> l_opp = new List<Opportunity>();
        Opportunity opp = new Opportunity( AccountId=acc.id, Name='test', StageName='Prospecting',CloseDate=date.today(),Type='New Client',NextStep = 'Test',LeadSource = 'Business Development');
        insert opp;
        l_opp.add(opp);

     Product2 p2 = new Product2 (name='test',IsActive=true);
     List <Product2> Lp2 = new List <Product2>();
     insert p2;
     Lp2.add(p2);
     
     Id pricebookId = Test.getStandardPricebookId();

     List <PricebookEntry> Lpbe = new List <PricebookEntry>();
     PricebookEntry pbe = new PricebookEntry (Product2Id=p2.Id,IsActive=true,UnitPrice=1,Pricebook2Id=pricebookId);
     insert pbe;
     Lpbe.add(pbe);

List <Quote> Lqt = new List <Quote> ();
     Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao', Pricebook2Id=pricebookId, ordine__c=false);
     insert preventivo;
        Lqt.add(preventivo);
        
 List<QuoteLineItem> Lqtl = new List<QuoteLineItem> ();
   QuoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id, Product2Id=p2.id, Edizione__c=ed.id );
   insert qtl;
    Lqtl.add(qtl);
      
     Partecipazione__c pt = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
    insert pt;   
   List <Partecipazione__c> Lpt= new List <partecipazione__c> ();
     Lpt.add(pt);
        
         Partecipazione__c pt2 = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
    insert pt2; 
     
       pt.Voce_Preventivo__c = qtl.Id;
        pt.Referente__c = null;
        pt.referente__c= contact;
         update ctc;
        
        system.debug(pt.Referente__r.Name);
        
        pt2.Voce_Preventivo__c = qtl.Id;
        pt2.Referente__c = null;
        pt2.referente__c= contact;
        update ctc;
        
        system.debug(pt2.Referente__r.Name);
        
     
        
    ApexPages.StandardController Controller = new ApexPages.StandardController(preventivo);
        
    ModuloIncaricoInteraziendaleCtrl stdController = new  ModuloIncaricoInteraziendaleCtrl(controller);
        
    ModuloIncaricoInteraziendaleCtrl.QliP prova = new ModuloIncaricoInteraziendaleCtrl.QliP(qtl,Lpt);
    
    } 
}      
        
   

 
hi, I write test class for this apex code, but the code coverage is 15%. How can I continue to write this test class? thank you 


public class AutoNumberClass
{
public static void display(Account [] acct)
    {
         
         CustomAccount__c ca =[select CustomCounter__c from CustomAccount__c ];     
         Integer LatestNumber =Integer.valueOf(ca.CustomCounter__c);
       
       for(Account a : acct)
       {
        
            if(a.Stato__c=='Cliente')
            
            {                  
                      
                      LatestNumber=LatestNumber+1;
                      a.Numero_Account__c=String.valueOf('AC');
                      For(integer i=0;i<6-string.valueof(ca.CustomCounter__c).length();i++)
                          a.Numero_Account__c+='0';
                          
                      a.Numero_Account__c+=LatestNumber;
                      ca.CustomCounter__c=LatestNumber;           
                                      
            }               
     
        }
   
         update ca;
 
  }
}



@isTest
public class AutoNumberClass_Test {
   
    
    static testMethod void displayAccount(){
        
         AutoNumberClass controller = new AutoNumberClass();
        
        Date di = date.newInstance(2999,02,36);
        Edizione__c ed = New Edizione__c(Name = 'Edizione Test',data_inizio__c = di,data_fine__c = di+365, motivo_stato__c='edizione erogata');
        insert ed;
        
        List <account> Lacc = new List <account>();
        Account acc= new account (Numero_account__c='ciao',stato__c='cliente', name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
        insert acc;
        Lacc.add(acc);
        
        Partecipazione__c ptc= new Partecipazione__c (Account__c=acc.id, Edizione__c=ed.id, stato__c='partecipante');
        insert ptc;
        
        CustomAccount__c ca =new customAccount__c (); 
        insert ca;
      
       
       

        
        
    }

}
 
Hi, I'm trying to write test class for apex code. The results of run test is:  System.DmlException: Insert failed. First exception on row 0; first error: STANDARD_PRICE_NOT_DEFINED, No standard price defined for this product: []

My apex class is :

public class ImportoFatturato {
   
    public static void ImportoFatturatoTrigger(list<Riga_Fattura__c> LRF){
        set<id> RFIds = new set<id>();
        list<QuoteLineItem> LQLI = new list<QuoteLineItem>();
        For(Riga_Fattura__c RF:LRF) 
             RFIds.add(RF.id);  
        LRF = [Select id,Totale_riga_fattura__c,voce_preventivo__c,voce_preventivo__r.Importo_fatturato__c from riga_fattura__c where id in:RFIds];
        for(Riga_fattura__c r: LRF) {
            if(r.voce_preventivo__r.Importo_fatturato__c != null)
                r.voce_preventivo__r.Importo_fatturato__c += r.Totale_riga_fattura__c;
            else
                r.voce_preventivo__r.Importo_fatturato__c = r.Totale_riga_fattura__c;
            LQLI.add(r.voce_preventivo__r);
        }
        update LQLI;
    }
}


This class retrived an apex trigger :

trigger RigaFatturaTrigger on Riga_Fattura__c (before insert, before update, after insert, after update, after delete, after undelete) {
    
    if (trigger.isAfter){
        FatturaHelper.StatusHandler();
        if (trigger.isUpdate){
           
            list<Riga_Fattura__c> LRF = new list<Riga_Fattura__c>();
            for(Id idRF : Trigger.newMap.keyset()){
                if(Trigger.newMap.get(idRF).motivo_stato__c == 'Inviata' && Trigger.newMap.get(idRF).motivo_stato__c != Trigger.oldMap.get(idRF).motivo_stato__c) 
                       LRF.add(Trigger.newMap.get(idRF));             
            }
            ImportoFatturato.ImportoFatturatoTrigger(LRF);
        }
    }


test class is: 

@isTest(SeeAllData=true)
public class ImportoFatturato_Test {
    static testMethod void Costruttore_Test()
    { 

/******************************************************************* INIZIO DEL TEST   ***********************************************************************************************/
  test.startTest();
        
     Account acc = new Account(name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
     insert acc;
     
     List<Opportunity> l_opp = new List<Opportunity>();
     Opportunity opp = new Opportunity();
     opp.Accountid = acc.id;
     opp.Name = 'test';
     opp.StageName = 'Prospecting';
     opp.CloseDate = date.today();
     opp.Type = 'New Client';
     opp.NextStep = 'Test';
     opp.LeadSource = 'Business Development';
     insert opp;
     l_opp.add(opp);
     
     List <Pricebook2> Lpb2 = new List <Pricebook2>();
     Pricebook2 pb2 = new Pricebook2 ();
     pb2.name='test';
     pb2.IsActive=true;
     insert pb2;
     Lpb2.add(pb2);
        
     Product2 p2 = new Product2 ();
     List <Product2> Lp2 = new List <Product2>();
     p2.name='test';
     p2.IsActive=true;
     insert p2;
     Lp2.add(p2);
        
     List <PricebookEntry> Lpbe = new List <PricebookEntry>();
     PricebookEntry pbe = new PricebookEntry ();
     pbe.Product2Id=p2.Id;
     pbe.IsActive=true;
     pbe.UseStandardPrice=true;
     pbe.UnitPrice=1;
     pbe.Pricebook2Id=pb2.Id;
     insert pbe; 
     Lpbe.add(pbe);
     
     Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao');
     insert preventivo;
     
      quoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id); 
      insert qtl; 
      
      List<Riga_fattura__c> l_riga_f = new List<Riga_fattura__c>(); 
      Riga_fattura__c riga_f = new Riga_fattura__c ();
      riga_f.Motivo_stato__c='Inviata';
      riga_f.Voce_preventivo__c='01';
      l_riga_f.add(riga_f);

        
          test.stopTest();

/******************************************************************* FINE DEL TEST   ***********************************************************************************************/    
   }

 }


How I can  resolve this problem? Help me in write this test class.
Thank you very much.

 
 I'm trying to write a test class for this batch apex. help me please

global class BatchAggiornaStatoAccount implements Database.Batchable<sObject>, Database.AllowsCallouts{    
    public Date d = System.today()-365;
 
    global Database.QueryLocator start(Database.BatchableContext BC){
       // Date d = System.today()-365;
        String query = 'SELECT Id, AccountId, Ordine__c, Data_Ordine__c From Quote WHERE account.stato__c = \'Cliente\' and data_ordine__c <:d';
        return Database.getQueryLocator(query);
    }

    global void execute(Database.BatchableContext BC, List<Quote> scope){
        set<id> IdAccount = new set<id>();
        list<Account> ListToUpdate = new list<Account>();
        map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
        For(Quote q:scope)
            IdAccount.add(q.AccountId);
        
        List<quote> lquote = [Select id,Accountid,Account.stato__c,Data_Ordine__c from quote where Accountid in:IdAccount];
        For(quote q:lquote){
            If(QuotesPerAccountId.get(q.Account) == null)
                QuotesPerAccountId.put(q.Account,new list<quote>());
                
            QuotesPerAccountId.get(q.Account).add(q);
        }
        
        For(Account acc:QuotesPerAccountId.keyset()){
            Boolean cliente = true;
            For(Quote q:QuotesPerAccountId.get(acc)){
                If(q.Data_Ordine__c > d){
                    cliente = false;
                    break;
                }
            }
            if(cliente){
                acc.stato__c = 'Dormiente';
                ListToUpdate.add(acc);
            }
        }
        
        update ListToUpdate;
    }
    
    global void finish(Database.BatchableContext BC){
     
    }
}



@isTest
private class BatchAggiornaStato_Test {
   static testMethod void testBatchClass(){
       BatchAggiornaStatoAccount bc = new BatchAggiornaStatoAccount();
       
       
    set<id> IdAccount = new set<id>();  
    map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
      
       Account acc = new Account(LastName='Magneti',FirstName='Pippo', Cliente__c=false, Stato__c='Dormiente', Data_primo_ordine__c=date.Valueof('2016-08-29') );
       insert acc;
       List<Account> lAccount = [SELECT Name, Stato__c, Cliente__c FROM Account WHERE id=:IdAccount];
      
       List<Opportunity> Opportunities = new List <Opportunity>();
       Opportunity opp = new Opportunity(Name='Corso',StageName='chiusa',CloseDate=date.valueof('2016-09-02'));
       insert opp;
       opportunities.add(opp);
     
       Quote qt = new Quote (Name='pippo', OpportunityId=opp.id,Ordine__c= false, Data_Ordine__c=date.Valueof('2016-09-06'));
       insert qt;
       List<quote> lquote = [Select id,Accountid,Account.stato__c, Account.Cliente__c,Data_Ordine__c from quote where AccountId in:IdAccount];
       
 
      
    BatchAggiornaStatoAccount BatchAggiornaStato_Test = new BatchAggiornaStatoAccount();
Database.executeBatch(BatchAggiornaStato_Test);

}
}
       
The code coverage is 19%.
How i can to continue in write this test class.
Thank you

 
I'm trying to write test class, for an apex code.  I do not understand  why the code coverage is yet  60% . Can someone help me? thank you

public class ModuloIncaricoInteraziendaleCtrl {
        
    private Quote quote {get; set;}
    public List<Qlip> qlips {get; set;}
 
    public class QliP {
        
        public QuoteLineItem qli {get; set;}
        public List<Partecipazione__c> partecipazioni {get; set;}
        public integer numeropartecipazioni {get; set;}
        
        public QliP(QuoteLineItem qlix, List<Partecipazione__c> partecipazionix){
            this.qli = qlix;
            this.partecipazioni = partecipazionix;
            this.numeropartecipazioni = partecipazionix.size();
        }
        
    }
 
    public ModuloIncaricoInteraziendaleCtrl(ApexPages.StandardController Ctrl){
        
        if (!Test.isRunningTest()) {Ctrl.addfields(new list<string>{'QuoteLineItems', 'Account.Name'});}
        this.quote=(Quote)Ctrl.getRecord();
        
        List<Id> QuoteLineItemsId = new List<Id>();
        for (QuoteLineItem qli : quote.QuoteLineItems){
            QuoteLineItemsId.add(qli.Id);
        }
        
        List<QuoteLineItem> queryQLI = [SELECT Id, LineNumber, Product2.Name, Edizione__r.Name, Edizione__r.Data_inizio__c, Edizione__r.Data_fine__c, Edizione__r.Ha_Partecipazioni__c, TotalPrice, Importo_IVA__c, Totale__c FROM QuoteLineItem WHERE Id IN :QuoteLineItemsId];
        List<Partecipazione__c> queryPartecipazioni = [SELECT Id, Name, Voce_Preventivo__c, Referente__r.FirstName, Referente__r.LastName, Referente__r.MiddleName, Referente__r.Suffix, Referente__r.Posizione__c, Referente__r.Email FROM Partecipazione__c WHERE Voce_Preventivo__c IN :QuoteLineItemsId ORDER BY Voce_Preventivo__c];
        
        qlips = new List<QliP>();
        for (QuoteLineItem qli : queryQLI) {
            
            List<Partecipazione__c> suePart = new List<Partecipazione__c>();
            integer NpartIgnote = 0;
            for (Partecipazione__c p : queryPartecipazioni){
                if(p.Voce_Preventivo__c == qli.Id){
                    if(p.Referente__c == NULL){
                        NpartIgnote++;
                        Contact cont = new Contact(LastName = 'Nominativo da comunicare ' + NpartIgnote + ' ' + Quote.Account.Name);
                        p.Referente__r = cont;
                        system.debug(p.Referente__r.Name);
                    }
                    suePart.add(p);
                }
            }
            Qlip newQlip = new QliP(qli, suePart);
            qlips.add(newQlip);
        }
        
    }

}


@istest
private class ModuloIncaricoInteraziendaleCtrl_Test {
    
    private static TestMethod void TestCostruttore(){
       
        List<Account> Lacc = new List <Account>();
        Account acc= new Account (FirstName='Antonio', LastName='Verdi', MiddleName='pippo',Type='Analyst' );
        insert acc;
        Lacc.add(acc);
        
        Edizione__c ed = new Edizione__c ( Name='test', Data_inizio__c=date.valueOf('2016-09-07'), Data_fine__c=date.valueOf('2016-09-07'),Ha_partecipazioni__c=true);
        insert ed;
       
        List <Contact> Lctc= new List <Contact>();
        Contact ctc= new Contact (LastName='Magneti', FirstName='Roberto', MiddleName='mauro', Suffix='Junior',email='k@email.it', posizione__c='direttore commerciale');
        insert ctc; 
        Lctc.add(ctc);
   
        List<Opportunity> l_opp = new List<Opportunity>();
        Opportunity opp = new Opportunity( AccountId=acc.id, Name='test', StageName='Prospecting',CloseDate=date.today(),Type='New Client',NextStep = 'Test',LeadSource = 'Business Development');
        insert opp;
        l_opp.add(opp);

     Product2 p2 = new Product2 (name='test',IsActive=true);
     List <Product2> Lp2 = new List <Product2>();
     insert p2;
     Lp2.add(p2);
     
     Id pricebookId = Test.getStandardPricebookId();

     List <PricebookEntry> Lpbe = new List <PricebookEntry>();
     PricebookEntry pbe = new PricebookEntry (Product2Id=p2.Id,IsActive=true,UnitPrice=1,Pricebook2Id=pricebookId);
     insert pbe;
     Lpbe.add(pbe);

List <Quote> Lqt = new List <Quote> ();
     Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao', Pricebook2Id=pricebookId, ordine__c=false);
     insert preventivo;
        Lqt.add(preventivo);
        
 List<QuoteLineItem> Lqtl = new List<QuoteLineItem> ();
   QuoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id, Product2Id=p2.id, Edizione__c=ed.id );
   insert qtl;
    Lqtl.add(qtl);
      
     Partecipazione__c pt = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
    insert pt;   
   List <Partecipazione__c> Lpt= new List <partecipazione__c> ();
     Lpt.add(pt);
        
         Partecipazione__c pt2 = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
    insert pt2; 
     
       pt.Voce_Preventivo__c = qtl.Id;
        pt.Referente__c = null;
        pt.referente__c= contact;
         update ctc;
        
        system.debug(pt.Referente__r.Name);
        
        pt2.Voce_Preventivo__c = qtl.Id;
        pt2.Referente__c = null;
        pt2.referente__c= contact;
        update ctc;
        
        system.debug(pt2.Referente__r.Name);
        
     
        
    ApexPages.StandardController Controller = new ApexPages.StandardController(preventivo);
        
    ModuloIncaricoInteraziendaleCtrl stdController = new  ModuloIncaricoInteraziendaleCtrl(controller);
        
    ModuloIncaricoInteraziendaleCtrl.QliP prova = new ModuloIncaricoInteraziendaleCtrl.QliP(qtl,Lpt);
    
    } 
}      
        
   

 
hi, I write test class for this apex code, but the code coverage is 15%. How can I continue to write this test class? thank you 


public class AutoNumberClass
{
public static void display(Account [] acct)
    {
         
         CustomAccount__c ca =[select CustomCounter__c from CustomAccount__c ];     
         Integer LatestNumber =Integer.valueOf(ca.CustomCounter__c);
       
       for(Account a : acct)
       {
        
            if(a.Stato__c=='Cliente')
            
            {                  
                      
                      LatestNumber=LatestNumber+1;
                      a.Numero_Account__c=String.valueOf('AC');
                      For(integer i=0;i<6-string.valueof(ca.CustomCounter__c).length();i++)
                          a.Numero_Account__c+='0';
                          
                      a.Numero_Account__c+=LatestNumber;
                      ca.CustomCounter__c=LatestNumber;           
                                      
            }               
     
        }
   
         update ca;
 
  }
}



@isTest
public class AutoNumberClass_Test {
   
    
    static testMethod void displayAccount(){
        
         AutoNumberClass controller = new AutoNumberClass();
        
        Date di = date.newInstance(2999,02,36);
        Edizione__c ed = New Edizione__c(Name = 'Edizione Test',data_inizio__c = di,data_fine__c = di+365, motivo_stato__c='edizione erogata');
        insert ed;
        
        List <account> Lacc = new List <account>();
        Account acc= new account (Numero_account__c='ciao',stato__c='cliente', name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
        insert acc;
        Lacc.add(acc);
        
        Partecipazione__c ptc= new Partecipazione__c (Account__c=acc.id, Edizione__c=ed.id, stato__c='partecipante');
        insert ptc;
        
        CustomAccount__c ca =new customAccount__c (); 
        insert ca;
      
       
       

        
        
    }

}
 
Hi, I'm trying to write test class for apex code. The results of run test is:  System.DmlException: Insert failed. First exception on row 0; first error: STANDARD_PRICE_NOT_DEFINED, No standard price defined for this product: []

My apex class is :

public class ImportoFatturato {
   
    public static void ImportoFatturatoTrigger(list<Riga_Fattura__c> LRF){
        set<id> RFIds = new set<id>();
        list<QuoteLineItem> LQLI = new list<QuoteLineItem>();
        For(Riga_Fattura__c RF:LRF) 
             RFIds.add(RF.id);  
        LRF = [Select id,Totale_riga_fattura__c,voce_preventivo__c,voce_preventivo__r.Importo_fatturato__c from riga_fattura__c where id in:RFIds];
        for(Riga_fattura__c r: LRF) {
            if(r.voce_preventivo__r.Importo_fatturato__c != null)
                r.voce_preventivo__r.Importo_fatturato__c += r.Totale_riga_fattura__c;
            else
                r.voce_preventivo__r.Importo_fatturato__c = r.Totale_riga_fattura__c;
            LQLI.add(r.voce_preventivo__r);
        }
        update LQLI;
    }
}


This class retrived an apex trigger :

trigger RigaFatturaTrigger on Riga_Fattura__c (before insert, before update, after insert, after update, after delete, after undelete) {
    
    if (trigger.isAfter){
        FatturaHelper.StatusHandler();
        if (trigger.isUpdate){
           
            list<Riga_Fattura__c> LRF = new list<Riga_Fattura__c>();
            for(Id idRF : Trigger.newMap.keyset()){
                if(Trigger.newMap.get(idRF).motivo_stato__c == 'Inviata' && Trigger.newMap.get(idRF).motivo_stato__c != Trigger.oldMap.get(idRF).motivo_stato__c) 
                       LRF.add(Trigger.newMap.get(idRF));             
            }
            ImportoFatturato.ImportoFatturatoTrigger(LRF);
        }
    }


test class is: 

@isTest(SeeAllData=true)
public class ImportoFatturato_Test {
    static testMethod void Costruttore_Test()
    { 

/******************************************************************* INIZIO DEL TEST   ***********************************************************************************************/
  test.startTest();
        
     Account acc = new Account(name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
     insert acc;
     
     List<Opportunity> l_opp = new List<Opportunity>();
     Opportunity opp = new Opportunity();
     opp.Accountid = acc.id;
     opp.Name = 'test';
     opp.StageName = 'Prospecting';
     opp.CloseDate = date.today();
     opp.Type = 'New Client';
     opp.NextStep = 'Test';
     opp.LeadSource = 'Business Development';
     insert opp;
     l_opp.add(opp);
     
     List <Pricebook2> Lpb2 = new List <Pricebook2>();
     Pricebook2 pb2 = new Pricebook2 ();
     pb2.name='test';
     pb2.IsActive=true;
     insert pb2;
     Lpb2.add(pb2);
        
     Product2 p2 = new Product2 ();
     List <Product2> Lp2 = new List <Product2>();
     p2.name='test';
     p2.IsActive=true;
     insert p2;
     Lp2.add(p2);
        
     List <PricebookEntry> Lpbe = new List <PricebookEntry>();
     PricebookEntry pbe = new PricebookEntry ();
     pbe.Product2Id=p2.Id;
     pbe.IsActive=true;
     pbe.UseStandardPrice=true;
     pbe.UnitPrice=1;
     pbe.Pricebook2Id=pb2.Id;
     insert pbe; 
     Lpbe.add(pbe);
     
     Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao');
     insert preventivo;
     
      quoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id); 
      insert qtl; 
      
      List<Riga_fattura__c> l_riga_f = new List<Riga_fattura__c>(); 
      Riga_fattura__c riga_f = new Riga_fattura__c ();
      riga_f.Motivo_stato__c='Inviata';
      riga_f.Voce_preventivo__c='01';
      l_riga_f.add(riga_f);

        
          test.stopTest();

/******************************************************************* FINE DEL TEST   ***********************************************************************************************/    
   }

 }


How I can  resolve this problem? Help me in write this test class.
Thank you very much.

 
 I'm trying to write a test class for this batch apex. help me please

global class BatchAggiornaStatoAccount implements Database.Batchable<sObject>, Database.AllowsCallouts{    
    public Date d = System.today()-365;
 
    global Database.QueryLocator start(Database.BatchableContext BC){
       // Date d = System.today()-365;
        String query = 'SELECT Id, AccountId, Ordine__c, Data_Ordine__c From Quote WHERE account.stato__c = \'Cliente\' and data_ordine__c <:d';
        return Database.getQueryLocator(query);
    }

    global void execute(Database.BatchableContext BC, List<Quote> scope){
        set<id> IdAccount = new set<id>();
        list<Account> ListToUpdate = new list<Account>();
        map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
        For(Quote q:scope)
            IdAccount.add(q.AccountId);
        
        List<quote> lquote = [Select id,Accountid,Account.stato__c,Data_Ordine__c from quote where Accountid in:IdAccount];
        For(quote q:lquote){
            If(QuotesPerAccountId.get(q.Account) == null)
                QuotesPerAccountId.put(q.Account,new list<quote>());
                
            QuotesPerAccountId.get(q.Account).add(q);
        }
        
        For(Account acc:QuotesPerAccountId.keyset()){
            Boolean cliente = true;
            For(Quote q:QuotesPerAccountId.get(acc)){
                If(q.Data_Ordine__c > d){
                    cliente = false;
                    break;
                }
            }
            if(cliente){
                acc.stato__c = 'Dormiente';
                ListToUpdate.add(acc);
            }
        }
        
        update ListToUpdate;
    }
    
    global void finish(Database.BatchableContext BC){
     
    }
}



@isTest
private class BatchAggiornaStato_Test {
   static testMethod void testBatchClass(){
       BatchAggiornaStatoAccount bc = new BatchAggiornaStatoAccount();
       
       
    set<id> IdAccount = new set<id>();  
    map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
      
       Account acc = new Account(LastName='Magneti',FirstName='Pippo', Cliente__c=false, Stato__c='Dormiente', Data_primo_ordine__c=date.Valueof('2016-08-29') );
       insert acc;
       List<Account> lAccount = [SELECT Name, Stato__c, Cliente__c FROM Account WHERE id=:IdAccount];
      
       List<Opportunity> Opportunities = new List <Opportunity>();
       Opportunity opp = new Opportunity(Name='Corso',StageName='chiusa',CloseDate=date.valueof('2016-09-02'));
       insert opp;
       opportunities.add(opp);
     
       Quote qt = new Quote (Name='pippo', OpportunityId=opp.id,Ordine__c= false, Data_Ordine__c=date.Valueof('2016-09-06'));
       insert qt;
       List<quote> lquote = [Select id,Accountid,Account.stato__c, Account.Cliente__c,Data_Ordine__c from quote where AccountId in:IdAccount];
       
 
      
    BatchAggiornaStatoAccount BatchAggiornaStato_Test = new BatchAggiornaStatoAccount();
Database.executeBatch(BatchAggiornaStato_Test);

}
}
       
The code coverage is 19%.
How i can to continue in write this test class.
Thank you