You need to sign in to do that
Don't have an account?
Soundar
How Can Cover a Test Class For Trigger
Hi Friends,
I am new to the development, can you please explain how can i cover a test class for trigger as well.
-----------------------Code ----------------------
trigger OI_AgentLogin_FIFOInit on Agent_Availability_Log__c(after Insert, after Update){
// Active Complaint
Boolean m_CNsetup = false;
// Get current profile custom setting.
Trigger_Controller__c m_CNprofile = Trigger_Controller__c.getvalues(UserInfo.getProfileId());
// Get current Organization custom setting.
Trigger_Controller__c m_CNOrg = Trigger_Controller__c.getvalues(UserInfo.getOrganizationId());
// Get current User custom setting.
Trigger_Controller__c m_CNuser = Trigger_Controller__c.getValues(UserInfo.getUserId());
if(m_CNuser != null) {
m_CNsetup = m_CNuser.OI_AgentLogin_FIFOInit__c;
}
else if(m_CNprofile != null) {
m_CNsetup = m_CNprofile.OI_AgentLogin_FIFOInit__c;
}
else if(m_CNOrg != null) {
m_CNsetup = m_CNOrg.OI_AgentLogin_FIFOInit__c;
}
if(!m_CNsetup){
return;
}
set<string> st_MgrID = new set<string>(); // Set of Group Manager Id
set<string> st_RTId = new set<string>(); // Set of Record Type Id
map<string, list<case>> mp_CasLs2CasOrg = new map<string, list<case>>(); // Mapping List of Case to Case Origin
Set<string> st_CasOrg = new Set<string>(); // Set of Case Origin
for(Agent_Availability_Log__c irow : trigger.new){
If(trigger.isInsert && irow.Date__c == System.Today() && irow.IsAvailable__c && irow.Group_Member__r.FIFO_Case_Count__c == 0){
st_MgrID.add(irow.Assignment_Group__r.Manager__r.id);
}
if(trigger.isUpdate && irow.Date__c == System.Today() && irow.IsAvailable__c && irow.Group_Member__r.FIFO_Case_Count__c == 0){
st_MgrID.add(irow.Assignment_Group__r.Manager__r.id);
}
}
if(st_MgrID.size()>0){
for(Schema.RecordTypeInfo irow : Schema.SObjectType.Case.getRecordTypeInfosByName().values()){
if(irow.getName() == 'Parent' || irow.getName() == 'Child'){
st_RTId.add(string.valueof(irow.getRecordTypeId()));
}
}
system.debug(' st_RTId ' + st_RTId);
for(case irow : [Select Id, CaseNumber, Email__c, Origin, OwnerId, OwnerId__c, CreatedDate FROM Case WHERE OwnerId IN: st_MgrID AND IsFIFOAssigned_Agent__c = FALSE AND IsFIFOAssigned_Mgr__c = TRUE AND RecordTypeId IN: st_RTId]){
AssignGroupName_ModeofAssignment__c Asg = AssignGroupName_ModeofAssignment__c.getvalues(irow.Origin);
if(Asg.Mode_of_Assignment__c == 'FIFO' && !irow.IsFIFOAssigned_Agent__c && irow.IsFIFOAssigned_Mgr__c){
if(mp_CasLs2CasOrg.containsKey(irow.Origin)){
list<case> Tmp = mp_CasLs2CasOrg.get(irow.Origin);
Tmp.add(irow);
mp_CasLs2CasOrg.put(irow.Origin, Tmp);
}else{
list<case> Tmp = new list<case>();
Tmp.add(irow);
mp_CasLs2CasOrg.put(irow.Origin, Tmp);
}
st_CasOrg.add(irow.Origin);
}
}
System.debug('st_CasOrg ## i'+st_CasOrg);
system.debug(' mp_CasLs2CasOrg ### ' + mp_CasLs2CasOrg);
}
if(St_CasOrg.size() > 0){
// FIFO
OI_FIFOAssignment fifo = new OI_FIFOAssignment(St_CasOrg, mp_CasLs2CasOrg);fifo.Assign();
}
}
--------------------------------------------------------------
*Could You Please Cover above trigger
*Please Explain
Thanks In Advance
Regards,
Soundar Raj.
I am new to the development, can you please explain how can i cover a test class for trigger as well.
-----------------------Code ----------------------
trigger OI_AgentLogin_FIFOInit on Agent_Availability_Log__c(after Insert, after Update){
// Active Complaint
Boolean m_CNsetup = false;
// Get current profile custom setting.
Trigger_Controller__c m_CNprofile = Trigger_Controller__c.getvalues(UserInfo.getProfileId());
// Get current Organization custom setting.
Trigger_Controller__c m_CNOrg = Trigger_Controller__c.getvalues(UserInfo.getOrganizationId());
// Get current User custom setting.
Trigger_Controller__c m_CNuser = Trigger_Controller__c.getValues(UserInfo.getUserId());
if(m_CNuser != null) {
m_CNsetup = m_CNuser.OI_AgentLogin_FIFOInit__c;
}
else if(m_CNprofile != null) {
m_CNsetup = m_CNprofile.OI_AgentLogin_FIFOInit__c;
}
else if(m_CNOrg != null) {
m_CNsetup = m_CNOrg.OI_AgentLogin_FIFOInit__c;
}
if(!m_CNsetup){
return;
}
set<string> st_MgrID = new set<string>(); // Set of Group Manager Id
set<string> st_RTId = new set<string>(); // Set of Record Type Id
map<string, list<case>> mp_CasLs2CasOrg = new map<string, list<case>>(); // Mapping List of Case to Case Origin
Set<string> st_CasOrg = new Set<string>(); // Set of Case Origin
for(Agent_Availability_Log__c irow : trigger.new){
If(trigger.isInsert && irow.Date__c == System.Today() && irow.IsAvailable__c && irow.Group_Member__r.FIFO_Case_Count__c == 0){
st_MgrID.add(irow.Assignment_Group__r.Manager__r.id);
}
if(trigger.isUpdate && irow.Date__c == System.Today() && irow.IsAvailable__c && irow.Group_Member__r.FIFO_Case_Count__c == 0){
st_MgrID.add(irow.Assignment_Group__r.Manager__r.id);
}
}
if(st_MgrID.size()>0){
for(Schema.RecordTypeInfo irow : Schema.SObjectType.Case.getRecordTypeInfosByName().values()){
if(irow.getName() == 'Parent' || irow.getName() == 'Child'){
st_RTId.add(string.valueof(irow.getRecordTypeId()));
}
}
system.debug(' st_RTId ' + st_RTId);
for(case irow : [Select Id, CaseNumber, Email__c, Origin, OwnerId, OwnerId__c, CreatedDate FROM Case WHERE OwnerId IN: st_MgrID AND IsFIFOAssigned_Agent__c = FALSE AND IsFIFOAssigned_Mgr__c = TRUE AND RecordTypeId IN: st_RTId]){
AssignGroupName_ModeofAssignment__c Asg = AssignGroupName_ModeofAssignment__c.getvalues(irow.Origin);
if(Asg.Mode_of_Assignment__c == 'FIFO' && !irow.IsFIFOAssigned_Agent__c && irow.IsFIFOAssigned_Mgr__c){
if(mp_CasLs2CasOrg.containsKey(irow.Origin)){
list<case> Tmp = mp_CasLs2CasOrg.get(irow.Origin);
Tmp.add(irow);
mp_CasLs2CasOrg.put(irow.Origin, Tmp);
}else{
list<case> Tmp = new list<case>();
Tmp.add(irow);
mp_CasLs2CasOrg.put(irow.Origin, Tmp);
}
st_CasOrg.add(irow.Origin);
}
}
System.debug('st_CasOrg ## i'+st_CasOrg);
system.debug(' mp_CasLs2CasOrg ### ' + mp_CasLs2CasOrg);
}
if(St_CasOrg.size() > 0){
// FIFO
OI_FIFOAssignment fifo = new OI_FIFOAssignment(St_CasOrg, mp_CasLs2CasOrg);fifo.Assign();
}
}
--------------------------------------------------------------
*Could You Please Cover above trigger
*Please Explain
Thanks In Advance
Regards,
Soundar Raj.
Try inserting record for your custom settings Trigger_Controller__c , AssignGroupName_ModeofAssignment__c.
Insert appropriate Agent_Availability_Log__c, Group_Member__c, Manager__c, Assignment_Group__c records and associate.
Update some Agent_Availability_Log__c records as your coode checks for Update Cases as well.
Insert Case records.
Let me know if helped.
Regards,
Ramakant
I am new to development so only i asked to cover a test class, i will try my level best as per your comments(Thanks for your quick response...)
Regards,
Soundar Raj
i have create a test class as per your comments , Now it's showing below error. Please advice me why this error ??
Error Message : System.TypeException: Invalid id value for this SObject type: a02P00000047567IAA
Stack Trace : Class.OI_AgentLogin_FIFOInitTest.agentLoginTestMethod: line 60, column 1
/*-----------------------------------------------------
Created Date : 12/05/2017.
Refered Trigger : OI_AgentLogin_FIFOInit.
------------------------------------------------------ */
@isTest(SeeAllData = True)
public class OI_AgentLogin_FIFOInitTest{
public static testMethod void agentLoginTestMethod(){
/* Active Complaint */
Boolean m_CNsetup = false;
/* Get current profile custom setting. */
Trigger_Controller__c m_CNprofile = Trigger_Controller__c.getvalues('00e15000001GFT6');
/* Get current Organization custom setting.
Trigger_Controller__c m_CNOrg = Trigger_Controller__c.getvalues('');*/
/* Get current User custom setting. */
Trigger_Controller__c m_CNuser = Trigger_Controller__c.getValues('00515000006YW7Y');
User ownrId = [Select id,name From User Where Name = 'Gangajamuna Gudla'];
system.debug('owner Id:' + ownrId);
/* Case Duplicate value's Passed */
Case cs = New Case();
//cs.Status= 'open';
//cs.Id = ownrId.id;
cs.Origin= 'Phone';
cs.Email__c = 'sourajking@gmail.com';
cs.Origin= 'Phone';
cs.OwnerId__c= ownrId.id;
insert cs;
/* Assignment groupName */
AssignGroupName_ModeofAssignment__c asg = New AssignGroupName_ModeofAssignment__c();
asg.name = 'Test Name';
asg.Mode_of_Assignment__c = 'Text Mode';
insert asg;
/* Agent Availability Log Insert*/
Agent_Availability_Log__c avl = New Agent_Availability_Log__c();
avl.Date__c = date.parse('05/12/2017');
avl.IsAvailable__c = true;
//avl.Group_Member__r.FIFO_Case_Count__c = 0;
insert avl;
/* Agent Availability Log update*/
Agent_Availability_Log__c avl1 = New Agent_Availability_Log__c();
avl1.Date__c = date.parse('05/12/2017');
avl1.IsAvailable__c = true;
//avl1.Group_Member__r.FIFO_Case_Count__c = 0;
insert avl1;
/* Manager */
Assignment_Group__c asgId =[Select id,name,manager__c from Assignment_Group__c LIMIT 1];
User mngr = new User();
mngr.id = asgId.id; // Error Showing In This Line
insert mngr;
/* Group Member */
Group_Member__c gm = new Group_Member__c();
//gm.Name= mngr.id;
gm.FIFO_Case_Count__c = 0;
gm.FIFO_Case_Count__c = 0;
gm.Assignment_Group__c = mngr.id;
insert gm;
/* Assignment Group */
Assignment_Group__c asgp = new Assignment_Group__c();
asgp.Name = 'test Name';
asgp.Manager__c = asgId .id;
insert asgp;
}
}
Thanks a lot...
Regards,
Soundar Raj.