-
-
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 {
}