You need to sign in to do that
Don't have an account?
MnZ321
Help with test class Coverage.
Following is apex class
public class OrderTrackingList{ public OrderTrackingList(ApexPages.StandardController controller) {} public list<wrapgroupwise> singlegroup; public List<wrapgroupwise> getStartHere(){ singlegroup= new List<wrapgroupwise>(); List<orders__c> tempacc=[SELECT Orders__c,CreatedBy.FirstName,CreatedDate, number_of_line_items__c, CurrencyIsoCode,account__r.name,contract__r.ContractNumber,customer_order_number__c,invoices__c,my_view__c,order_acknowlegment__c,order_date__c,order_value__c, order_no__c, requested_delivery_date__c,shipments__c,Id,Name, (SELECT Id, name,calculated_estimated_delivery_date__c,order_number__c,status__c,planned_ship_date__c,material_name__c,material_no__c, quantity_ordered__c From Order_Lines__r), (SELECT Id,Name,Order_Number__c,Actual_Delivery_Date__c, estimated_delivery_date__c,Shipment_Number__r.name, Shipment_Number__r.carrrier_name__c, Shipment_Number__r.carrier_website__c,Shipment_Number__r.tracking_number__c,quantity_shipped__c From Shipment_Lines__r) FROM orders__c where id=:ApexPages.currentPage().getParameters().get('id')]; for(Integer i=0; i<tempacc.size() ; i++){ List <order_lines__c> tempOrderLines = tempacc[i].order_lines__r; List <shipment_lines__c> tempShipmentLines = tempacc[i].shipment_lines__r; System.debug('temp order '+tempacc.size()); System.debug('temp order lines'+tempOrderLines.size()); System.debug('temp shipment lines'+tempShipmentLines.size()); if(tempOrderLines.size()==0 && tempShipmentLines.size()==0){ singlegroup.add(new wrapgroupwise(tempacc[i],null,null)); } else{ if(tempShipmentLines.size()==0) { if(tempOrderLines[i].status__c=='Open') { tempOrderLines[i].calculated_estimated_delivery_date__c=tempOrderLines[i].planned_ship_date__c; } singlegroup.add(new wrapgroupwise(tempacc[i],tempOrderLines,null)); }//if condition for tempShipmentLines size check else { //Estimated Delivery Date done if(tempOrderLines[i].status__c=='Open') { tempOrderLines[i].calculated_estimated_delivery_date__c=tempOrderLines[i].planned_ship_date__c; } if(tempOrderLines[i].status__c=='Invoiced') { tempOrderLines[i].calculated_estimated_delivery_date__c=tempShipmentLines[i].estimated_delivery_date__c; } if(tempOrderLines[i].status__c=='Shipped but not billed') { tempOrderLines[i].calculated_estimated_delivery_date__c=tempShipmentLines[i].estimated_delivery_date__c; } singlegroup.add( new wrapgroupwise(tempacc[i],tempOrderLines,tempShipmentLines)); }//size check of temp shipping order } } return singlegroup; } public class wrapgroupwise { public List<order_lines__c> con {get;set;} public orders__c acc {get;set;} public List<shipment_lines__c> opp {get;set;} public wrapgroupwise( orders__c a , list<order_lines__c> c,list<shipment_lines__c> o) { acc=a; con=c; opp=o; } } }Following is my attempted Test Class. If and else conditions are not being covered. How to cover?
@isTest public class OrderTrackingList_Test{ static testMethod void coverCode(){ Profile pf= [SELECT Id FROM Profile WHERE name= 'System Administrator' LIMIT 1]; Account acc = new Account(Name='ABC Corp.'); insert acc; //System.assertEquals('ABC Corp.', acc.name); orders__c tempOrder = new orders__c(); tempOrder.name = '0001234567'; tempOrder.account__c = acc.id; insert tempOrder; List <orders__c> testO = [select id, name from orders__c limit 1]; System.assertEquals(1, testO.size()); order_lines__c tempOL = new order_lines__c(); tempOL.Name = '10'; tempOL.number_of_order_lines__c = tempOrder.id; tempOL.status__c='Open'; tempOL.calculated_estimated_delivery_date__c=date.today(); tempOL.planned_ship_date__c = date.today(); insert tempOL; order_lines__c tempOL2 = new order_lines__c(); tempOL2.Name = '10'; tempOL2.number_of_order_lines__c = tempOrder.id; tempOL2.status__c='Shipped but not billed'; tempOL2.calculated_estimated_delivery_date__c=date.today(); insert tempOL2; List <order_lines__c> testOL = [select id, name, status__c, number_of_order_lines__c from order_lines__c limit 1 ];/*where id=:ApexPages.currentPage().getParameters().get('id')*/ System.assertEquals(1, testOL.size()); shipment_lines__c tempSL = new shipment_lines__c(); tempSL.Name = '10'; tempSL.CurrencyIsoCode = 'USD'; tempSL.estimated_delivery_date__c = date.today(); insert tempSL; List <shipment_lines__c> testSL = [select name, CurrencyIsoCode from shipment_lines__c limit 1]; System.assertEquals(1, testSL.size()); Test.startTest(); PageReference pageRef =Page.OrderTrackingList; pageRef.getParameters().put('id', tempOrder.id); Test.setCurrentPage(pageRef); OrderTrackingList gepwO = new OrderTrackingList(new ApexPages.StandardController(tempOrder)); gepwO.getStartHere(); Test.stopTest(); } static testMethod void coverCode2(){ Account acc1 = new Account(Name='GE. Corp.'); insert acc1; orders__c tempOrder1 = new orders__c(); tempOrder1.name = '0001234567'; tempOrder1.account__c = acc1.id; insert tempOrder1; order_lines__c tempOL1 = new order_lines__c(); tempOL1.Name = '10'; tempOL1.number_of_order_lines__c = tempOrder1.id; tempOL1.status__c='Invoiced'; tempOL1.calculated_estimated_delivery_date__c=date.today(); tempOL1.planned_ship_date__c = date.today(); insert tempOL1; shipment_lines__c tempSL1 = new shipment_lines__c(); tempSL1.Name = '10'; tempSL1.CurrencyIsoCode = 'USD'; tempSL1.estimated_delivery_date__c = date.today(); insert tempSL1; } }Actually only the if-else statements are not being covered. How to cover them?
Tushar sharma
To cover the if- else part you need to make different method for each if - else. and in the method you need to provide data to satisfy your condittion. in meethod you nedd to change status
from different value then you can acheive your if - else coverage