You need to sign in to do that
Don't have an account?
vijay kumar k
please help me to write test class of my controller
my apex class :
public class copycontact {
public list<selectoption>account1{set;get;}
public list<selectoption>account2{set;get;}
public list<contact>oldcontacts{set;get;}
public list<opportunity>oldopportinities {set;get;}
public list<lead>oldleads {set;get;}
public id selectedaccountId1 {set;get;}
public id selectedaccountId2 {set;get;}
public copycontact(ApexPages.StandardController stdController){
}
public List<SelectOption> getListOfAccounts1()
{
List<Account> AccountList1 = [select id,Name from Account] ;
System.debug('Accounts'+AccountList1.size());
account1 = new List<SelectOption>();
account1.add(new SelectOption( ' ' ,'---Select---'));
for(Account acc : AccountList1 )
{
account1.add(new SelectOption(acc.id , acc.Name));
}
return account1 ;
}
public List<SelectOption> getListOfAccounts2()
{
List<Account> AccountList2 = [select id,Name from Account] ;
System.debug('Accounts'+AccountList2.size());
account2 = new List<SelectOption>();
account2.add(new SelectOption( ' ' ,'---Select---'));
for(Account acc : AccountList2 )
{
account2.add(new SelectOption(acc.id , acc.Name));
}
system.debug('java');
return account2 ;
}
public void clonecontacts(){
system.debug('gsvdd');
if(selectedaccountId1!=null){
oldcontacts=new list<contact>([select id,lastname from contact where accountid=:selectedaccountId1]);
if(oldcontacts.size()==0){
system.debug('please select create contacts' );
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,'No contacts to display'));
}
else{
system.debug('oldcontacts'+oldcontacts.size());
list<contact> newcontacts=new list<contact>();
list<opportunity> newopportunities=new list<opportunity>();
set<id> oldcontactid=new set<id>();
map<id,id> newmap=new map<id,id>();
for(Contact con:oldcontacts){
contact c=new contact();
c.lastname=con.LastName;
c.AccountId=selectedaccountId2;
newcontacts.add(c);
oldcontactid.add(con.id);
}
insert newcontacts;
system.debug('newcontacts'+newcontacts.size());
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'successfully contacts are copied'));
for(contact c1:oldcontacts){
for(contact c2:newcontacts){
if(c1.lastname==c2.LastName){
newmap.put(c1.id,c2.id);
system.debug('created map');
}
}
}
oldopportinities=[select id,name,copycontact__c,closedate,stagename from opportunity where copyContact__c=:oldcontactid];
system.debug('oldopportunities'+oldopportinities.size());
list<lead> newleads=new list<lead>();
set<id> oldleadids=new set<id>();
map<id,id> newleadmap=new map<id,id>();
for(opportunity o:oldopportinities){
opportunity op=new opportunity();
op.Name=o.name;
op.CloseDate=o.CloseDate;
op.StageName=o.StageName;
op.copyContact__c=newmap.get(o.copyContact__c);
newopportunities.add(op);
oldleadids.add(o.Id);
}
insert newopportunities;
system.debug('newopportunity'+newopportunities.size());
system.debug('oldleadsids'+oldleadids.size());
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'successfully opportunities are copied'));
for(opportunity o1:oldopportinities){
for(opportunity o2:newopportunities){
if(o2.name==o1.name){
newleadmap.put(o1.id,o2.id);
}
}
}
oldleads=[select id,lastname,Company,status,Opportunityleads__c from lead where Opportunityleads__c=:oldleadids];
system.debug('oldleads'+oldleads.size());
if(oldleads.size()==0){
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.error,'no opportunites '));
}
else{
for(lead le:oldleads){
lead l=new lead();
l.lastName=le.lastname;
l.Company=le.company;
l.Status=le.status;
l.Opportunityleads__c=newleadmap.get(le.Opportunityleads__c);
newleads.add(l);
}
insert newleads;
system.debug('newleads'+newleads.size());
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'successfully leads are copied'));
}
}
}
}
}
public class copycontact {
public list<selectoption>account1{set;get;}
public list<selectoption>account2{set;get;}
public list<contact>oldcontacts{set;get;}
public list<opportunity>oldopportinities {set;get;}
public list<lead>oldleads {set;get;}
public id selectedaccountId1 {set;get;}
public id selectedaccountId2 {set;get;}
public copycontact(ApexPages.StandardController stdController){
}
public List<SelectOption> getListOfAccounts1()
{
List<Account> AccountList1 = [select id,Name from Account] ;
System.debug('Accounts'+AccountList1.size());
account1 = new List<SelectOption>();
account1.add(new SelectOption( ' ' ,'---Select---'));
for(Account acc : AccountList1 )
{
account1.add(new SelectOption(acc.id , acc.Name));
}
return account1 ;
}
public List<SelectOption> getListOfAccounts2()
{
List<Account> AccountList2 = [select id,Name from Account] ;
System.debug('Accounts'+AccountList2.size());
account2 = new List<SelectOption>();
account2.add(new SelectOption( ' ' ,'---Select---'));
for(Account acc : AccountList2 )
{
account2.add(new SelectOption(acc.id , acc.Name));
}
system.debug('java');
return account2 ;
}
public void clonecontacts(){
system.debug('gsvdd');
if(selectedaccountId1!=null){
oldcontacts=new list<contact>([select id,lastname from contact where accountid=:selectedaccountId1]);
if(oldcontacts.size()==0){
system.debug('please select create contacts' );
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,'No contacts to display'));
}
else{
system.debug('oldcontacts'+oldcontacts.size());
list<contact> newcontacts=new list<contact>();
list<opportunity> newopportunities=new list<opportunity>();
set<id> oldcontactid=new set<id>();
map<id,id> newmap=new map<id,id>();
for(Contact con:oldcontacts){
contact c=new contact();
c.lastname=con.LastName;
c.AccountId=selectedaccountId2;
newcontacts.add(c);
oldcontactid.add(con.id);
}
insert newcontacts;
system.debug('newcontacts'+newcontacts.size());
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'successfully contacts are copied'));
for(contact c1:oldcontacts){
for(contact c2:newcontacts){
if(c1.lastname==c2.LastName){
newmap.put(c1.id,c2.id);
system.debug('created map');
}
}
}
oldopportinities=[select id,name,copycontact__c,closedate,stagename from opportunity where copyContact__c=:oldcontactid];
system.debug('oldopportunities'+oldopportinities.size());
list<lead> newleads=new list<lead>();
set<id> oldleadids=new set<id>();
map<id,id> newleadmap=new map<id,id>();
for(opportunity o:oldopportinities){
opportunity op=new opportunity();
op.Name=o.name;
op.CloseDate=o.CloseDate;
op.StageName=o.StageName;
op.copyContact__c=newmap.get(o.copyContact__c);
newopportunities.add(op);
oldleadids.add(o.Id);
}
insert newopportunities;
system.debug('newopportunity'+newopportunities.size());
system.debug('oldleadsids'+oldleadids.size());
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'successfully opportunities are copied'));
for(opportunity o1:oldopportinities){
for(opportunity o2:newopportunities){
if(o2.name==o1.name){
newleadmap.put(o1.id,o2.id);
}
}
}
oldleads=[select id,lastname,Company,status,Opportunityleads__c from lead where Opportunityleads__c=:oldleadids];
system.debug('oldleads'+oldleads.size());
if(oldleads.size()==0){
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.error,'no opportunites '));
}
else{
for(lead le:oldleads){
lead l=new lead();
l.lastName=le.lastname;
l.Company=le.company;
l.Status=le.status;
l.Opportunityleads__c=newleadmap.get(le.Opportunityleads__c);
newleads.add(l);
}
insert newleads;
system.debug('newleads'+newleads.size());
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM,'successfully leads are copied'));
}
}
}
}
}
When you have to test a controller there are a few steps that you have to perform. This example ilustrate those steps: https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_error_handling.htm
Brief explanation of the example:
1. Specify the page you will test:
PageReference pageRef = Page.success;
Test.setCurrentPage(pageRef);
2. Create an instance of your controller:
Thecontroller controller = new Thecontroller();
3. Invoke the methods defined in your controller.
controller.setLastName('lastname');
controller.setFirstName('firstname');
controller.setCompany('acme');
controller.setEmail('firstlast@acme.com');
nextPage = controller.save().getUrl();
4. Check if the results are correct.
System.assertEquals('/apex/success', nextPage);
You can also take a look at these resources:
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing.htm
https://developer.salesforce.com/page/How_to_Write_Good_Unit_Tests
https://trailhead.salesforce.com/en/modules/apex_testing/units/apex_testing_intro
Let me know if this helps you,
Angélica.-
1) https://trailhead.salesforce.com/modules/apex_testing
Pleasse check below post sample test class
1) http://amitsalesforce.blogspot.com/2015/06/best-practice-for-test-classes-sample.html
Also please check below post
1) https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_qs_test.htm
2) https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_example.htm
You write a test class for this the same way that you would any other:
- Set up some data for the controller to access (in this case it looks like Account ,Contact ,Lead and Opportunity)
- Instantiate the controller - as its custom you don't need to pass any parameters
- Execute a method/methods
- Verify the behaviour with asserts.
Sample Test class for you to start
Sample test class for you
Let us know if this will help you