1
votes

I'm working on Salesforce Apex web service to create record. Below is the apex web service class that I have written:

global class createCloudRecord {

    global class projectInputs{
        webService Integer ProjectID;
        webService String ProjectName;
    }

    webService static Boolean createSFRecords(List<projectInputs> inputs) {

        cv__Designation__c desg = new cv__Designation__c();
        desg.cv__Active__c = true;
        desg.cv__Default__c = false;
        desg.cv__Description__c = 'Test Desc';
        desg.OwnerId = '002B0000000K9soIAD';
        desg.Name = inputs[0].ProjectName;
        desg.cv__ExternalId__c = string.valueof(inputs[0].ProjectID);

        insert desg;

        return true;
    }
}

It's working fine and creating records on SF cloud via SOAP API call. Now I have to written the test class for above web service with code coverage of min 75%.

Below is the code that I have written for my test class:

@isTest 
private class createCloudRecordTest {

    static testMethod void testCreateSFRecords() {
         createCloudRecord.projectInputs project = new createCloudRecord.projectInputs();
         project.ProjectID = 12345;
         project.ProjectName = 'TestProject';


        createCloudRecord.createSFRecords(project);
    }
}

But this is showing an error for this line createCloudRecord.createSFRecords(project);:

Error: Compile Error: Method does not exist or incorrect signature.

Anyone has any idea how can I make this working.

Thanks!

1

1 Answers

2
votes

I got the solution for my question. The problem was in my web service I've defined param as list but above in test class I'm passing param as single record.

So it should be something like below:

@isTest 
private class createCloudRecordTest {

    static testMethod void testCreateSFRecords() {
         createCloudRecord.projectInputs project = new createCloudRecord.projectInputs();
         project.ProjectID = 12345;
         project.ProjectName = 'TestProject';
         list<createCloudRecord.projectInputs> projects = new list<createCloudRecord.projectInputs>();
         projects.add(project);

        createCloudRecord.createSFRecords(projects);
    }
}