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
RaffusRaffus 

How to write a test method for this method

@future (callout=true)
    public static void fetchDetailsAndUpdaterandCustomer(String emailid, String empid, String mttoken) {  //
        rand_App_Customer__c customer = [SELECT Id,Name, Customer_Last_Name__c, Customer_Email__c, Customer_Photo_Base64__c, Customer_Emp_ID__c, Customer_First_Name__c, Customer_Name__c, Party_Id__c FROM rand_App_Customer__c WHERE Customer_Email__c= : emailid];
        System.debug('customers getOrCreateCustomer' + customer);

        String employeeDetails = getDataFromEmployee(empid, emailid, jwttoken);//String 
        Map<String, Object> employeeAllData = (Map<String, Object>)JSON.deserializeUntyped(employeeDetails);
        Map<String, Object> empCardDetails = (Map<String, Object>)employeeAllData.get('EmpCardDetailsOutputParameters');
        System.debug('customers empCardDetails' + empCardDetails);
        If(empCardDetails != null){
            Map<String, Object> p_refcur = (Map<String, Object>)empCardDetails.get('P_REFCUR');
            System.debug('customers p_refcur' + p_refcur);
            If(p_refcur != null){
                Map<String, Object> row = (Map<String, Object>)p_refcur.get('Row');
                System.debug('customers row' + row);
                List<Object> employee = (List<Object>)row.get('Column');
                for(object obj : employee){
                    String employeeData = JSON.serialize(obj);
                    if(employeeData.contains('FIRST_NAME')){
                    customer.Customer_First_Name__c = getFieldValue(employeeData);
                    customer.Name = customer.Customer_First_Name__c;
                    }else if(employeeData.contains('LAST_NAME')){
                        customer.Customer_Last_Name__c = getFieldValue(employeeData);
                        customer.Name = customer.Name +' '+customer.Customer_Last_Name__c;
                    }else if(employeeData.contains('EMPLOYEE_PHOTO')){
                    String empPhoto = getFieldValue(employeeData);
                    String empPhotoFinal =  empPhoto.replaceAll('\n', '');
                    customer.Customer_Photo_Base64__c = 'data:image/jpeg;base64,'+empPhotoFinal;
                    }else if(employeeData.contains('DEPARTMENT')){
                    customer.Customer_Department__c = getFieldValue(employeeData);
                    } 
                }
            }
        }
        customer.recalculateFormulas();
        System.debug('before upsert FromFuture customer ' + customer);
        upsert customer;
    }
    }

 
AnkaiahAnkaiah (Salesforce Developers) 
Hi Raffus,

Refer the below link have solution for similar kind of ask.

https://salesforce.stackexchange.com/questions/216254/testclass-for-future-callout-true

Thanks!!