-
-
Save mannharleen/5e58d0c2f3d841cf0d51ddd01d2acc11 to your computer and use it in GitHub Desktop.
@RestResource(urlMapping='/Accounts/*/contacts') | |
global with sharing class AccountManager { | |
@HttpGet | |
global static account getAccount() { | |
RestRequest request = RestContext.request; | |
String accountId = request.requestURI.substring(request.requestURI.lastIndexOf('/')-18, | |
request.requestURI.lastIndexOf('/')); | |
List<Account> a = [select id, name, (select id, name from contacts) from account where id = :accountId]; | |
List<contact> co = [select id, name from contact where account.id = :accountId]; | |
system.debug('** a[0]= '+ a[0]); | |
return a[0]; | |
} | |
} |
@Istest(SeeAllData=true) | |
public class AccountManagerTest { | |
@IsTest | |
public static void testaccountmanager() { | |
RestRequest request = new RestRequest(); | |
request.requestUri = 'https://mannharleen-dev-ed.my.salesforce.com/services/apexrest/Accounts/00190000016cw4tAAA/contacts'; | |
request.httpMethod = 'GET'; | |
RestContext.request = request; | |
system.debug('test account result = '+ AccountManager.getAccount()); | |
} | |
} |
In getAccount, Lei Shi (https://developer.salesforce.com/forums/?id=906F0000000MIs9IAG) suggests
String accountId = req.requestURI.substringBetween('Accounts/', '/contacts');
@istest
public class AccountManagerTest {
@istest static void testGetContactsByAccountId() {
Id recordId = createTestRecord();
// Set up a test request
RestRequest request = new RestRequest();
request.requestUri =
'https://yourInstance.salesforce.com/services/apexrest/Accounts/'+ recordId+'/Contacts';
request.httpMethod = 'GET';
RestContext.request = request;
// Call the method to test
Account thisAccount = AccountManager.getAccount();
// Verify results
System.assert(thisAccount!= null);
System.assertEquals('Test record', thisAccount.Name);
}
// Helper method
static Id createTestRecord() {
// Create test record
Account accountTest = new Account(
Name='Test record');
insert accountTest;
Contact contactTest = new Contact(
FirstName='John',
LastName='Doe',
AccountId=accountTest.Id
);
return accountTest.Id;
}
}
@RestResource(urlMapping='/Accounts/*/contacts')
global with sharing class AccountManager {
@httpget
global static Account getAccount(){
RestRequest request=RestContext.request;
String accountId=request.requestURI.substringBetween('Account/','/contacts');
Account result=[Select Id, Name, (Select Id, Name from Contacts) from Account where Id=:accountId];
return result;
}
}
Thanks
@istest
public class AccountManagerTest {
}