You need to sign in to do that
Don't have an account?
Zoom_V
Test Code for a Visualforce controller
I am attempting to write test code for this controller. What I've written only covers 9% of the code. Can anybody tell what I'm doing wrong ?
Here is the controller :
Here is the test code I've written.
Any help is appreciated. Thank you !
Here is the controller :
public class UploadAttachControllerVendProdRev { public String selectedType {get;set;} public Boolean selectedAwesomeness {get;set;} public String description {get;set;} private Vendor_Product_Review__c contact {get;set;} public String fileName {get;set;} public Blob fileBody {get;set;} public Vendor_Product_Review_Attachment__c objBVar{get;set;} public String contactproduct {get;set;} public UploadAttachControllerVendProdRev(ApexPages.StandardController controller) { this.contact = (Vendor_Product_Review__c)controller.getRecord(); objBVar = new Vendor_Product_Review_Attachment__c (Vendor_Product_Review__c = this.contact.id); } // creates a new Vendor_Product_Review_Attachment__c record private Database.SaveResult saveCustomAttachment() { //Vendor_Product_Review_Attachment__c obj = new Vendor_Product_Review_Attachment__c(); objBVar.Vendor_Product_Review__c = contact.Id; objBVar.Vendor_Profile__c = contact.Vendor__c; objBVar.Vendor_Product__c = contact.Vendor_Product__c; objBVar.Description__c = description; objBVar.Document_type__c = selectedType; // fill out cust obj fields return Database.insert(objBVar); } // create an actual Attachment record with the Vendor_Product_Review_Attachment__c as parent private Database.SaveResult saveStandardAttachment(Id parentId) { Database.SaveResult result; Attachment attachment = new Attachment(); attachment.body = this.fileBody; attachment.name = this.fileName; attachment.parentId = parentId; // insert the attahcment result = Database.insert(attachment); // reset the file for the view state fileBody = Blob.valueOf(' '); return result; } /** * Upload process is: * 1. Insert new Vendor_Product_Review_Attachment__c record * 2. Insert new Attachment with the new Vendor_Product_Review_Attachment__c record as parent * 3. Update the Vendor_Product_Review_Attachment__c record with the ID of the new Attachment **/ public PageReference processUpload() { if(description =='' & filebody==null) { ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR, 'You must include either a File or a Note.')); return null; } /** if(description !='' & filebody==null) { Database.SaveResult customAttachmentResult = saveCustomAttachment(); // update the custom attachment record with some attachment info Vendor_Product_Review_Attachment__c customAttachment = [select id from Vendor_Product_Review_Attachment__c where id = :customAttachmentResult.getId()]; update customAttachment; } **/ try { Database.SaveResult customAttachmentResult = saveCustomAttachment(); if (!customAttachmentResult.isSuccess()) { //ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR, //'Could not save attachment because either filebody was empty or the customAttachmentResult was unsuccessful.')); return null; system.debug('customattachmentresult **************!!! '); return new PageReference('/'+contact.Id); } if (filebody != null) { Database.SaveResult attachmentResult = saveStandardAttachment(customAttachmentResult.getId()); if (attachmentResult == null || !attachmentResult.isSuccess()) { //ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR, //'Could not save attachment.')); //return null; return new PageReference('/'+contact.Id); } else { // update the custom attachment record with some attachment info Vendor_Product_Review_Attachment__c customAttachment = [select id from Vendor_Product_Review_Attachment__c where id = :customAttachmentResult.getId()]; customAttachment.name = this.fileName; customAttachment.Attachment__c = attachmentResult.getId(); update customAttachment; } } } catch (Exception e) { ApexPages.AddMessages(e); return null; } return new PageReference('/'+contact.Id); } public PageReference back() { return new PageReference('/'+contact.Id); } }
Here is the test code I've written.
@isTest(SeeAllData = false) private class TestUploadAttachControllerVendProdRev { static testMethod void UnitTestUploadAttachControllerVendProdRev() { Department__c dept = new Department__c(); dept.Name = 'Dept1'; dept.Department_Manager__c = '005i0000005o3zu'; insert dept; Vendor_Profile__c vprof = new Vendor_Profile__c(); vprof.Name = 'ABCProf'; vprof.Department_of_Record__c = dept.id; vprof.Department_Manager__c = '005i0000005o3zu'; insert vprof; Vendor_Product__c vprod = new Vendor_Product__c(); vprod.Name = 'ABCProd'; vprod.Vendor__c = vprof.id; vprod.Reviewed_Vendor__c = vprof.id; vprof.Department_of_Record__c = dept.id; insert vprod; Vendor_Product__c vprod2 = new Vendor_Product__c(); vprod2.Name = '123Prod'; vprod2.Vendor__c = vprof.id; insert vprod2; Vendor_Contract__c vc = new Vendor_Contract__c(); vc.Vendor__c = vprof.id; vc.Products_Included__c = '[ABCProd,123Prod]'; insert vc ; Vendor_Product_Review__c vrev = new Vendor_Product_Review__c(); vrev.Vendor__c = vprof.id; vrev.Vendor_Product__c = vprod.id; insert vrev ; ApexPages.StandardController sc = new ApexPages.standardController(vrev); UploadAttachControllerVendProdRev up = new UploadAttachControllerVendProdRev(sc); } }
Any help is appreciated. Thank you !
All Answers