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