You need to sign in to do that
Don't have an account?
JonathanFox UK
Create Custom Metadata - Apex Test Class
Hi all,
I use the Metadata API to update a metadata record similar to the example in this blog -> https://www.sfdcpanther.com/create-update-custom-metadata-using-apex/
However, to test one of my apex methods, I pass in some new details such as preferences for the end-user to change via a LWC rather than going into set up > Custom Metadata.
This works fine however to write a test method for this method, I am unsure how I can get code coverage as we are unable to deploy metadata in a test method.
My method of which I wish to get coverage is below:
I use the Metadata API to update a metadata record similar to the example in this blog -> https://www.sfdcpanther.com/create-update-custom-metadata-using-apex/
However, to test one of my apex methods, I pass in some new details such as preferences for the end-user to change via a LWC rather than going into set up > Custom Metadata.
This works fine however to write a test method for this method, I am unsure how I can get code coverage as we are unable to deploy metadata in a test method.
My method of which I wish to get coverage is below:
@AuraEnabled public static void updateConfig(String companyName, String publicKey, Boolean initialSearchPref, Boolean resubmitSearchPref, String CRA1, String CRA2){ List<String> metaDataFullNameList = ConfigController.getMetaDataFullNameList(); Metadata.CustomMetadata customMetadataRecord = new Metadata.CustomMetadata(); customMetadataRecord.fullName = metaDataFullNameList[0]; System.debug('customMetadataRecord.fullName > ' + customMetadataRecord.fullName); if(publicKey != null){ Metadata.CustomMetadataValue updateMetadataField1 = new Metadata.CustomMetadataValue(); updateMetadataField1.field = 'Public_Key__c'; updateMetadataField1.value = publicKey; customMetadataRecord.values.add(updateMetadataField1); } Metadata.CustomMetadataValue updateMetadataField2 = new Metadata.CustomMetadataValue(); updateMetadataField2.field = 'Automatically_Submit_Search__c'; updateMetadataField2.value = initialSearchPref; customMetadataRecord.values.add(updateMetadataField2); Metadata.CustomMetadataValue updateMetadataField3 = new Metadata.CustomMetadataValue(); updateMetadataField3.field = 'Automatically_Resend_Referred_Searches__c'; updateMetadataField3.value = resubmitSearchPref; customMetadataRecord.values.add(updateMetadataField3); if(CRA1 != null){ Metadata.CustomMetadataValue updateMetadataField4 = new Metadata.CustomMetadataValue(); updateMetadataField4.field = 'CRA_1__c'; updateMetadataField4.value = CRA1; customMetadataRecord.values.add(updateMetadataField4); } if(CRA2 != null){ Metadata.CustomMetadataValue updateMetadataField5 = new Metadata.CustomMetadataValue(); updateMetadataField5.field = 'CRA_2__c'; updateMetadataField5.value = CRA2; customMetadataRecord.values.add(updateMetadataField5); } if(companyName != null){ Metadata.CustomMetadataValue updateMetadataField6 = new Metadata.CustomMetadataValue(); updateMetadataField6.field = 'Company_Name__c'; updateMetadataField6.value = companyName; customMetadataRecord.values.add(updateMetadataField6); } customMetadataRecord.label = 'Live'; System.debug('customMetadataRecord > ' + customMetadataRecord); Metadata.DeployContainer mdContainer = new Metadata.DeployContainer(); mdContainer.addMetadata(customMetadataRecord); System.debug('mdContainer > ' + mdContainer); ConfigMetaDataCallback callback = new ConfigMetaDataCallback(); // Enqueue custom metadata deployment Id jobId = Metadata.Operations.enqueueDeployment(mdContainer, callback); System.debug('jobId > ' + jobId); }
Best Regards Image Restoration Services