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
ashu 6112ashu 6112 

Please help me to write a test class for it . Thanks in advance

public class UpdateMassSessionattendanceCls {

    public list<fieldWrapper>lstfieldWrapper{get;set;}
    public list<string>lsttableHeader{get;set;}
    public list<Session_Attendance__c>lstSession_Attendance{get;set;}
    public  string sessionId{get;set;}
    public UpdateMassSessionattendanceCls(ApexPages.StandardController controller) 
    {
        Session__c objSession = (Session__c)controller.getRecord();
         string sessionId =objSession.id;

        //string sessionId= 'a0o1D0000007TdA';
        lstfieldWrapper = new list<fieldWrapper>();
        
        string FieldSetName= label.SessionAttendanceMassUpdate;
        set<string>setFieldName= new set<string>();
        setFieldName.add('id');
         Map<String, Schema.FieldSet> FsMap =   Schema.SObjectType.Session_Attendance__c.fieldSets.getMap();
        
        Schema.SObjectType targetType = Schema.getGlobalDescribe().get('Session_Attendance__c');
        Sobject Object_name = targetType.newSObject();
        Schema.sObjectType sobject_type = Object_name.getSObjectType();
        Schema.DescribeSObjectResult sobject_describe = sobject_type.getDescribe();
        Map<String, Schema.SObjectField> field_map = sobject_describe.fields.getMap();
       
        if(FsMap.containskey(FieldSetName))
        {
              Schema.FieldSet fs1 = FsMap.get(FieldSetName);
              for(Schema.FieldSetMember f : fs1.getFields())
              {
                    fieldWrapper objfieldWrapper = new fieldWrapper();
                    objfieldWrapper.APIName = f.fieldPath;
                    objfieldWrapper.Label = f.label;
                    Schema.DescribeFieldResult dsr = field_map.get(objfieldWrapper.APIName).getDescribe();
                    objfieldWrapper.isEditable = dsr.isUpdateable();
                    objfieldWrapper.fieldType = String.valueOf(f.getType());
                    setFieldName.add(objfieldWrapper.APIName);
                    if(objfieldWrapper.fieldType == 'REFERENCE' )
                    {
                        string fieldAPINameReference = objfieldWrapper.APIName.replace('__c','__r.name');
                        setFieldName.add(fieldAPINameReference);
                        objfieldWrapper.fieldReferenceName= fieldAPINameReference;
                    }
                    lstfieldWrapper.add(objfieldWrapper);
              }
              system.debug('lstfieldWrapper--'+lstfieldWrapper);
              lstSession_Attendance = new list<Session_Attendance__c>();
              list<string>lstallField= new list<string>();
              lstallField.addALL(setFieldName);
              string query= 'select '+String.join(lstallField, ',') + ' from Session_Attendance__c where Session__c = \''+sessionId+'\'';
              lstSession_Attendance= Database.query(query);
              system.debug('Query --'+query);
              
        }
        
        
        
        
        
    }

public pagereference saveData()
{
    try
    {
    update lstSession_Attendance;
     apexpages.Message msg = 
      new Apexpages.Message(ApexPages.Severity.Info,'Record(s) Update successfully');
    apexpages.addmessage(msg);
    }
    catch(Exception e)
    {
         apexpages.Message msg = 
      new Apexpages.Message(ApexPages.Severity.Error,e.getmessage());
    apexpages.addmessage(msg);
    }
    return null;
}


public class fieldWrapper
{
    public string APIName{get;set;}
    public boolean isEditable{get;set;}
    public string Label{get;set;}
    public string fieldType{get;set;}
    public string fieldReferenceName{get;set;}
    
}

}
ashu 6112ashu 6112
Got a solution somewhere..


@isTest
public class UpdateMassSessionattendanceClsTest {
    static testMethod void afterUpdateTest() {
         Group__c grp = new Group__c();
        grp.Name = 'Test Grp';
        grp.Start_Date__c = Date.newInstance(2016, 12, 9);
        insert grp;
        
        Session__c ss = new Session__c();
        ss.Name = 'Test Session';
        ss.Start_Date__c = Date.newInstance(2016, 12, 1);
        grp.End_Date__c = Date.newInstance(2016, 12, 30);
        ss.Group__c = grp.Id;
        insert ss;
        
        
     ApexPages.StandardController sc = new ApexPages.StandardController(ss);
      UpdateMassSessionattendanceCls umsa = new UpdateMassSessionattendanceCls(sc);
        
        
        PageReference pageRef = Page.MassUpdateSessionattendance;
        pageRef.getParameters().put('id', String.valueOf(ss.Id));
        Test.setCurrentPage(pageRef);
    
        
        umsa.saveData();
    }
}