You need to sign in to do that
Don't have an account?
Dhriti Ghosh
System.NullPointerException: Argument cannot be null. in test class
Hi,
I am getting error while parsing datetime field in test class.My controller is working fine:
As I have given below code:
public pagereference saveOpportunity(){
String bcontact='';
String serializedDate = ApexPages.currentPage().getParameters().get('bcontact');
System.debug('*************'+serializedDate);
if(serializedDate!=''){
dt = DateTime.parse(serializedDate);
System.debug('*************'+dt);
}
}
In test class I am writing :
Datetime nowdate=System.now();
string strfromdate = nowdate.format();
system.debug('startdate :' + strfromdate );
datetime startdate = datetime.parse(strfromdate);
system.debug('startdate :' + startdate);
oppn.Best_Time_To_Contact__c=startdate ;
I am able to fetch oppn.Best_Time_To_Contact__c properly and also able to insert opportunity record.But when I am calling apex function dScript.saveOpportunity(),
I am getting this error:
System.NullPointerException: Argument cannot be null.
Can anybody please help me where I am getting issue and how to resolve this issue ASAP.
I am getting error while parsing datetime field in test class.My controller is working fine:
As I have given below code:
public pagereference saveOpportunity(){
String bcontact='';
String serializedDate = ApexPages.currentPage().getParameters().get('bcontact');
System.debug('*************'+serializedDate);
if(serializedDate!=''){
dt = DateTime.parse(serializedDate);
System.debug('*************'+dt);
}
}
In test class I am writing :
Datetime nowdate=System.now();
string strfromdate = nowdate.format();
system.debug('startdate :' + strfromdate );
datetime startdate = datetime.parse(strfromdate);
system.debug('startdate :' + startdate);
oppn.Best_Time_To_Contact__c=startdate ;
I am able to fetch oppn.Best_Time_To_Contact__c properly and also able to insert opportunity record.But when I am calling apex function dScript.saveOpportunity(),
I am getting this error:
System.NullPointerException: Argument cannot be null.
Can anybody please help me where I am getting issue and how to resolve this issue ASAP.
see here http://www.salesforce.com/us/developer/docs/pages/Content/pages_controller_error_handling.htm
So instead of calling the function directly I am writing now:
String nextPage = dScript.saveOpportunity().getUrl();
nextPage = dScript.saveOpportunity().getUrl();
but still I am facing same error.
where dScript is the class instance,saveOpportunity is the function
Can you please tell me where i am doing wrong?
can you please post you class and test method both so i can pin point what you need doing
Ta
Vish
PageReference pageRef = Page.YOURPAGENAMEHERE;
Test.setCurrentPage(pageRef);
thecontroller dScript= new thecontroller();
dScript.saveOpportunity();
public pagereference saveOpportunity(){
oppor = new Opportunity();
String fnames='';
String lnames='';
String emails='';
String phones='';
String commentopportunity='';
String bcontact='';
String fname=Apexpages.currentpage().getparameters().get('fnames');
String lname=Apexpages.currentpage().getparameters().get('lnames');
String emailid=Apexpages.currentpage().getparameters().get('emails');
String phonenumber=Apexpages.currentpage().getparameters().get('phones');
String comment=Apexpages.currentpage().getparameters().get('commentopportunity');
String serializedDate = ApexPages.currentPage().getParameters().get('bcontact'); //Values coming from actionfunction VF page
System.debug('*************'+serializedDate);
if(serializedDate!=''){
dt = DateTime.parse(serializedDate);//Facing issue in this line while running the test class line 377
System.debug('*************'+dt);
}
Decider_Interview__c deciderDetails=[Select Id from Decider_Interview__c where Id =:deciderInterviewDetails.id];
Id accountId=Apexpages.currentpage().getparameters().get('id');
Question_Response__c questionresponsedetails =[Select Id,Choices__c,isAccount__c,Question__c,isCheckedOpportunity__c,isCheckedAccount__c,isOpportunity__c from Question_Response__c where Id =:typeName];
questiondetail=[Select id,Lead_Type__c from Question__c where id=:questionresponsedetails.Question__c];
oppor.AccountId=accountId;
oppor.Comment_for_family_member__c=comment;
oppor.first_name__c = fname;
oppor.last_name__c = lname;
oppor.email__c = emailid;
oppor.phone__c = phonenumber;
oppor.CloseDate=System.today();
oppor.Domain__c='Legal';
oppor.Lead_Type__c=questiondetail.Lead_Type__c;
oppor.Name=questiondetail.Lead_Type__c;
oppor.StageName='Created';
oppor.Sub_Domain__c='Legal Healthcare';
oppor.Opportunity_Type__c=questionresponsedetails.choices__c;
oppor.Affected_Person__c='Family Member';
oppor.Best_Time_To_Contact__c=dt;
oppor.Description=comment;
try{
insert oppor;
opplist.add(oppor);
}
catch(DMLException e){
System.debug('********************'+e);
}
notes = new note();
notes.parentId=deciderDetails.Id;
notes.body=comment;
notes.title='Family notes';
insert notes;
return null;
return null;
}
Test class:
@isTest(seeAllData = false)
Public class TestDeciderScript {
public static testMethod void testDecider() {
//Inserting Template record
Template__c template = new Template__c();
template.Name = 'Test Template';
template.Interview_Type__c = 'Decider';
template.Lead_Type__c = 'Actos';
insert template;
//Inserting Question Record
Question__c question1 = new Question__c();
question1.Name = 'Test Question';
question1.Template__c = template.id;
question1.isActive__c = true;
question1.Order_Number__c = 1;
question1.Question__c = '1.Have you or any of your loved ones ever been diagnosed with.';
question1.Answer_Type__c = 'Multi-Select--Vertical';
question1.isDependent__c = false;
question1.Lead_Type__c = 'Birthcontrol';
insert question1;
//Inserting Question Record
Question__c question2 = new Question__c();
question2.Name = 'Test Question';
question2.Template__c = template.id;
question2.isActive__c = true;
question2.Order_Number__c = 1;
question2.Question__c = '1.Have you or any of your loved ones ever been diagnosed with.';
question2.Answer_Type__c = 'Single Select--Vertical';
question2.isDependent__c = false;
question2.Lead_Type__c = 'Birthcontrol';
insert question2;
//Inserting Question Record
Question__c question3 = new Question__c();
question3.Name = 'Test Question';
question3.Template__c = template.id;
question3.isActive__c = true;
question3.Order_Number__c = 1;
question3.Question__c = '1.Have you or any of your loved ones ever been diagnosed with.';
question3.Answer_Type__c = 'Free Text';
question3.isDependent__c = false;
question3.Lead_Type__c = 'Birthcontrol';
insert question3;
//Inserting Question Response Record
Question_Response__c response1 = new Question_Response__c();
response1.Name = 'Response';
response1.Question__c = question1.Id;
response1.Choices__c = 'Bladder Cancer from the use of Actos medication for diabetes [ACTOS]';
response1.isAccount__c = true;
response1.isCheckedAccount__c = false;
response1.isOpportunity__c = false;
response1.isOpportunityMe__c = false;
response1.Response_Order_No__c = ''+1;
insert response1;
//Inserting Question Response Record
Question_Response__c response2 = new Question_Response__c();
response2.Name = 'Response';
response2.Question__c = question1.Id;
response2.Choices__c = 'Bladder Cancer from the use of Actos medication for diabetes [ACTOS]';
response2.isAccount__c = true;
response2.isCheckedAccount__c = true;
response2.isOpportunity__c = false;
response2.isOpportunityMe__c = false;
response2.Response_Order_No__c = ''+1;
insert response2;
//Inserting Question Response Record
Question_Response__c response3 = new Question_Response__c();
response3.Name = 'Response';
response3.Question__c = question1.Id;
response3.Choices__c = 'Bladder Cancer from the use of Actos medication for diabetes [ACTOS]';
response3.isAccount__c = false;
response3.isCheckedOpportunity__c = false;
response3.isOpportunity__c = true;
response3.isOpportunityMe__c = false;
response3.Response_Order_No__c = ''+1;
insert response3;
//Inserting Question Response Record
Question_Response__c response4 = new Question_Response__c();
response4.Name = 'Response';
response4.Question__c = question1.Id;
response4.Choices__c = 'Bladder Cancer from the use of Actos medication for diabetes [ACTOS]';
response4.isAccount__c = false;
response4.isCheckedOpportunity__c = true;
response4.isOpportunity__c = true;
response4.isOpportunityMe__c = false;
response4.Response_Order_No__c = ''+1;
insert response4;
//Inserting Question Response Record
Question_Response__c response5 = new Question_Response__c();
response5.Name = 'Response';
response5.Question__c = question1.Id;
response5.Choices__c = 'Bladder Cancer from the use of Actos medication for diabetes [ACTOS]';
response5.isAccount__c = false;
response5.isCheckedMe__c = false;
response5.isOpportunity__c = false;
response5.isOpportunityMe__c = true;
response5.Response_Order_No__c = ''+1;
insert response5;
//Inserting Question Response Record
Question_Response__c response6 = new Question_Response__c();
response6.Name = 'Response';
response6.Question__c = question1.Id;
response6.Choices__c = 'Bladder Cancer from the use of Actos medication for diabetes [ACTOS]';
response6.isAccount__c = false;
response6.isCheckedMe__c = true;
response6.isOpportunity__c = false;
response6.isOpportunityMe__c = true;
response6.Response_Order_No__c = ''+1;
insert response6;
//Id RecId = [SELECT Id, Name, IsPersonType FROM RecordType
//WHERE sObjectType = 'Account' AND
// IsPersonType=True AND RecordType.Name = 'Person Account'].Id;
RecordType RecId = [select id,Name from RecordType where SobjectType='Account' and Name='Clients' Limit 1];
//Inserting Account Record
Account acc = new Account();
acc.recordTypeId = RecId.Id;
acc.FirstName = 'Test LastName';
acc.LastName = 'Test LastName';
insert acc;
System.debug('************acc**************8'+acc);
Opportunity oppn = new Opportunity();
oppn.Name = 'Test Opportunity';
oppn.AccountId = acc.Id;
oppn.StageName = 'Created';
oppn.CloseDate = System.Today();
//oppn.Best_Time_To_Contact__c=System.now();
Datetime nowdate=System.now();
string strfromdate = nowdate.format();
system.debug('startdate :' + strfromdate );
datetime startdate = datetime.parse(strfromdate); //parsing from string to datetime
system.debug('startdate :' + startdate);
oppn.Best_Time_To_Contact__c=startdate ;
insert oppn;
system.debug('opportunity:'+oppn);
Decider_Interview__c deciderInterview1 = new Decider_Interview__c();
//deciderInterview1.Name
deciderInterview1.Account_Name__c = acc.Id;
deciderInterview1.Opportunity_Name__c = oppn.Id;
insert deciderInterview1;
Decider_Interview__c deciderInterview2 = new Decider_Interview__c();
deciderInterview2.Account_Name__c = acc.Id;
deciderInterview2.Opportunity_Name__c = oppn.Id;
//deciderInterview2.Comment__c = 'Test Comment';
insert deciderInterview2;
Decider_Interview_Response__c dIntResponse1 = new Decider_Interview_Response__c();
//dIntResponse1.Name = 'Decider Interview Response';
dIntResponse1.Decider_Interview__c = deciderInterview1.Id;
dIntResponse1.Question__c = question1.Id;
insert dIntResponse1;
Decider_Interview_Response__c dIntResponse2 = new Decider_Interview_Response__c();
//dIntResponse2.Name = 'Decider Interview Response';
dIntResponse2.Decider_Interview__c = deciderInterview2.Id;
dIntResponse2.Question__c = question2.Id;
insert dIntResponse2;
PageReference pageRef = Page.DeciderScript; //Declaring pageref
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id', acc.Id);
ApexPages.currentPage().getParameters().put('type', 'Decider');
DeciderScript dScript = new DeciderScript(); //Creating class instance
dScript.saveDecider();
dScript.getContact();
dScript.closePopup();
dScript.showPopup();
dScript.cancelAccount();
dScript.cancelOpportunity();
//dScript.updateCheckbox();
dScript.getInterest();
dScript.value = 'Yes';
dScript.interestResponse();
dScript.value = 'No';
dScript.interestResponse();
dScript.interestValue = 'No';
dScript.saveDecider();
//dScript.updateComment();
dScript.interestValue = 'Yes';
dScript.saveDecider();
//dScript.updateComment();
dScript.customSave();
ApexPages.currentPage().getParameters().put('Val', response1.Id);
dScript.affectedMemberName();
ApexPages.currentPage().getParameters().put('Val', response2.Id);
dScript.affectedMemberName();
ApexPages.currentPage().getParameters().put('Val', response3.Id);
dScript.affectedMemberName();
ApexPages.currentPage().getParameters().put('Val', response4.Id);
dScript.affectedMemberName();
ApexPages.currentPage().getParameters().put('Val', response5.Id);
dScript.affectedMemberName();
ApexPages.currentPage().getParameters().put('Val', response6.Id);
dScript.affectedMemberName();
dScript.diComment = 'Decider Comment';
//dScript.updateComment();
dScript.updateCheckbox();
dScript.previous();
dScript.previousThirdpage();
dScript.customCancel();
dScript.customSaveNew();
dScript.saveOpportunity(); //calling the function line 263
dScript.saveOpportunityMe();
dScript.thirdPage();
dScript.bcontact = System.Now();
ApexPages.currentPage().getParameters().put('bcontact', ''+dScript.bcontact);
//dScript.dateFromUrl();
}
}
Error Message System.NullPointerException: Argument cannot be null.
Stack Trace Class.DeciderScript.saveOpportunity: line 377, column 1
Class.TestDeciderScript.testDecider: line 263, column 1
Vish
dScript.bcontact = System.Now();
ApexPages.currentPage().getParameters().put('bcontact', ''+dScript.bcontact);