You need to sign in to do that
Don't have an account?
vivek singh08481200707119766
Please help me in test class this is trigger And test class but code coverage is 0 please how to increase code coverage
This is trigger
_______________________________
trigger chekDocSign on dsfs__DocuSign_Recipient_Status__c (After insert, After update) {
for(dsfs__DocuSign_Recipient_Status__c ob :trigger.new){
if(ob.dsfs__Date_Signed__c != null){
dsfs__DocuSign_Recipient_Status__c objDRS = [select dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id from dsfs__DocuSign_Recipient_Status__c where id =: ob.Id limit 1];
Opportunity objOpp = [select id, StageName from Opportunity where id =: objDRS.dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id limit 1];
objOpp.StageName = 'Closed Won - Signed';
update objOpp;
}else{
if(ob.dsfs__Date_Declined__c != null){
dsfs__DocuSign_Recipient_Status__c objDRS = [select dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id from dsfs__DocuSign_Recipient_Status__c where id =: ob.Id limit 1];
Opportunity objOpp = [select id, StageName from Opportunity where id =: objDRS.dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id limit 1];
objOpp.StageName = 'Closed Lost (Cancelled)';
update objOpp;
}
}
}
}
________________________________________
Test class
@isTest
public class chekDocSignTracker
{
Static testmethod void insertRecordwithDateSigned()
{
Account objAccount = new Account();
objAccount.Name = 'Vivek';
objAccount.Type = 'Supplier';
objAccount.Phone = '1234';
objAccount.CurrencyIsoCode = 'AUD';
insert objAccount;
Contact objcontact = new contact();
objcontact.LastName = 'Singh';
objcontact.CurrencyIsoCode = 'AUD';
objcontact.Account = objAccount ;
insert objContact ;
opportunity objopportunity= new opportunity ();
objopportunity.Name = 'Hindi2014';
objopportunity.CloseDate = System.Today();
objopportunity.Account = objAccount;
objopportunity.Buyer__c = objcontact.id;
objopportunity.Vendor__c = objaccount.id;
objopportunity.StageName = 'Prposal Sent';
objopportunity.Billing_Terms__c = 'On Completion';
objopportunity.Type = 'New Business';
insert Objopportunity;
dsfs__DocuSign_Status__c objdocusign= new dsfs__DocuSign_Status__c();
objdocusign.dsfs__DocuSign_Envelope_ID__c = '1234';
objdocusign.dsfs__Opportunity__c=objopportunity.id;
insert objdocusign;
dsfs__DocuSign_Recipient_Status__c objdocuRsign = new dsfs__DocuSign_Recipient_Status__c();
objdocuRsign.dsfs__Parent_Status_Record__c = objdocusign.ID;
objdocuRsign.dsfs__DocuSign_Recipient_Id__c = '1234';
objdocuRsign.Name = 'Test';
objdocuRsign.dsfs__Date_Signed__c = System.Today();
insert objdocuRsign ;
}
}
_______________________________
trigger chekDocSign on dsfs__DocuSign_Recipient_Status__c (After insert, After update) {
for(dsfs__DocuSign_Recipient_Status__c ob :trigger.new){
if(ob.dsfs__Date_Signed__c != null){
dsfs__DocuSign_Recipient_Status__c objDRS = [select dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id from dsfs__DocuSign_Recipient_Status__c where id =: ob.Id limit 1];
Opportunity objOpp = [select id, StageName from Opportunity where id =: objDRS.dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id limit 1];
objOpp.StageName = 'Closed Won - Signed';
update objOpp;
}else{
if(ob.dsfs__Date_Declined__c != null){
dsfs__DocuSign_Recipient_Status__c objDRS = [select dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id from dsfs__DocuSign_Recipient_Status__c where id =: ob.Id limit 1];
Opportunity objOpp = [select id, StageName from Opportunity where id =: objDRS.dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id limit 1];
objOpp.StageName = 'Closed Lost (Cancelled)';
update objOpp;
}
}
}
}
________________________________________
Test class
@isTest
public class chekDocSignTracker
{
Static testmethod void insertRecordwithDateSigned()
{
Account objAccount = new Account();
objAccount.Name = 'Vivek';
objAccount.Type = 'Supplier';
objAccount.Phone = '1234';
objAccount.CurrencyIsoCode = 'AUD';
insert objAccount;
Contact objcontact = new contact();
objcontact.LastName = 'Singh';
objcontact.CurrencyIsoCode = 'AUD';
objcontact.Account = objAccount ;
insert objContact ;
opportunity objopportunity= new opportunity ();
objopportunity.Name = 'Hindi2014';
objopportunity.CloseDate = System.Today();
objopportunity.Account = objAccount;
objopportunity.Buyer__c = objcontact.id;
objopportunity.Vendor__c = objaccount.id;
objopportunity.StageName = 'Prposal Sent';
objopportunity.Billing_Terms__c = 'On Completion';
objopportunity.Type = 'New Business';
insert Objopportunity;
dsfs__DocuSign_Status__c objdocusign= new dsfs__DocuSign_Status__c();
objdocusign.dsfs__DocuSign_Envelope_ID__c = '1234';
objdocusign.dsfs__Opportunity__c=objopportunity.id;
insert objdocusign;
dsfs__DocuSign_Recipient_Status__c objdocuRsign = new dsfs__DocuSign_Recipient_Status__c();
objdocuRsign.dsfs__Parent_Status_Record__c = objdocusign.ID;
objdocuRsign.dsfs__DocuSign_Recipient_Id__c = '1234';
objdocuRsign.Name = 'Test';
objdocuRsign.dsfs__Date_Signed__c = System.Today();
insert objdocuRsign ;
}
}
All Answers
when you run the test are you getting any errors?
also one thing I've noticed is that your not performing and update on the docusign_recipient_status nor do you have an system.assetequals in there to verfiy that you're getting what you need from it.
if you go to the dev console then just run this test - check to see if it shows any errors like required field missing or something like that. post based that result and i'll see if i can help you.
one thing i've noticed is that your not testing the else statement so you could do that as a part of the update to set the declined date.
Error massage -----Error: Compile Error: Invalid field dsfs__Date_Declined__c for SObject dsfs__DocuSign_Status__c at line 32 column 11.this code we put
__________________________________________
@isTest
public class chekDocSignTracker
{
Static testmethod void insertRecordwithDateDeclined() {
Account objAccount = new Account();
objAccount.Name = 'Vivek';
objAccount.Type = 'Supplier';
objAccount.Phone = '1234';
objAccount.CurrencyIsoCode = 'AUD';
insert objAccount;
Contact objcontact = new contact();
objcontact.LastName = 'Singh';
objcontact.CurrencyIsoCode = 'AUD';
objcontact.Account = objAccount ;
insert objContact ;
opportunity objopportunity= new opportunity ();
objopportunity.Name = 'Hindi2014';
objopportunity.CloseDate = System.Today();
objopportunity.Account = objAccount;
objopportunity.Buyer__c = objcontact.id;
objopportunity.Vendor__c = objaccount.id;
objopportunity.StageName = 'Prposal Sent';
objopportunity.Billing_Terms__c = 'On Completion';
objopportunity.Type = 'New Business';
insert Objopportunity;
dsfs__DocuSign_Status__c objdocusign= new dsfs__DocuSign_Status__c();
objdocusign.dsfs__DocuSign_Envelope_ID__c = '1234';
objdocusign.dsfs__Opportunity__c=objopportunity.id;
objdocusign.dsfs__Date_Declined__c=System.today();
insert objdocusign;
dsfs__DocuSign_Recipient_Status__c objdocuRsign = new dsfs__DocuSign_Recipient_Status__c();
objdocuRsign.dsfs__Parent_Status_Record__c = objdocusign.ID;
objdocuRsign.dsfs__DocuSign_Recipient_Id__c = '1234';
objdocuRsign.Name = 'Test';
objdocuRsign.dsfs__Date_Signed__c = System.Today();
insert objdocuRsign ;
dsfs__DocuSign_Recipient_Status__c objDRS = [select dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id from dsfs__DocuSign_Recipient_Status__c where id =: objdocusign.Id limit 1];
Opportunity objOpp = [select id, StageName from Opportunity where id =: objDRS.dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id limit 1];
objOpp.StageName = 'Closed Lost (Cancelled)';
update objOpp;
}
}
(System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, chekDocSign: execution of AfterInsert
caused by: System.DmlException: Update failed. First exception on row 0 with id 00611000003ahRnAAI; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, You must add at least one (non forecast) product to this opportunity before it can be Closed Won.: []
Trigger.chekDocSign: line 7, column 1: []).............please solve the problem
*****************************************************************************************************************************************************
@isTest
public class chekDocSignTracker
{
Static testmethod void insertRecordwithDateSigned()
{
Account objAccount = new Account();
objAccount.Name = 'Vivek';
objAccount.Type = 'Supplier';
objAccount.Phone = '1234';
objAccount.CurrencyIsoCode = 'AUD';
insert objAccount;
Contact objcontact = new contact();
objcontact.LastName = 'Singh';
objcontact.CurrencyIsoCode = 'AUD';
objcontact.Account = objAccount ;
insert objContact;
opportunity objopportunity= new opportunity ();
objopportunity.Name = 'Hindi2014';
objopportunity.CloseDate = System.Today();
objopportunity.Account = objAccount;
objopportunity.Buyer__c = objcontact.id;
objopportunity.Vendor__c = objaccount.id;
objopportunity.StageName = 'Prposal Sent';
objopportunity.Billing_Terms__c = 'On Completion';
objopportunity.Type = 'New Business';
insert Objopportunity;
dsfs__DocuSign_Status__c objdocusign= new dsfs__DocuSign_Status__c();
objdocusign.dsfs__DocuSign_Envelope_ID__c = '1234';
objdocusign.dsfs__Opportunity__c=objopportunity.id;
insert objdocusign;
dsfs__DocuSign_Recipient_Status__c objdocuRsign = new dsfs__DocuSign_Recipient_Status__c();
objdocuRsign.dsfs__Parent_Status_Record__c = objdocusign.ID;
objdocuRsign.dsfs__DocuSign_Recipient_Id__c = '1234';
objdocuRsign.Name = 'Test';
objdocuRsign.dsfs__Date_Signed__c = System.Today();
insert objdocuRsign ;
}
}
_______________________________________________________________________________________________
System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, chekDocSign: execution of AfterInsert
caused by: System.DmlException: Update failed. First exception on row 0 with id 00611000003ahTUAAY; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, You must add at least one (non forecast) product to this opportunity before it can be Closed Won.: []
Trigger.chekDocSign: line 7, column 1: []
put u code
=====
@isTest
public class chekDocSignTracker
{
Static testmethod void insertRecordwithDateDeclined()
{
Account objAccount = new Account();
objAccount.Name = 'Vivek';
objAccount.Type = 'Supplier';
objAccount.Phone = '1234';
objAccount.CurrencyIsoCode = 'AUD';
insert objAccount;
Contact objcontact = new contact();
objcontact.LastName = 'Singh';
objcontact.CurrencyIsoCode = 'AUD';
objcontact.Account = objAccount ;
insert objContact ;
opportunity objopportunity= new opportunity ();
objopportunity.Name = 'Hindi2014';
objopportunity.CloseDate = System.Today();
objopportunity.Account = objAccount;
objopportunity.Buyer__c = objcontact.id;
objopportunity.Vendor__c = objaccount.id;
objopportunity.StageName = 'Prposal Sent';
objopportunity.Billing_Terms__c = 'On Completion';
objopportunity.Type = 'New Business';
insert Objopportunity;
dsfs__DocuSign_Status__c objdocusign= new dsfs__DocuSign_Status__c();
objdocusign.dsfs__DocuSign_Envelope_ID__c = '1234';
objdocusign.dsfs__Opportunity__c=objopportunity.id;
insert objdocusign;
dsfs__DocuSign_Recipient_Status__c objdocuRsign = new dsfs__DocuSign_Recipient_Status__c();
objdocuRsign.dsfs__Parent_Status_Record__c = objdocusign.ID;
objdocuRsign.dsfs__DocuSign_Recipient_Id__c = '1234';
objdocuRsign.Name = 'Test';
objdocuRsign.dsfs__Date_Signed__c = System.Today();
insert objdocuRsign ;
dsfs__DocuSign_Recipient_Status__c objDRS = [select dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id from dsfs__DocuSign_Recipient_Status__c where id =: objdocusign.Id limit 1];
Opportunity objOpp = [select id, StageName from Opportunity where id =: objDRS.dsfs__Parent_Status_Record__r.dsfs__Opportunity__r.id limit 1];
objOpp.StageName = 'Closed Lost (Cancelled)';
update objOpp;
}
}
Based on the above two issues i have altered test class. I am not preety sure what type of field you are using, if you found any field does not exist error then change the accurate field name that you have... Try this below code..