104 lines
2.9 KiB
OpenEdge ABL
104 lines
2.9 KiB
OpenEdge ABL
@IsTest
|
|
public with sharing class SharePointAuthTest {
|
|
|
|
|
|
public class MicrosoftAuthMock implements HttpCalloutMock {
|
|
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
|
|
System.debug('Mock Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Body >>> ' + req.getBody());
|
|
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type', 'application/json');
|
|
|
|
if(req.getEndpoint().contains('token')){
|
|
// Token API response
|
|
res.setStatusCode(200);
|
|
res.setBody('{"access_token":"testAccessToken","refresh_token":"testRefreshToken"}');
|
|
}
|
|
else{
|
|
// fetchUserInfo API response
|
|
res.setStatusCode(200);
|
|
res.setBody('{"userPrincipalName":"testuser@test.com"}');
|
|
}
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
@isTest
|
|
static void testGetAccessToken() {
|
|
|
|
// Register mock
|
|
Test.setMock(HttpCalloutMock.class, new MicrosoftAuthMock());
|
|
|
|
String code = 'testCode123';
|
|
String storage = 'SharePoint';
|
|
Boolean isAdminCred = true;
|
|
String userId = UserInfo.getUserId();
|
|
|
|
System.debug('Input Code >>> ' + code);
|
|
System.debug('Input Storage >>> ' + storage);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointAuth auth = new SharePointAuth();
|
|
auth.getAccessToken(code, storage, isAdminCred, userId);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('getAccessToken executed successfully');
|
|
|
|
System.assert(true, 'Method executed without exception');
|
|
}
|
|
|
|
|
|
public class RefreshTokenMock implements HttpCalloutMock {
|
|
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
|
|
System.debug('Mock Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Body >>> ' + req.getBody());
|
|
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type','application/json');
|
|
|
|
if(req.getBody().contains('refresh_token')){
|
|
res.setStatusCode(200);
|
|
res.setBody('{"access_token":"newAccessToken123"}');
|
|
}else{
|
|
res.setStatusCode(400);
|
|
res.setBody('{"error":"invalid_request"}');
|
|
}
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
@isTest
|
|
static void testRefreshAccessToken_Success() {
|
|
|
|
Test.setMock(HttpCalloutMock.class, new RefreshTokenMock());
|
|
|
|
String refreshToken = 'testRefreshToken';
|
|
|
|
System.debug('Refresh Token Input >>> ' + refreshToken);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointAuth auth = new SharePointAuth();
|
|
String token = auth.refreshAccessToken(refreshToken);
|
|
SharePointAuth.revokeAccessToken(refreshToken);
|
|
|
|
Test.stopTest();
|
|
System.debug('Returned Token >>> ' + token);
|
|
|
|
System.assertEquals('newAccessToken123', token);
|
|
}
|
|
|
|
|
|
|
|
} |