function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Shabista Zaidi 5Shabista Zaidi 5 

How to write test class for EinsteinVision_Admin

Hi Guys,
Has Anybody  written a test class for the Apex class used in this trailhead below . Apex Class name is EinsteinVision_Admin:

Trailhead 
https://trailhead.salesforce.com/en/content/learn/projects/build-a-cat-rescue-app-that-recognizes-cat-breeds

Below is the Apex Class Snippet:

public class EinsteinVision_Admin {
    @AuraEnabled
    public static void createDatasetFromUrl(String zipUrl) {
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        service.createDatasetFromUrlAsync(zipUrl);
    }
    @AuraEnabled
    public static List<EinsteinVision_Dataset> getDatasets() {
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        EinsteinVision_Dataset[] datasets = service.getDatasets();
        return datasets;
    }
    @AuraEnabled
    public static String trainDataset(Decimal datasetId) {
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        EinsteinVision_Model model = service.trainDataset(Long.valueOf(String.valueOf(datasetId)), 'Training', 0, 0, '');
        return model.modelId;
    }
    @AuraEnabled
    public static void deleteDataset(Long datasetId) {
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        service.deleteDataset(datasetId);
    }
    @AuraEnabled
    public static List<EinsteinVision_Model> getModels(Long datasetId) {
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        EinsteinVision_Model[] models = service.getModels(datasetId);
        return models;
    }
    @AuraEnabled
    public static void getCatPrediction(Id catId, String fileName, String base64) {
        Blob fileBlob = EncodingUtil.base64Decode(base64);
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        EinsteinVision_Dataset[] datasets = service.getDatasets();
        for (EinsteinVision_Dataset dataset : datasets) {
            if (dataset.Name.equals('Einstein_Photos')) {
                EinsteinVision_Model[] models = service.getModels(dataset);
                EinsteinVision_Model model = models.get(0);
                EinsteinVision_PredictionResult result = service.predictBlob(model.modelId, fileBlob, '');
                EinsteinVision_Probability probability = result.probabilities.get(0);
                Claim claim = [SELECT Id FROM Claim WHERE Id=:catId];
                System.debug('===claim ID==='+claim);
                claim.Claim_Accident_Categories__c = probability.label;
                update claim;
                Attachment[] attsOld = [SELECT Id FROM Attachment WHERE ParentId=:catId];
                System.debug('===attachment ID==='+attsOld);
                delete attsOld;
                Attachment att = new Attachment();
                att.Body = fileBlob;
                att.ParentId = claim.Id;
                att.Name = fileName;
                insert att;
            }
        }
    }
    @AuraEnabled
    public static Claim getClaimFields(Id claimId ) {
        Claim claim1 = [SELECT Id,Claim_Accident_Categories__c,Vehicle_Speed_Predicted__c,Likely_Injuries__c,Vehicle_damage__c,Damage_Impact__c FROM Claim WHERE Id=:claimId];
        system.debug('claim1'+claim1);
        return claim1;
    }
    
    @AuraEnabled
    public static List<EinsteinVision_Label> getCatLabels() {
        EinsteinVision_PredictionService service = new EinsteinVision_PredictionService();
        EinsteinVision_Dataset[] datasets = service.getDatasets();
        for (EinsteinVision_Dataset dataset : datasets) {
            if (dataset.Name.equals('Einstein_Photos')) {
                return dataset.labelSummary.labels;
            }
        }
        return null;
    }
    @AuraEnabled
    public static String getImageUrlFromAttachment(Id catId) {
        List<Attachment> atts = [SELECT Id FROM Attachment WHERE ParentId=:catId];
        System.debug('===id==='+atts);
        if (atts.size()>0) {
            return atts.get(0).Id;
        }
        return '';
    }
}
Deepali KulshresthaDeepali Kulshrestha
Hi Shabista,

I've gone through your code and i found suitable links that can give you further details of
Einstein Module Trail:

https://trailhead.salesforce.com/en/content/learn/modules/get_smart_einstein_feat

And you can refer this TestClass Link for your einsteinClass:

https://github.com/muenzpraeger/salesforce-einstein-vision-apex/blob/master/src/classes/Test_EinsteinVision.cls


I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.

Thanks and Regards,
Deepali Kulshrestha
www.kdeepali.com