+ Start a Discussion
anillllanillll 

Urgent: Please help me in test method to get coverage

public with sharing class AttachController {

//private ApexPages.StandardController controller { get; set; }
public List<Deal_License__c> dp{get;set;}

   public Deal__c D{get;set;}
    public AttachController(ApexPages.StandardController controller) {
     D = [Select Name,Id,Account__c,Account__r.Name,Rate__c,Total_Value__c,Account__r.BillingStreet,
                 Account__r.BillingCity,Account__r.Billingstate,Account__r.BillingPostalcode,Account__r.BillingCountry
                 from Deal__c where id=:ApexPages.currentPage().getParameters().get('id')];
    system.debug('TestDeal'+D);
    Account acc=[Select Id,BillingStreet,BillingCity,Billingstate,BillingPostalcode,BillingCountry from Account where id=:D.Account__c];
    system.debug('Account%%%%%%%%%%%%%%'+acc);
    dp=[select id,Name,Deal__c,Months__c,List_Price__c,Unit_Price__c,Quantity__c,Total_Value__c from Deal_License__c where Deal__c=:D.Id];
    System.debug('DEALPRDODUCT&&&&&&&&&&'+dp);
    }
    
    public void attach() {
        try{
            Attachment myAttach = new Attachment();
            myAttach.ParentId = ApexPages.currentPage().getParameters().get('id');
            System.debug('Id: ' + ApexPages.currentPage().getParameters().get('id'));
            List<Attachment> at=[Select id from Attachment where parentId=:myAttach.ParentId];
            Integer c=at.size()+1;
            myAttach.name =D.Account__r.Name +''+ 'License Version' + c +'.pdf';
            PageReference psPdf = new PageReference('/apex/Quotation?id=' + ApexPages.currentPage().getParameters().get('id'));
            myAttach.body = psPdf.getContentAsPdf();

            insert myAttach;
              
            
                       
            System.debug('After attach');
            System.debug(myAttach);

            
            /*
            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'Quotation has been attached.'));
            */
        }
        catch(Exception e) {
            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.FATAL,'There was an error while attaching'));
            System.debug('Exception');
        }
    }
    
    public PageReference QA() {
     PageReference secondPage = new PageReference('/apex/EmailQuote?id=' + ApexPages.currentPage().getParameters().get('id'));
      Attachment myAttach = new Attachment();
            myAttach.ParentId = ApexPages.currentPage().getParameters().get('id');
            System.debug('Id: ' + ApexPages.currentPage().getParameters().get('id'));
            List<Attachment> at=[Select id from Attachment where parentId=:myAttach.ParentId];
            Integer c=at.size()+1;
            myAttach.name = D.Account__r.Name +''+ 'License Version' + c +'.pdf';
            PageReference psPdf = new PageReference('/apex/Quotation?id=' + ApexPages.currentPage().getParameters().get('id'));
            myAttach.body = psPdf.getContentAsPdf();

            insert myAttach;
              
            secondPage.setRedirect(true);   
            return secondPage; 
    }
    public PageReference back() {
        attach();
        PageReference pr = new PageReference('/' + ApexPages.currentPage().getParameters().get('id') +'#'+ ApexPages.currentPage().getParameters().get('id') + '_RelatedNoteList_target');
        pr.setRedirect(true);
        System.debug('Inside back');
        return pr;
    }
       public PageReference cancel() {
       PageReference pr = new PageReference('/' + ApexPages.currentPage().getParameters().get('id') +'#'+ ApexPages.currentPage().getParameters().get('id') + '_RelatedNoteList_target');
       pr.setRedirect(true);
       System.debug('Inside back');
       return pr;
       }
        /*test methods here*/
     public static testMethod void testAttachController()
      {    
        //Opportunity opp=[select id from Opportunity where Name=:'Prasad Punage-'];
        Account acc=new Account(Name='rose',BillingCity='bang',Billingstate='kat',BillingPostalcode='560000',BillingCountry='india' );
        insert acc;
        Deal__c opp=new Deal__c(Name='test12',Account__c='acc.id');
        insert opp;
       
        Deal_License__c dl=new Deal_License__c(Name='asd',Deal__c='opp.id');
        insert dl;        
        Attachment myAttach1 = new Attachment();
        myAttach1.ParentId =opp.id;
        myAttach1.name = 'Quotation.pdf';
        myAttach1.body = blob.valueof('test');
          
        insert myAttach1;
        system.debug('Attahment1'+ myAttach1);
        AttachController atc = new AttachController(new ApexPages.StandardController(myAttach1));
         
        atc.attach();
        atc.back();
        atc.cancel();
      }
      
      public String attachmentName{get; set;}
      public pagereference AttachQuote(){
        Pagereference pdf = page.Quotation;
        blob  b = pdf.getContent();
    
         attachment att = new attachment();
         att.parentId = ApexPages.currentPage().getParameters().get('id') ;
         att.body = b;
         att.name = 'Quotation.pdf';     
         insert att;
         
         return null;
      
      }
}

 Thanks in advance

ItswasItswas

Hi Anil,

 

You have miss method for QA and AttachQuote .Please put inside the test method.Hope this will increase your test coverage.

 

atc.AttachQuote();
atc.QA();

 

Regards,

Itsaws.

anillllanillll
Class.AttachController.testAttachController: line 98, column 1
anillllanillll
hi itswas,
Class AttachController
Method Name testAttachController
Pass/Fail Fail
Error Message System.StringException: Invalid id: acc.id
Stack Trace Class.AttachController.testAttachController: line 98, column 1
Vinit_KumarVinit_Kumar

Anil,

 

Put a debug statement after line 81 like

 

system.debug(''######## + acc);

 

and see in debug logs if account is getting inserted or not.

ItswasItswas

Hi Anil,

 

Please put .

ApexPages.StandardController objapexstdCntr = new ApexPages.StandardController(acc);
AttachController atc = new AttachController(objapexstdCntr);

 

line of code after   insert myAttach1; in test method then check from your end.

 

I think thrugh this it will give you the solution.

 

Regards,

Itsaws

anillllanillll

ya tried but no use,thnx for reply