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
BavukatBavukat 

Test Class for @Remote Action?

Friends- I am not sure how to write a test class for below menthod. Can you help ?
@RemoteAction public static RemoteSaveResult saveSignature(Id ehsId, String signatureBody) {
    Attachment a = new Attachment(ParentId=ehsId, name='Signature.png', ContentType='image/png', Body=EncodingUtil.base64Decode(signatureBody));
    Database.saveResult result = Database.insert(a,false);
    RemoteSaveResult newResult = new RemoteSaveResult();
    newResult.success = result.isSuccess();
    newResult.attachmentId = a.Id;
    newResult.errorMessage = result.isSuccess()?'':result.getErrors()[0].getMessage();
    
    return newResult;
}

public class RemoteSaveResult {
    public Boolean success;
    public Id attachmentId;
    public String errorMessage;
}

 
Best Answer chosen by Bavukat
Paul_BoikoPaul_Boiko
Hi Bavukat,
You need to write class like this:
 
@IsTest
public class NameOfTheClassTest {
    public static testmethod void testSaveSignature() {
        //First create EHS record (I am not sure what object you use and what are requred fields to create this   record) let's say it's EHS__c and Name is the only field that is required
        EHS__c ehs = new Lead( Name = 'test');
        insert ehs;
        NameOfTheClass.RemoteSaveResult result= NameOfTheClass.saveSignature( ehs.Id, 'Test body');
        // Validate if attachment was created and was returned in SaveResult
        System.Assert( result.attachmentId != null );
        System.Assert( result.success );
    }
}

As a common practice mark best answer if it helped you.

All Answers

Paul_BoikoPaul_Boiko
Hi Bavukat,
You need to write class like this:
 
@IsTest
public class NameOfTheClassTest {
    public static testmethod void testSaveSignature() {
        //First create EHS record (I am not sure what object you use and what are requred fields to create this   record) let's say it's EHS__c and Name is the only field that is required
        EHS__c ehs = new Lead( Name = 'test');
        insert ehs;
        NameOfTheClass.RemoteSaveResult result= NameOfTheClass.saveSignature( ehs.Id, 'Test body');
        // Validate if attachment was created and was returned in SaveResult
        System.Assert( result.attachmentId != null );
        System.Assert( result.success );
    }
}

As a common practice mark best answer if it helped you.
This was selected as the best answer
BavukatBavukat
That Helped. Thank You Paul!