You need to sign in to do that
Don't have an account?
brijender singh rathore 16
CAN SOMEBODY PLZ CORRECT MY TEST CLASS FOR THIS TRIGGER.(IT IS RUNNING FINE BUT SHOWING NO CODE COVERAGE))
Product AND Inventory_Change__c HAVE LOOKUP RELATIONSHIP.PRODUCT IS THE PARENT OF Inventory_Change__c .TRIGGER IS UPDATEING In_Stock__c FIELD ON THE BASIS OF RECORD TYPE CHANGE.
____________________________________________________________________________________________________________________
_____________________________________TRIGGER_______________________________________________________________________
trigger InventoryChangeTrigger on Inventory_Change__c (after update) {
if(Trigger.isAfter && Trigger.isUpdate) {
for (Inventory_Change__c oIC : Trigger.new){
Product2 oP = [SELECT Id, In_Stock__c FROM Product2 WHERE Id = :oIC.Product__c];
Id Rid = Schema.SObjectType.Inventory_Change__c.getRecordTypeInfosByName().get('Reduction').getRecordTypeId();
Id Aid = Schema.SObjectType.Inventory_Change__c.getRecordTypeInfosByName().get('Addition').getRecordTypeId();
if(trigger.oldmap.get(oIC.id).RecordTypeid != trigger.newmap.get(oIC.id).RecordTypeid){
if(oIC.RecordTypeid == Rid ){
oP.In_Stock__c = oP.In_Stock__c - oIC.Quantity__c;
}
if(oIC.RecordTypeid == Aid ){
oP.In_Stock__c = oP.In_Stock__c + oIC.Quantity__c;
}
}
update oP;
}
}
}
PRODUCT IS A STANDARD OBJECT AND Inventory_Change__c IS A CUSTOM OBJECT WITH ONLY ONE FIELD REQUIRED THAT IS "RECORD TYPE"
__________________________________________________________________________________________________________________________
TEST CLASS
____________________________________________________________________________________________________________________________
@isTest
public class InventoryChangeTrigger_Test{
static testMethod void test_Inventory_ChangeTrigger(){
test.startTest();
product2 product2_Obj = new product2(Name = 'Name735', IsActive = true, In_Stock__c = 19, Out_of_Stock__c = false);
insert product2_Obj;
Inventory_Change__c inventory_change_Obj = new Inventory_Change__c(RecordTypeId = '01236000000STHgAAO',Quantity__c = 16,product__c = product2_Obj.id );
Insert inventory_change_Obj;
product2 product2_Obj1 = [select id,Name,In_Stock__c from product2 where Name = 'Name735' LIMIT 1];
product2_Obj1.name= 'xyz';
product2_Obj1.In_Stock__c = 3;
update product2_Obj1;
test.stopTest();
}
}
____________________________________________________________________________________________________________________
_____________________________________TRIGGER_______________________________________________________________________
trigger InventoryChangeTrigger on Inventory_Change__c (after update) {
if(Trigger.isAfter && Trigger.isUpdate) {
for (Inventory_Change__c oIC : Trigger.new){
Product2 oP = [SELECT Id, In_Stock__c FROM Product2 WHERE Id = :oIC.Product__c];
Id Rid = Schema.SObjectType.Inventory_Change__c.getRecordTypeInfosByName().get('Reduction').getRecordTypeId();
Id Aid = Schema.SObjectType.Inventory_Change__c.getRecordTypeInfosByName().get('Addition').getRecordTypeId();
if(trigger.oldmap.get(oIC.id).RecordTypeid != trigger.newmap.get(oIC.id).RecordTypeid){
if(oIC.RecordTypeid == Rid ){
oP.In_Stock__c = oP.In_Stock__c - oIC.Quantity__c;
}
if(oIC.RecordTypeid == Aid ){
oP.In_Stock__c = oP.In_Stock__c + oIC.Quantity__c;
}
}
update oP;
}
}
}
PRODUCT IS A STANDARD OBJECT AND Inventory_Change__c IS A CUSTOM OBJECT WITH ONLY ONE FIELD REQUIRED THAT IS "RECORD TYPE"
__________________________________________________________________________________________________________________________
TEST CLASS
____________________________________________________________________________________________________________________________
@isTest
public class InventoryChangeTrigger_Test{
static testMethod void test_Inventory_ChangeTrigger(){
test.startTest();
product2 product2_Obj = new product2(Name = 'Name735', IsActive = true, In_Stock__c = 19, Out_of_Stock__c = false);
insert product2_Obj;
Inventory_Change__c inventory_change_Obj = new Inventory_Change__c(RecordTypeId = '01236000000STHgAAO',Quantity__c = 16,product__c = product2_Obj.id );
Insert inventory_change_Obj;
product2 product2_Obj1 = [select id,Name,In_Stock__c from product2 where Name = 'Name735' LIMIT 1];
product2_Obj1.name= 'xyz';
product2_Obj1.In_Stock__c = 3;
update product2_Obj1;
test.stopTest();
}
}
thanks, let us know if it helps you
Here is the updated code:
Thanks
Gulshan Raj
@isTest
public class InventoryChangeTrigger_Test{
static testMethod void test_Inventory_ChangeTrigger(){
test.startTest();
product2 product2_Obj = new product2(Name = 'Name735', IsActive = true, In_Stock__c = 19, Out_of_Stock__c = false);
insert product2_Obj;
Inventory_Change__c inventory_change_Obj = new Inventory_Change__c(RecordTypeId = '01236000000STHgAAO',Quantity__c = 16,product__c = product2_Obj.id );
Insert inventory_change_Obj;
product2 product2_Obj1 = [select id,Name,In_Stock__c from product2 where Name = 'Name735' LIMIT 1];
product2_Obj1.name= 'xyz';
product2_Obj1.In_Stock__c = 3;
update product2_Obj1;
String strRecordTypeId = [Select Id From RecordType Where SobjectType = 'Inventory_Change__c' and Name = 'Reduction'].Id;
inventory_change_Obj.RecordTypeId = strRecordTypeId;
inventory_change_Obj.Quantity__c = 15;
update inventory_change_Obj;
test.stopTest();
}
}