Backup_FME_personal/force-app/main/default/classes/SharePointAuthTest.cls

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);
}
}