function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
SFDC Apex DevSFDC Apex Dev 

Here is the apex class... I m unable to write test class for this.. please help me to write the test class for this one....

public class SS_newclass {

    static oAuthResponse oAuthToken = new oAuthResponse();
    public static Integer LastStatusCode;
    public static String LastStatus;
    private static boolean overrideTest = false;
    
    private static void getToken() {
        if(oAuthToken == null || String.isBlank(oAuthToken.access_token)) {
            P_Int_Dl__c intDls = P_Int_Dl__c.getvalues('SS_oAuth'); 
            
            HttpRequest req = new HttpRequest();
            req.setHeader('Content-Type', 'application/x-www-form-urlencoded');
            req.setHeader('Authorization', 'Basic ' + EncodingUtil.base64Encode(Blob.valueOf(intDls.Username__c + ':' + 
                                                                                             intDls.Password__c)));
            req.setHeader('grant_type', 'client_credentials');
            req.setEndpoint(intDls.End_Point_URL__c); 
            req.setMethod(intDls.Http_Method__c);
            req.setTimeout(Integer.valueOf(intDls.Timeout__c));
            req.setBody('grant_type=client_credentials');

            if(!Test.isRunningTest() || overrideTest) {
                HttpResponse res = new Http().send(req);
                oAuthToken = (oAuthResponse)JSON.deserialize(res.getBody(), oAuthResponse.class);
            } else {
                oAuthToken.access_token = '123';
            }
        }
    }
    
    private class oAuthResponse {
        public String access_token;
        public String tokenType;
        public String issuedAt;
        public String expiresIn;
        public String clientID;
        public String org;
    }

    public static getIUResponse getIU(String RefId) {
        getIUResponse idpResponse = new getIUResponse();
        P_Int_Dl__c intDls = P_Int_Dl__c.getvalues('getIdpUser'); 
        
        getToken();
        HttpRequest req = new HttpRequest();
        req.setHeader('Content-Type', 'application/json');
        req.setHeader('Authorization', 'Bearer ' + oAuthToken.access_token);
        System.debug('----->endpoint: ' + intDls.End_Point_URL__c.replace('{userId}', RefId));
        req.setEndpoint(intDls.End_Point_URL__c.replace('{userId}', RefId)); 
        req.setMethod(intDls.Http_Method__c);
        req.setTimeout(Integer.valueOf(intDls.Timeout__c));
        if(!Test.isRunningTest()) {
            HttpResponse res =new Http().send(req);
            LastStatusCode = res.getStatusCode();
            LastStatus = res.getStatus();
            System.debug('---->StatusCode: ' + res.getStatusCode());
            System.debug('---->Status: ' + res.getStatus());
            System.debug('------------------>Body: ' + res.getBody());
            idpResponse = (getIUResponse)JSON.deserialize(res.getBody(), getIUResponse.class);
        } else {
            LastStatusCode = 200;
        }
        return idpResponse;
    } 
          
    public class getIUResponse{
        public getIUResponseuser user = new getIUResponseuser();
        public getIUResponseEntitlements entitlements = new getIUResponseEntitlements();
    }
    
    public class getIUResponseuser {
        public String username;
        public String firstname;
        public String lastName;
        public String displayName;
        public String email;
        public String idpAccountId;
        public String status;
        public Map<String, String> extendedUserAttributes = new Map<String, String>();
        public String id;
        public String title;
        public String locale;
    }

    public class getIUResponseEntitlements {
        public List<String> ptKeys = new List<String>();
        public List<String> youraccountRoles = new List<String>();
        public List<getIUResponseSubsMem> subscriptionMemberships = new List<getIUResponseSubsMem>();
    }
    
    public class getIUResponseSubsMem {
        public getIUResponseSubs subscription = new getIUResponseSubs();
        public getIUResponseMemData membershipData = new getIUResponseMemData();
    }

    public class getIUResponseSubs {
        public String subscriptionId;
        public String productId;
        public String ariaSubscriptionAccountNum;
        public String ariaScope;
        public String country;
        public String status;
        public getIUserResponseAp apimPlatform = new getIUserResponseAp();
        public Map<String, String> subscriptionParams = new Map<String, String>();
        public List<getIUResponsePln> plans = new List<getIUResponsePln>();
        public getIUResponsePmntIn paymentInfo = new getIUResponsePmntIn();
    }
    
