You need to sign in to do that
Don't have an account?
ashu 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;}
}
}
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;}
}
}
@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();
}
}