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
vishal chaudhary 16vishal chaudhary 16 

how to create test class for this code

global class UpdateSiteStatus {

  @InvocableMethod(label='Update Site ' description='return the status')
  
  
  
 public static list<Siteoutput> UpdateSendStatus(list<SiteInput> SiteIn){
             JSONParser parser;
            
             
             Http h = new Http();
     
             Map<id,Asset> AssetUpdateMap=new Map<id,Asset>();
             Map<id,Asset> AssetMap=new Map<id,Asset>();
             Map<id,Asset> AssetMapUpdate=new Map<id,Asset>();
            list<Log__c> ListLog=new list<Log__c>();
             list<User> currentuser=[Select Id,Name,Email from User where Id=:userinfo.getuserId()];
             List<Messaging.SingleEmailMessage> mails =  new List<Messaging.SingleEmailMessage>();
             string ssiteid,Stitetstatus;
            
             
                 ssiteid=SiteIn[0].Siteid;
                 Stitetstatus=SiteIn[0].SiteStatus;
             
           
               list<Siteoutput> Outputlist=new list<Siteoutput>();
    
               HttpRequest req = new HttpRequest();
               req.setMethod('POST');
               req.setHeader('Content-Length', '512'); 
               req.setEndpoint(Label.Multisite_Endpoint);
               req.setBody('Email='+Userinfo.getUserEmail()+'&Siteid='+ssiteid+'&key='+EncodingUtil.base64Encode(Blob.valueOf(Label.Multisite_key))+'&Status='+Stitetstatus);
               req.setHeader('Content-Type', 'application/x-www-form-urlencoded');  
               HttpResponse res;


            if(Test.isrunningTest()==false){
                   res = h.send(req);
                   parser = JSON.createParser(res.getBody());
                    System.debug('=======res ====='+res.getBody());
                    System.debug('=======EncodingUtil.base64Encode(Blob.valueOf(Label.Multisite_key))====='+EncodingUtil.base64Encode(Blob.valueOf(Label.Multisite_key)));
            }else{
                    
             parser = JSON.createParser('{"status":"ok","response":"Site Not Exist!"}');
            }
            try{
               while (parser.nextToken() != null) {
                          if (parser.getCurrentToken() == JSONToken.FIELD_NAME && parser.getText()=='response'){
                                parser.nextToken();
                                if(parser.getCurrentToken() == JSONToken.VALUE_STRING){
                                    if(parser.getText()<>'Site Enabled!' && parser.getText()<>'Site Disabled!'){
                           
                                      String body='';
                                          Siteoutput stp=new Siteoutput(); 
                                                 if(Stitetstatus=='Active')
                                                      body=body+'Site id '+ssiteid+' cannot be Enable as '+parser.getText();
                                                else
                                                      body=body+'Site id '+ssiteid+' cannot be Disable as '+parser.getText();
                                            stp.ResponseMessage=Body;
                                            stp.Response='Error';
                                            Outputlist.add(stp);
                                      
                                    
                  
                                    } else{
                                          String body='';
                                           Siteoutput stp=new Siteoutput(); 
                                              if(Stitetstatus=='Active')
                                                      body=body+'Site id '+ssiteid+' Successfully Enabled ';
                                                else
                                                      body=body+'Site id '+ssiteid+' Successfully Disabled ';
                                            stp.ResponseMessage=Body;
                                            stp.Response='Ok';
                                            Outputlist.add(stp);
                                    } 
                                }
                                
                           }
                }
                }catch(Exception e){
                 String body='';
                          Siteoutput stp=new Siteoutput(); 
                                 if(Stitetstatus=='Active')
                                                      body=body+'Site id '+ssiteid+' cannot be Enable ';
                                                else
                                                      body=body+'Site id '+ssiteid+' cannot be Disable ';
                                               
                               stp.ResponseMessage=Body;
                                            stp.Response='Error';
                                            Outputlist.add(stp);
                }
            
       
      return Outputlist; 
       
 } 
 global class SiteInput{
        @InvocableVariable(required=true)
         public String Siteid;
      
        @InvocableVariable(required=true)
         public String SiteStatus;
         
    
    }
    
     global class Siteoutput{
     
         
        @InvocableVariable()
         public String Response;
         
        @InvocableVariable()
         public String ResponseMessage;
    }

}
Best Answer chosen by vishal chaudhary 16
vishal chaudhary 16vishal chaudhary 16
@istest(SeeAllData = true)
public class Test_updatesitestatus {
  static public testmethod void DomainApiExt() {
    test.StartTest();
    UpdateSiteStatus obj = new UpdateSiteStatus();
    UpdateSiteStatus.SiteInput sitevar = new UpdateSiteStatus.SiteInput();
    sitevar.Siteid = 'site3';
    sitevar.SiteStatus = 'Active';
UpdateSiteStatus.UpdateSendStatus(new List<UpdateSiteStatus.SiteInput>{sitevar});
    test.StopTest();
  }
}