    public class getIUserResponseAp {
        public String liveSubscriptionId;
        public String sandboxSubscriptionId;
    }
    
    public class getIUResponsePln {
        public String pbPlanId;
    }
    
    public class getIUResponsePmntIn {
        public String ptKey;
        public String shipToBpn;
    }
    
    public class getIUResponseMemData {
        public Map<String, String> membershipParams = new Map<String, String>();
        public String membershipStatus;
        public List<String> roles = new List<String>();
    }
    
    public static createIUResponse createIU(createIURequest IdpRequ) {
        createIUResponse idpResponse = new createIUResponse();
        P_Int_Dl__c intDls = P_Int_Dl__c.getvalues('createIU'); 
        
        getToken();
        createIURequest IdpReq = cleanObjectCreateIUResponse(idpRequ);
        HttpRequest req = new HttpRequest();
        req.setHeader('Content-Type', 'application/json');
        req.setHeader('Authorization', 'Bearer ' + oAuthToken.access_token);
        System.debug('----->endpoint: ' + intDls.End_Point_URL__c);
        req.setEndpoint(intDls.End_Point_URL__c); 
        req.setMethod(intDls.Http_Method__c);
        req.setTimeout(Integer.valueOf(intDls.Timeout__c));
        System.debug('------------------>Request Body: ' + JSON.serialize(IdpReq, true));
        req.setBody(JSON.serialize(IdpReq, true));
        if(!Test.isRunningTest()) {
            HttpResponse res =new Http().send(req);
            LastStatusCode = res.getStatusCode();
            LastStatus = res.getStatus();
            System.debug('---->StatusCode: ' + res.getStatusCode());
            System.debug('---->Status: ' + res.getStatus());
            System.debug('------------------>Response Body: ' + res.getBody());
            idpResponse = (createIUResponse)JSON.deserialize(res.getBody(), createIUResponse.class);
        } else {
            LastStatusCode = 201;
            idpResponse.userInformation.oId = 'ABCD';
        }
        return idpResponse;
    } 
}
Raj VakatiRaj Vakati
Create A Mock Class and Set the response BODY 
 
@isTest
global class MockHttpResponseGenerator implements HttpCalloutMock {
// Implement this interface method
global HTTPResponse respond(HTTPRequest req) {
    // Create a fake response (first mock is access_token, second mock is client id)
    HttpResponse res = new HttpResponse();
    res.setHeader('Content-Type', 'application/json');

        res.setBody('{"access_token":"somevalidAccessToken"}');
    
    res.setStatusCode(200);

    return res;
}
}

Test class
 
@isTest
public class SS_newclassTest {
static void testAccessTokenCallout() {
    // Set mock callout class 
    Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());

    

    Test.startTest();
P_Int_Dl__c  pl = new P_Int_Dl__c () ;
pl.Name='SS_oAuth';
pl.Username__c ='Test Data';
    pl.Password__c='Test Data';
	pl.End_Point_URL__c='YOUR_ENDPOINt';
	pl.Http_Method__c='POST';
	pl.Timeout__c=10000 ;


insert pl ;

P_Int_Dl__c  pl1 = new P_Int_Dl__c () ;
pl1.Name='getIdpUser';
pl1.Username__c ='Test Data';
    pl1.Password__c='Test Data';
	pl1.End_Point_URL__c='YOUR_ENDPOINt';
	pl1.Http_Method__c='POST';
	pl1.Timeout__c=10000 ;


insert pl1 ;


P_Int_Dl__c  pl12 = new P_Int_Dl__c () ;
pl12.Name='createIU';
pl12.Username__c ='Test Data';
    pl12.Password__c='Test Data';
	pl12.End_Point_URL__c='YOUR_ENDPOINt';
	pl12.Http_Method__c='POST';
	pl12.Timeout__c=10000 ;


insert pl12 ;
SS_newclass.getToken() ;	

SS_newclass.getIU('YOUR REF TOKEN') ;	
createIURequest  req = new createIURequest ();
// set all the values to req
SS_newclass.createIU(req);
    Test.stopTest();
}
}

​​​​​​​
SFDC Apex DevSFDC Apex Dev
getting error on line 43 and line 46