-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
7Questions
-
4Replies
hi all, i want to create a code after insert with a condition that if the Owner is equal to "WOWLink Site Guest User" , it will change the owner to "SELECT Id from User WHERE Profile = 'API Only' AND Role != null" someone please help me out
here is the after insert code in my account trigger handler:
please help me out
public override void afterInsert(){ String childTransferUser = JSON.serialize(trigger.New); if(!Test.isRunningTest()){ childAccount(childTransferUser); } createAccShare(Trigger.New); //Check if owner is WOWLink Site Guest User //if yes change the owner to SELECT Id from User WHERE Profile = 'API Only' AND Role != null }
please help me out
- Jasril Dane Caliwag
- July 05, 2018
- Like
- 0
hi everyone please help me to make a test class on my class
here is my code:
global static String setExperienceId(String expId) { // Return null if there is no error, else it will return the error message try { if (expId != null) { Site.setExperienceId(expId); } return null; } catch (Exception ex) { return ex.getMessage(); } }
- Jasril Dane Caliwag
- July 03, 2018
- Like
- 0
hello everyone, i need to create a test class of my class. please help me out
here is my class:
please help me out thank you :)
public class VendorCreationController implements Database.AllowsCallouts, Queueable{ public String retURL {get; set;} public Boolean canProceed {get; set;} public String errorMessage {get; set;} public Case caseInfo {get; set;} public String recordStatus {get; set;} private String accString; private String caseString; public VendorCreationController(ApexPages.StandardController controller){ caseInfo = (Case)controller.getRecord(); } public PageReference changeStatus() { //Check and get case information try{ caseInfo = [SELECT Id, Status, Sub_Status__c, Supplier_Product_Article__c, SAP_Sync_Status__c FROM Case WHERE Id =: caseInfo.Id]; }catch(Exception e){ caseInfo = null; } //check if caseInfo is not null if(caseInfo != null){ try{ //Case Status recordStatus = caseInfo.Status; //Validate case status/case SAP status if (caseInfo.SAP_Sync_Status__c == Label.Sync_in_Progress) { canProceed = false; errorMessage = Label.Case_is_already_Sync_in_Progress; } else if (caseInfo.Status == Label.In_Review) { canProceed = false; errorMessage = Label.Case_is_In_Review; } else if (caseInfo.SAP_Sync_Status__c == Label.Sync_Complete) { canProceed = false; errorMessage = Label.Case_is_already_Sync_Completed; } else { canProceed = true; caseInfo.SAP_Sync_Status__c = Label.Sync_in_Progress; caseInfo.Status = Label.Sync_with_SAP; update caseInfo; } retURL = '/' + caseInfo.Id; PageReference redirectPage = new PageReference(retURL); redirectPage.setRedirect(true); return redirectPage; }catch(Exception e){ canProceed = false; errorMessage = e.getMessage(); retURL = '/' + caseInfo.Id; PageReference redirectPage = new PageReference(retURL); redirectPage.setRedirect(true); return redirectPage; } } return null; } //constructor public VendorCreationController(String accStr, String caseStr) { this.caseString = caseStr; this.accString = accStr; } public void execute(QueueableContext context) { Account acc = new Account(); Case caseRec = new Case(); Case newCaseRec = new Case(); Contact conRec = new Contact(); //Custom settings for integration Integration_Management__c integrationManagement; //Check if endpoint url is present try{ integrationManagement = Integration_Management__c.getValues(Label.Vendor_Creation); }catch(Exception e){ integrationManagement = null; //log exception to application log utility ApplicationLogUtility.logError('VendorCreationController', 'sendToSAP', e, e.getMessage(), '', 0); ApplicationLogUtility.commitLog(); } //Check if endpoint is present in the custom settings if(integrationManagement !=null){ try{ acc = (Account) JSON.deserialize(accString, Account.Class); caseRec = (Case) JSON.deserialize(caseString, Case.Class); }catch(Exception e){ acc = null; caseRec = null; } if(acc != null && caseRec !=null){ try{ newCaseRec = [SELECT Id, ContactId, Status, SAP_Sync_Status__c FROM Case WHERE Id=: caseRec.Id]; }catch(Exception e){ newCaseRec = null; } if(newCaseRec !=null){ try{ conRec = [SELECT Id, Phone, HomePhone, OtherPhone, Fax, Email FROM Contact WHERE Id=: newCaseRec.ContactId]; }catch(Exception e){ conRec = null; } } try{ system.debug('VendorCreationController caseRec: ' + caseRec); system.debug('VendorCreationController conRec: ' + conRec); system.debug('VendorCreationController sendToSAP enter'); sapComDocumentSapRfcFunctionsVendor.Z_VEN_CREATION_BINDING bob = new sapComDocumentSapRfcFunctionsVendor.Z_VEN_CREATION_BINDING(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_LFA1 IS_LFA1_FIELDS = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_LFA1(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_LFB1 IS_LFB1_FIELDS = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_LFB1(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_LFM1 IS_LFM1_FIELDS = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_LFM1(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_POSTAL_ADD ADDRESS_FLDS = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_POSTAL_ADD(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_COMM COMM_FIELDS = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_COMM(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_PHONE_TT phone = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_PHONE_TT(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_FAX_TT fax = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_FAX_TT(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_EMAIL_TT email = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_EMAIL_TT(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_PHONE contactPhone = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_PHONE(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_FAX contactFax = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_FAX(); sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_EMAIL contactEmail = new sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_EMAIL(); if(conRec !=null){ contactPhone.TELEPHONE =checkIfNull(conRec.Phone, 30); contactPhone.COUNTRY = ''; contactPhone.EXTENSION = ''; if(contactPhone.TELEPHONE!=''){ contactPhone.STD_NO = 'X'; } contactFax.COUNTRY = ''; contactFax.FAX =checkIfNull(conRec.Fax, 30); if(contactFax.FAX!=''){ contactFax.STD_NO = 'X'; } contactEmail.E_MAIL =checkIfNull(conRec.Email, 241); if(contactEmail.E_MAIL!=''){ contactEmail.STD_NO = 'X'; } List<sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_PHONE> phoneList = new List<sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_PHONE>(); phoneList.add(contactPhone); phone.item = phoneList; List<sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_EMAIL> emailList = new List<sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_EMAIL>(); emailList.add(contactEmail); email.item = emailList; List<sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_FAX> faxList = new List<sapComDocumentSapRfcFunctionsVendor.ZMAS_VEN_CR_FAX>(); faxList.add(contactFax); fax.item = faxList; COMM_FIELDS.PHONE = phone; COMM_FIELDS.FAX = fax; COMM_FIELDS.EMAIL = email; system.debug('VendorCreationController sendToSAP COMM_FIELDS: ' + COMM_FIELDS); } IS_LFA1_FIELDS.STCEG=checkIfNull(acc.ABN__c, 20); IS_LFA1_FIELDS.BEGRU=Label.SMKT; //Need confirmation (defaulted) IS_LFA1_FIELDS.KTOKK=Label.SMKT; //Account Group needs to be added (Questionnaire) IS_LFA1_FIELDS.STCEG= checkIfNull(acc.ABN__c, 20); IS_LFA1_FIELDS.COMM_FIELDS = COMM_FIELDS; ADDRESS_FLDS.NAME= checkIfNull(acc.TradingName__c, 40); ADDRESS_FLDS.CITY=checkIfNull(acc.BillingCity, 40); ADDRESS_FLDS.POSTL_COD1=checkIfNull(acc.BillingPostalCode, 10); ADDRESS_FLDS.STREET=checkIfNull(acc.BillingStreet, 60); //ADDRESS_FLDS.STR_SUPPL1='STREET2'; //Mat to Comeback ADDRESS_FLDS.COUNTRY=checkIfNull(acc.Country__c, 3); ADDRESS_FLDS.LANGU=Label.English; //Constant ADDRESS_FLDS.REGION=checkIfNull(acc.BillingState, 3); ADDRESS_FLDS.SORT1=Label.Tilde_Sign; //Tilde Sign String referenceVendor = ''; if(acc.Trading_Term__c != null){ system.debug('Trading Term Not Null'); Trading_Terms__c tradingTerm = [SELECT Id, Reference_Vendor__c, PaymentMethod__c, PaymentTermsCode__c FROM Trading_Terms__c WHERE Id=: acc.Trading_Term__c]; referenceVendor = tradingTerm.Reference_Vendor__c; IS_LFB1_FIELDS.UZAWE = tradingTerm.PaymentMethod__c; IS_LFB1_FIELDS.ZTERM = tradingTerm.PaymentTermsCode__c; referenceVendor = tradingTerm.Reference_Vendor__c; system.debug('Vendor referenceVendor ' + referenceVendor); } ADDRESS_FLDS.SORT2=''; IS_LFA1_FIELDS.ADDRESS_FIELDS=ADDRESS_FLDS; //Australia if(acc.Country__c == Label.AU){ IS_LFB1_FIELDS.BUKRS=Label.AU_Company_Code; } //New Zealand else if(acc.Country__c == Label.NZ){ IS_LFB1_FIELDS.BUKRS= Label.NZ_Company_Code; } IS_LFM1_FIELDS.EKORG=Label.X1000; bob.timeout_x = Integer.valueOf(Label.Timeout); String IV_USER_ID = ''; try{ User curUser = [SELECT Id, ActiveDirectoryId__c FROM User WHERE Id =: UserInfo.getUserId() LIMIT 1]; IV_USER_ID = curUser.ActiveDirectoryId__c; }catch(Exception e){ IV_USER_ID = ''; } system.debug('VendorCreationController sendToSAP IV_USER_ID: ' + IV_USER_ID); sapComDocumentSapRfcFunctionsVendor.BAPIRET2_T response = new sapComDocumentSapRfcFunctionsVendor.BAPIRET2_T(); response = bob.Z_VEN_CREATION(IS_LFA1_FIELDS, IS_LFB1_FIELDS,IS_LFM1_FIELDS,Label.Default_Logic_Key,referenceVendor,IV_USER_ID); //String IV_REF_VENDOR parseResponse(response, acc, caseRec); }catch(Exception e){ Web_Service_Log__c logs = new Web_Service_Log__c(); //Custom Settings logs.Endpoint__c = integrationManagement.SAP_Endpoint__c; logs.Error_Message__c= Label.ERROR; logs.Error_Message__c += e; logs.Log_Type__c= Label.Case_Vendor_Create_Error; logs.Service_Name__c = Label.Vendor_Webservice_Error; logs.Status_Code__c = CaseRec.id; insert logs; caseRec.Integration_Error_Message__c = e.getMessage(); caseRec.SAP_Sync_Status__c = Label.Sync_Error; caseRec.Status = Label.Approved; update caseRec; } } } } public static String checkIfNull(String str, Integer maxSize){ if(str == null){ str = ''; } else{ if(str.length() > maxSize ){ str = str.substring(0, maxSize); } } return str; } public static void parseResponse(sapComDocumentSapRfcFunctionsVendor.BAPIRET2_T response, Account acc, Case caseRec){ //Get Integration Management Custom Settings Integration_Management__c integrationManagement; try{ //Get Endpoint URL integrationManagement = Integration_Management__c.getValues(Label.Vendor_Creation); }catch(Exception e){ //log exception to application log utility ApplicationLogUtility.logError('VendorCreationController', 'parseResponse', e, e.getMessage(), '', 0); ApplicationLogUtility.commitLog(); integrationManagement = null; } //Check if custom settings not null if(integrationManagement !=null){ if(response !=null){ if(response.item !=null){ system.debug('VendorCreationController parseResponse response: ' + response); system.debug('VendorCreationController parseResponse response: ' + response.item); String message = ''; Boolean hasError = false; for (sapComDocumentSapRfcFunctionsVendor.BAPIRET2 item : response.item){ system.debug('VendorCreationController parseResponse item: ' + item); system.debug('VendorCreationController parseResponse MESSAGE: ' + item.MESSAGE); system.debug('VendorCreationController parseResponse TYPE_X: ' + item.TYPE_x); if(item.TYPE_x == 'E'){ hasError = true; } if(item.MESSAGE!=null){ message = item.MESSAGE; } } if(!hasError){ String vendorNumber = message.replace('Vendor Number created ', ''); vendorNumber = vendorNumber.replace('.',''); //Update Legacy Vendor Number //Update to Sync Completed //Update Account Vendor Number system.debug('VendorCreationController parseResponse vendorNumber: ' + vendorNumber); acc.VendorNumber__c = vendorNumber; update acc; //Case Record Update caseRec.Integration_Error_Message__c = Label.Vendor_Successful; caseRec.SAP_Sync_Status__c = Label.Sync_Complete; caseRec.Status = 'Sync With SAP Completed'; update caseRec; //Lock case Approval.UnlockResult unlockCase = Approval.unlock(caseRec, false); if (unlockCase.isSuccess()) { //Operation was successful, so get the ID of the record that was processed System.debug('Successfully unlocked case with ID: ' + unlockCase.getId()); } else { //Operation failed, so get all errors for(Database.Error err : unlockCase.getErrors()) { System.debug('The following error has occurred.'); System.debug(err.getStatusCode() + ': ' + err.getMessage()); System.debug('Case fields that affected this error: ' + err.getFields()); } } //Update Web Service Logs Web_Service_Log__c logs = new Web_Service_Log__c(); //Custom Settings logs.Endpoint__c = integrationManagement.SAP_Endpoint__c; logs.Error_Message__c = message; logs.Log_Type__c= Label.Case_Vendor_Create_Successful; logs.Service_Name__c = Label.Vendor_Webservice_Success; logs.Status_Code__c = CaseRec.id; insert logs; system.debug('VendorCreationController parseResponse Account Vendor Number Updated'); } else{ //Update Web Service Logs Web_Service_Log__c logs = new Web_Service_Log__c(); //Custom Settings logs.Endpoint__c = integrationManagement.SAP_Endpoint__c; logs.Error_Message__c= Label.ERROR; logs.Error_Message__c += message; logs.Log_Type__c= Label.Case_Vendor_Create_Error; logs.Service_Name__c = Label.Vendor_Webservice_Error; logs.Status_Code__c = CaseRec.id; insert logs; //Update case caseRec.Integration_Error_Message__c = message; caseRec.SAP_Sync_Status__c = Label.Sync_Error; caseRec.Status = Label.Approved; update caseRec; } } else{ //No Response caseRec.Integration_Error_Message__c = Label.No_Response_Received_From_The_Webservice; caseRec.SAP_Sync_Status__c = Label.Sync_Error; caseRec.Status = Label.Approved; update caseRec; } } else{ //No Response caseRec.Integration_Error_Message__c = Label.No_Response_Received_From_The_Webservice; caseRec.SAP_Sync_Status__c = Label.Sync_Error; caseRec.Status = Label.Approved; update caseRec; } } } }
please help me out thank you :)
- Jasril Dane Caliwag
- July 02, 2018
- Like
- 0
hello! can anyone help me to cover the catch method in my class by the test class? the catch method is not covered by the test class.
here is my code:
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
here is the test class:
@isTest
private class AddPriceModalControllerTest {
@testSetup
static void createData() {
TriggerApexSwitch__c apexSwitchNutritionalDetail = TestDataFactory.createApexSwitchTestData(System.Label.NutritionalDetail);
insert apexSwitchNutritionalDetail;
//Custom Settings - Insert Record for Account
TriggerApexSwitch__c apexSwitchAccount = TestDataFactory.createApexSwitchTestData(System.Label.Account);
insert apexSwitchAccount;
TriggerApexSwitch__c apexSwitchUser = TestDataFactory.createApexSwitchTestData(System.Label.User);
insert apexSwitchUser;
//Custom Settings - Insert Record for SupplierProductArticle
TriggerApexSwitch__c apexSwitchSupplierProductArticle = TestDataFactory.createApexSwitchTestData(System.Label.SupplierProductArticle);
insert apexSwitchSupplierProductArticle ;
//Custom Settings - Insert Record for Price Detail
TriggerApexSwitch__c apexSwitchPriceDetail = TestDataFactory.createApexSwitchTestData(System.Label.PriceDetail);
insert apexSwitchPriceDetail;
//Custom Settings - Insert Record for Case
TriggerApexSwitch__c apexSwitchCase = TestDataFactory.createApexSwitchTestData(System.Label.Case);
insert apexSwitchCase;
//Custom Settings - Insert Record for GPA
TriggerApexSwitch__c apexSwitchGPA = TestDataFactory.createApexSwitchTestData('GlobalProductArticle');
insert apexSwitchGPA;
//Custom Settings - Insert Record for Pack Detail
TriggerApexSwitch__c apexSwitchPD = TestDataFactory.createApexSwitchTestData('PackDetail');
insert apexSwitchPD;
//Custom Settings - Insert Record for Retail price
TriggerApexSwitch__c apexSwitchRetail = TestDataFactory.createApexSwitchTestData(System.Label.RetailPrice);
insert apexSwitchRetail;
//Custom Settings - Insert Record for GTIN
TriggerApexSwitch__c apexSwitchGTIN = TestDataFactory.createApexSwitchTestData(System.Label.GlobalTradeItemNumber);
insert apexSwitchGTIN;
String ArticleEnrichment = Schema.SObjectType.SupplierProductArticle__c.getRecordTypeInfosByName().get('Article Enrichment').getRecordTypeId();
//Create Test data for Account
Account accountRec = TestDataFactory.createAccountTestData(1);
insert accountRec;
//Custom Settings - Insert Record for Contact
TriggerApexSwitch__c apexSwitchContact = TestDataFactory.createApexSwitchTestData(System.Label.Contact);
insert apexSwitchContact;
//Custom Settings - Insert Record for AccountContactRelation
TriggerApexSwitch__c apexSwitchAccountContactRelation = TestDataFactory.createApexSwitchTestData(System.Label.AccountContactRelation);
insert apexSwitchAccountContactRelation;
//Create Test Data for Contact
Contact contactRec = TestDataFactory.createContactTestData(1, accountRec.Id);
insert contactRec;
Global_Product_Article__c gpTest = new Global_Product_Article__c();
gpTest.Article_Hierarchy_Sub_Category_Name__c = 'Test';
gpTest.Wow_Article_Number__c = NULL;
insert gpTest;
SupplierProductArticle__c[] spaList = new List<SupplierProductArticle__c>();
SupplierProductArticle__c spaTest = new SupplierProductArticle__c();
spaTest.Account__c = accountRec.Id;
spaTest.Global_Product_Article__c = gpTest.Id;
spaTest.RecordTypeId = ArticleEnrichment;
spaTest.Sub_Status__c = 'Awaiting Documents';
insert spaTest;
Retail_Price__c[] rpList = new List<Retail_Price__c>();
Retail_Price__c rpTest = new Retail_Price__c();
rpTest.SupplierProductArticle__c = spaTest.Id;
rpTest.Number_of_Units__c = 453;
rpTest.GTIN__c = '8956353';
rpList.add(rpTest);
insert rpList;
PackDetail__c pdTest = TestDataFactory.createPackDetails(gpTest.Id);
pdTest.GTIN__c = '34802';
pdTest.NumberOfUnits__c = 34;
pdTest.Orderable_Unit__c = 'Yes';
insert pdTest;
PriceDetail__c priceRec = new PriceDetail__c();
priceRec.SupplierProductArticle__c = spaTest.Id;
priceRec.BonusStockQualifyingQty__c = 89;
insert priceRec;
priceRec.Orderable_GTIN__c = '34802';
update priceRec;
//PDRec.clone(false, true, false, false);
PriceDetail__c PDRec = new PriceDetail__c();
PDRec.InvoiceCost__c = 888;
PDRec.NetCost__c = 466;
PDRec.Status__c = Label.Draft;
PDRec.SupplierProductArticle__c = spaTest.Id;
PDRec.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert PDRec;
PriceDetail__c pD = PDRec.clone(false, true, false, false);
pD.InvoiceCost__c = 999;
pD.NetCost__c = 577;
pD.Status__c = Label.Draft;
pD.SupplierProductArticle__c = spaTest.Id;
pD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert pD;
}
@isTest static void getRegionValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getRegionValues());
}
@isTest static void getDeliveryMethodValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getDeliveryMethodValues());
}
@isTest static void savePriceDetailsTest(){
//List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId, Geography__c FROM PriceDetail__c];
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' LIMIT 1';
PriceDetail__c pD = Database.query(PDSOQL);
AddPriceModalController.savePriceDetails(pD.Id, pD);
}
@isTest static void getgetPriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.getPriceDetails(pD[0].Id));
}
}
the catch method in my class is not covered by the test class.
here is the separate code of my try-catch method above:
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
what should i do to cover the catch method by the test class ?
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
here is the test class:
@isTest
private class AddPriceModalControllerTest {
@testSetup
static void createData() {
TriggerApexSwitch__c apexSwitchNutritionalDetail = TestDataFactory.createApexSwitchTestData(System.Label.NutritionalDetail);
insert apexSwitchNutritionalDetail;
//Custom Settings - Insert Record for Account
TriggerApexSwitch__c apexSwitchAccount = TestDataFactory.createApexSwitchTestData(System.Label.Account);
insert apexSwitchAccount;
TriggerApexSwitch__c apexSwitchUser = TestDataFactory.createApexSwitchTestData(System.Label.User);
insert apexSwitchUser;
//Custom Settings - Insert Record for SupplierProductArticle
TriggerApexSwitch__c apexSwitchSupplierProductArticle = TestDataFactory.createApexSwitchTestData(System.Label.SupplierProductArticle);
insert apexSwitchSupplierProductArticle ;
//Custom Settings - Insert Record for Price Detail
TriggerApexSwitch__c apexSwitchPriceDetail = TestDataFactory.createApexSwitchTestData(System.Label.PriceDetail);
insert apexSwitchPriceDetail;
//Custom Settings - Insert Record for Case
TriggerApexSwitch__c apexSwitchCase = TestDataFactory.createApexSwitchTestData(System.Label.Case);
insert apexSwitchCase;
//Custom Settings - Insert Record for GPA
TriggerApexSwitch__c apexSwitchGPA = TestDataFactory.createApexSwitchTestData('GlobalProductArticle');
insert apexSwitchGPA;
//Custom Settings - Insert Record for Pack Detail
TriggerApexSwitch__c apexSwitchPD = TestDataFactory.createApexSwitchTestData('PackDetail');
insert apexSwitchPD;
//Custom Settings - Insert Record for Retail price
TriggerApexSwitch__c apexSwitchRetail = TestDataFactory.createApexSwitchTestData(System.Label.RetailPrice);
insert apexSwitchRetail;
//Custom Settings - Insert Record for GTIN
TriggerApexSwitch__c apexSwitchGTIN = TestDataFactory.createApexSwitchTestData(System.Label.GlobalTradeItemNumber);
insert apexSwitchGTIN;
String ArticleEnrichment = Schema.SObjectType.SupplierProductArticle__c.getRecordTypeInfosByName().get('Article Enrichment').getRecordTypeId();
//Create Test data for Account
Account accountRec = TestDataFactory.createAccountTestData(1);
insert accountRec;
//Custom Settings - Insert Record for Contact
TriggerApexSwitch__c apexSwitchContact = TestDataFactory.createApexSwitchTestData(System.Label.Contact);
insert apexSwitchContact;
//Custom Settings - Insert Record for AccountContactRelation
TriggerApexSwitch__c apexSwitchAccountContactRelation = TestDataFactory.createApexSwitchTestData(System.Label.AccountContactRelation);
insert apexSwitchAccountContactRelation;
//Create Test Data for Contact
Contact contactRec = TestDataFactory.createContactTestData(1, accountRec.Id);
insert contactRec;
Global_Product_Article__c gpTest = new Global_Product_Article__c();
gpTest.Article_Hierarchy_Sub_Category_Name__c = 'Test';
gpTest.Wow_Article_Number__c = NULL;
insert gpTest;
SupplierProductArticle__c[] spaList = new List<SupplierProductArticle__c>();
SupplierProductArticle__c spaTest = new SupplierProductArticle__c();
spaTest.Account__c = accountRec.Id;
spaTest.Global_Product_Article__c = gpTest.Id;
spaTest.RecordTypeId = ArticleEnrichment;
spaTest.Sub_Status__c = 'Awaiting Documents';
insert spaTest;
Retail_Price__c[] rpList = new List<Retail_Price__c>();
Retail_Price__c rpTest = new Retail_Price__c();
rpTest.SupplierProductArticle__c = spaTest.Id;
rpTest.Number_of_Units__c = 453;
rpTest.GTIN__c = '8956353';
rpList.add(rpTest);
insert rpList;
PackDetail__c pdTest = TestDataFactory.createPackDetails(gpTest.Id);
pdTest.GTIN__c = '34802';
pdTest.NumberOfUnits__c = 34;
pdTest.Orderable_Unit__c = 'Yes';
insert pdTest;
PriceDetail__c priceRec = new PriceDetail__c();
priceRec.SupplierProductArticle__c = spaTest.Id;
priceRec.BonusStockQualifyingQty__c = 89;
insert priceRec;
priceRec.Orderable_GTIN__c = '34802';
update priceRec;
//PDRec.clone(false, true, false, false);
PriceDetail__c PDRec = new PriceDetail__c();
PDRec.InvoiceCost__c = 888;
PDRec.NetCost__c = 466;
PDRec.Status__c = Label.Draft;
PDRec.SupplierProductArticle__c = spaTest.Id;
PDRec.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert PDRec;
PriceDetail__c pD = PDRec.clone(false, true, false, false);
pD.InvoiceCost__c = 999;
pD.NetCost__c = 577;
pD.Status__c = Label.Draft;
pD.SupplierProductArticle__c = spaTest.Id;
pD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert pD;
}
@isTest static void getRegionValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getRegionValues());
}
@isTest static void getDeliveryMethodValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getDeliveryMethodValues());
}
@isTest static void savePriceDetailsTest(){
//List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId, Geography__c FROM PriceDetail__c];
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' LIMIT 1';
PriceDetail__c pD = Database.query(PDSOQL);
AddPriceModalController.savePriceDetails(pD.Id, pD);
}
@isTest static void getgetPriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.getPriceDetails(pD[0].Id));
}
}
the catch method in my class is not covered by the test class.
here is the separate code of my try-catch method above:
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
what should i do to cover the catch method by the test class ?
- Jasril Dane Caliwag
- June 25, 2018
- Like
- 0
hi all, i'm having an error about the existence of a variable, can anyone help me out ? thanks
here is my code:
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
here is the test class:
@isTest
private class AddPriceModalControllerTest {
@testSetup
static void createData() {
PriceDetail__c pD = PDRec.clone(false, true, false, false);
pD.InvoiceCost__c = 999;
pD.NetCost__c = 577;
pD.Status__c = Label.Draft;
pD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert pD;
}
@isTest static void getRegionValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getRegionValues());
}
@isTest static void getDeliveryMethodValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getDeliveryMethodValues());
}
@isTest static void savePriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.savePriceDetails(pD[0].Id, pD[0]));
}
@isTest static void getgetPriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.getPriceDetails(pD[0].Id));
}
}
im having an error in my test class on line 6, (Variable does not exist: PDRec)
here is the separate code of line 6:
PriceDetail__c pD = PDRec.clone(false, true, false, false);
what should i do?
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
here is the test class:
@isTest
private class AddPriceModalControllerTest {
@testSetup
static void createData() {
PriceDetail__c pD = PDRec.clone(false, true, false, false);
pD.InvoiceCost__c = 999;
pD.NetCost__c = 577;
pD.Status__c = Label.Draft;
pD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert pD;
}
@isTest static void getRegionValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getRegionValues());
}
@isTest static void getDeliveryMethodValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getDeliveryMethodValues());
}
@isTest static void savePriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.savePriceDetails(pD[0].Id, pD[0]));
}
@isTest static void getgetPriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.getPriceDetails(pD[0].Id));
}
}
im having an error in my test class on line 6, (Variable does not exist: PDRec)
here is the separate code of line 6:
PriceDetail__c pD = PDRec.clone(false, true, false, false);
what should i do?
- Jasril Dane Caliwag
- June 22, 2018
- Like
- 0
hi all, Can anyone help me in writting the test class for the below class.
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
- Jasril Dane Caliwag
- June 22, 2018
- Like
- 0
hello! can anyone help me to cover the catch method in my class by the test class? the catch method is not covered by the test class.
here is my code:
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
here is the test class:
@isTest
private class AddPriceModalControllerTest {
@testSetup
static void createData() {
TriggerApexSwitch__c apexSwitchNutritionalDetail = TestDataFactory.createApexSwitchTestData(System.Label.NutritionalDetail);
insert apexSwitchNutritionalDetail;
//Custom Settings - Insert Record for Account
TriggerApexSwitch__c apexSwitchAccount = TestDataFactory.createApexSwitchTestData(System.Label.Account);
insert apexSwitchAccount;
TriggerApexSwitch__c apexSwitchUser = TestDataFactory.createApexSwitchTestData(System.Label.User);
insert apexSwitchUser;
//Custom Settings - Insert Record for SupplierProductArticle
TriggerApexSwitch__c apexSwitchSupplierProductArticle = TestDataFactory.createApexSwitchTestData(System.Label.SupplierProductArticle);
insert apexSwitchSupplierProductArticle ;
//Custom Settings - Insert Record for Price Detail
TriggerApexSwitch__c apexSwitchPriceDetail = TestDataFactory.createApexSwitchTestData(System.Label.PriceDetail);
insert apexSwitchPriceDetail;
//Custom Settings - Insert Record for Case
TriggerApexSwitch__c apexSwitchCase = TestDataFactory.createApexSwitchTestData(System.Label.Case);
insert apexSwitchCase;
//Custom Settings - Insert Record for GPA
TriggerApexSwitch__c apexSwitchGPA = TestDataFactory.createApexSwitchTestData('GlobalProductArticle');
insert apexSwitchGPA;
//Custom Settings - Insert Record for Pack Detail
TriggerApexSwitch__c apexSwitchPD = TestDataFactory.createApexSwitchTestData('PackDetail');
insert apexSwitchPD;
//Custom Settings - Insert Record for Retail price
TriggerApexSwitch__c apexSwitchRetail = TestDataFactory.createApexSwitchTestData(System.Label.RetailPrice);
insert apexSwitchRetail;
//Custom Settings - Insert Record for GTIN
TriggerApexSwitch__c apexSwitchGTIN = TestDataFactory.createApexSwitchTestData(System.Label.GlobalTradeItemNumber);
insert apexSwitchGTIN;
String ArticleEnrichment = Schema.SObjectType.SupplierProductArticle__c.getRecordTypeInfosByName().get('Article Enrichment').getRecordTypeId();
//Create Test data for Account
Account accountRec = TestDataFactory.createAccountTestData(1);
insert accountRec;
//Custom Settings - Insert Record for Contact
TriggerApexSwitch__c apexSwitchContact = TestDataFactory.createApexSwitchTestData(System.Label.Contact);
insert apexSwitchContact;
//Custom Settings - Insert Record for AccountContactRelation
TriggerApexSwitch__c apexSwitchAccountContactRelation = TestDataFactory.createApexSwitchTestData(System.Label.AccountContactRelation);
insert apexSwitchAccountContactRelation;
//Create Test Data for Contact
Contact contactRec = TestDataFactory.createContactTestData(1, accountRec.Id);
insert contactRec;
Global_Product_Article__c gpTest = new Global_Product_Article__c();
gpTest.Article_Hierarchy_Sub_Category_Name__c = 'Test';
gpTest.Wow_Article_Number__c = NULL;
insert gpTest;
SupplierProductArticle__c[] spaList = new List<SupplierProductArticle__c>();
SupplierProductArticle__c spaTest = new SupplierProductArticle__c();
spaTest.Account__c = accountRec.Id;
spaTest.Global_Product_Article__c = gpTest.Id;
spaTest.RecordTypeId = ArticleEnrichment;
spaTest.Sub_Status__c = 'Awaiting Documents';
insert spaTest;
Retail_Price__c[] rpList = new List<Retail_Price__c>();
Retail_Price__c rpTest = new Retail_Price__c();
rpTest.SupplierProductArticle__c = spaTest.Id;
rpTest.Number_of_Units__c = 453;
rpTest.GTIN__c = '8956353';
rpList.add(rpTest);
insert rpList;
PackDetail__c pdTest = TestDataFactory.createPackDetails(gpTest.Id);
pdTest.GTIN__c = '34802';
pdTest.NumberOfUnits__c = 34;
pdTest.Orderable_Unit__c = 'Yes';
insert pdTest;
PriceDetail__c priceRec = new PriceDetail__c();
priceRec.SupplierProductArticle__c = spaTest.Id;
priceRec.BonusStockQualifyingQty__c = 89;
insert priceRec;
priceRec.Orderable_GTIN__c = '34802';
update priceRec;
//PDRec.clone(false, true, false, false);
PriceDetail__c PDRec = new PriceDetail__c();
PDRec.InvoiceCost__c = 888;
PDRec.NetCost__c = 466;
PDRec.Status__c = Label.Draft;
PDRec.SupplierProductArticle__c = spaTest.Id;
PDRec.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert PDRec;
PriceDetail__c pD = PDRec.clone(false, true, false, false);
pD.InvoiceCost__c = 999;
pD.NetCost__c = 577;
pD.Status__c = Label.Draft;
pD.SupplierProductArticle__c = spaTest.Id;
pD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert pD;
}
@isTest static void getRegionValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getRegionValues());
}
@isTest static void getDeliveryMethodValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getDeliveryMethodValues());
}
@isTest static void savePriceDetailsTest(){
//List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId, Geography__c FROM PriceDetail__c];
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' LIMIT 1';
PriceDetail__c pD = Database.query(PDSOQL);
AddPriceModalController.savePriceDetails(pD.Id, pD);
}
@isTest static void getgetPriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.getPriceDetails(pD[0].Id));
}
}
the catch method in my class is not covered by the test class.
here is the separate code of my try-catch method above:
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
what should i do to cover the catch method by the test class ?
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
here is the test class:
@isTest
private class AddPriceModalControllerTest {
@testSetup
static void createData() {
TriggerApexSwitch__c apexSwitchNutritionalDetail = TestDataFactory.createApexSwitchTestData(System.Label.NutritionalDetail);
insert apexSwitchNutritionalDetail;
//Custom Settings - Insert Record for Account
TriggerApexSwitch__c apexSwitchAccount = TestDataFactory.createApexSwitchTestData(System.Label.Account);
insert apexSwitchAccount;
TriggerApexSwitch__c apexSwitchUser = TestDataFactory.createApexSwitchTestData(System.Label.User);
insert apexSwitchUser;
//Custom Settings - Insert Record for SupplierProductArticle
TriggerApexSwitch__c apexSwitchSupplierProductArticle = TestDataFactory.createApexSwitchTestData(System.Label.SupplierProductArticle);
insert apexSwitchSupplierProductArticle ;
//Custom Settings - Insert Record for Price Detail
TriggerApexSwitch__c apexSwitchPriceDetail = TestDataFactory.createApexSwitchTestData(System.Label.PriceDetail);
insert apexSwitchPriceDetail;
//Custom Settings - Insert Record for Case
TriggerApexSwitch__c apexSwitchCase = TestDataFactory.createApexSwitchTestData(System.Label.Case);
insert apexSwitchCase;
//Custom Settings - Insert Record for GPA
TriggerApexSwitch__c apexSwitchGPA = TestDataFactory.createApexSwitchTestData('GlobalProductArticle');
insert apexSwitchGPA;
//Custom Settings - Insert Record for Pack Detail
TriggerApexSwitch__c apexSwitchPD = TestDataFactory.createApexSwitchTestData('PackDetail');
insert apexSwitchPD;
//Custom Settings - Insert Record for Retail price
TriggerApexSwitch__c apexSwitchRetail = TestDataFactory.createApexSwitchTestData(System.Label.RetailPrice);
insert apexSwitchRetail;
//Custom Settings - Insert Record for GTIN
TriggerApexSwitch__c apexSwitchGTIN = TestDataFactory.createApexSwitchTestData(System.Label.GlobalTradeItemNumber);
insert apexSwitchGTIN;
String ArticleEnrichment = Schema.SObjectType.SupplierProductArticle__c.getRecordTypeInfosByName().get('Article Enrichment').getRecordTypeId();
//Create Test data for Account
Account accountRec = TestDataFactory.createAccountTestData(1);
insert accountRec;
//Custom Settings - Insert Record for Contact
TriggerApexSwitch__c apexSwitchContact = TestDataFactory.createApexSwitchTestData(System.Label.Contact);
insert apexSwitchContact;
//Custom Settings - Insert Record for AccountContactRelation
TriggerApexSwitch__c apexSwitchAccountContactRelation = TestDataFactory.createApexSwitchTestData(System.Label.AccountContactRelation);
insert apexSwitchAccountContactRelation;
//Create Test Data for Contact
Contact contactRec = TestDataFactory.createContactTestData(1, accountRec.Id);
insert contactRec;
Global_Product_Article__c gpTest = new Global_Product_Article__c();
gpTest.Article_Hierarchy_Sub_Category_Name__c = 'Test';
gpTest.Wow_Article_Number__c = NULL;
insert gpTest;
SupplierProductArticle__c[] spaList = new List<SupplierProductArticle__c>();
SupplierProductArticle__c spaTest = new SupplierProductArticle__c();
spaTest.Account__c = accountRec.Id;
spaTest.Global_Product_Article__c = gpTest.Id;
spaTest.RecordTypeId = ArticleEnrichment;
spaTest.Sub_Status__c = 'Awaiting Documents';
insert spaTest;
Retail_Price__c[] rpList = new List<Retail_Price__c>();
Retail_Price__c rpTest = new Retail_Price__c();
rpTest.SupplierProductArticle__c = spaTest.Id;
rpTest.Number_of_Units__c = 453;
rpTest.GTIN__c = '8956353';
rpList.add(rpTest);
insert rpList;
PackDetail__c pdTest = TestDataFactory.createPackDetails(gpTest.Id);
pdTest.GTIN__c = '34802';
pdTest.NumberOfUnits__c = 34;
pdTest.Orderable_Unit__c = 'Yes';
insert pdTest;
PriceDetail__c priceRec = new PriceDetail__c();
priceRec.SupplierProductArticle__c = spaTest.Id;
priceRec.BonusStockQualifyingQty__c = 89;
insert priceRec;
priceRec.Orderable_GTIN__c = '34802';
update priceRec;
//PDRec.clone(false, true, false, false);
PriceDetail__c PDRec = new PriceDetail__c();
PDRec.InvoiceCost__c = 888;
PDRec.NetCost__c = 466;
PDRec.Status__c = Label.Draft;
PDRec.SupplierProductArticle__c = spaTest.Id;
PDRec.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert PDRec;
PriceDetail__c pD = PDRec.clone(false, true, false, false);
pD.InvoiceCost__c = 999;
pD.NetCost__c = 577;
pD.Status__c = Label.Draft;
pD.SupplierProductArticle__c = spaTest.Id;
pD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
insert pD;
}
@isTest static void getRegionValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getRegionValues());
}
@isTest static void getDeliveryMethodValuesTest(){
System.assertNotEquals(null, AddPriceModalController.getDeliveryMethodValues());
}
@isTest static void savePriceDetailsTest(){
//List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId, Geography__c FROM PriceDetail__c];
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' LIMIT 1';
PriceDetail__c pD = Database.query(PDSOQL);
AddPriceModalController.savePriceDetails(pD.Id, pD);
}
@isTest static void getgetPriceDetailsTest(){
List<PriceDetail__c> pD = [Select Id, InvoiceCost__c, NetCost__c, RecordTypeId FROM PriceDetail__c];
System.assertNotEquals(null, AddPriceModalController.getPriceDetails(pD[0].Id));
}
}
the catch method in my class is not covered by the test class.
here is the separate code of my try-catch method above:
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
what should i do to cover the catch method by the test class ?
- Jasril Dane Caliwag
- June 25, 2018
- Like
- 0
hi all, Can anyone help me in writting the test class for the below class.
public class AddPriceModalController {
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
@AuraEnabled
public static List<String> getRegionValues() {
List<String> lstGeography = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Geography__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstGeography.add(f.getValue());
}
return lstGeography;
}
@AuraEnabled
public static List<String> getDeliveryMethodValues() {
List<String> lstSourceOfSupply = new List<String>(); //new list for holding all of the picklist options
Schema.DescribeFieldResult fieldResult = PriceDetail__c.Source_of_Supply__c.getDescribe();
List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
for( Schema.PicklistEntry f : ple)
{
lstSourceOfSupply.add(f.getLabel() + '---' + f.getValue());
}
return lstSourceOfSupply;
}
//Method to Save the Price Detail Change Request
@AuraEnabled
public static String savePriceDetails(Id PDID,PriceDetail__c newPriceDetails) {
system.debug('savePriceDetails');
system.debug('newPriceDetails'+newPriceDetails);
Decimal invoiceCost = 0;
Decimal netCost = 0;
Decimal netProfit = 0;
Decimal retailPrice = 0;
string resultId;
//Webservice Call to SAP to get the InvoiceCost and NetCost
/*invoiceCost = PriceDetailsWebService.getInvoiceCost(PDID);
netCost = PriceDetailsWebService.getNetCost(PDID);*/
String PDSOQL = SObjectUtil.getSOQLStringFullFields(PriceDetail__c.getSObjectType())
+' WHERE ' + ' Id = :PDID LIMIT 1';
//List<PriceDetail__c> listPD = Database.query(PDSOQL);
PriceDetail__c PDRec;
try{
PDRec = Database.query(PDSOQL);
}catch(Exception e){
ApplicationLogUtility.logError('SubmitActionController', 'getParentId', e, e.getMessage(), '', 0);
ApplicationLogUtility.commitLog();
PDRec = null;
}
if(PDRec!=null){
PriceDetail__c clonedPD = PDRec.clone(false, true, false, false);
clonedPD.InvoiceCost__c = invoiceCost;
clonedPD.NetCost__c = netCost;
clonedPD.ClonedFrom__c = PDRec.Id;
clonedPD.Status__c = Label.Draft;
clonedPD.RecordTypeId = Schema.SObjectType.PriceDetail__c.getRecordTypeInfosByName().get(Label.PriceDetail_Submit).getRecordTypeId();
Schema.DescribeSObjectResult objResult = PriceDetail__c.sObjectType.getDescribe();
for(string apiName : objResult.fields.getMap().keySet()){
String feildName = apiName;
if(feildName.endsWith('__c')){
if((clonedPD.get(apiName) != newPriceDetails.get(apiName)) && (feildName!= 'ClonedFrom__c')){
system.debug('feildName***'+feildName);
clonedPD.put(apiName, newPriceDetails.get(apiName));
}
}
}
system.debug('clonedPD**'+clonedPD);
if(clonedPD!=null){
insert clonedPD;
}
resultId = Id.valueOf(clonedPD.Id);
system.debug('resultId'+resultId);
}
return resultId;
}
//Method to get the exsisting data from the record
@AuraEnabled
public static PriceDetail__c getPriceDetails(Id recordId) {
system.debug('recordId**'+recordId);
PriceDetail__c pdRecord = (PriceDetail__c) SObjectUtil.getFullSObject(PriceDetail__c.getSObjectType(), recordId);
return pdRecord;
}
}
- Jasril Dane Caliwag
- June 22, 2018
- Like
- 0