You need to sign in to do that
Don't have an account?

How can i imporve my code coverage, i currently have 47% but i dont now how to improve it anymore
Here is what i tried
apex class:
public with sharing class SolutionWrapper {
public ApexPages.StandardSetController controller;
public Opportunity opp{get; set;}
public Solutions__c oppId{get; set;}
public Solutions__c sol{get; set;}
public Solutions__c solution{get; set;}
public Account acc{get; set;}
public SolutionWrapper(ApexPages.StandardSetController controller) {
try{
solution = new Solutions__c();
solution = (Solutions__c)controller.getRecord();
if(solution.Id != null){
oppId = [SELECT id, Solutions__c.Opportunity__c
FROM Solutions__c
WHERE id =: solution.Id
LIMIT 1];
opp = [Select id,Name, AccountId, CurrencyIsoCode from
Opportunity where id =: oppId.Opportunity__c LIMIT: 1];
}
if(opp.id !=null){
sol = [SELECT id,Name, Mail_Merge_Id__c,Solution_Country__c, Solutions__c.Opportunity__c
FROM Solutions__c
WHERE Solutions__c.Opportunity__c =: opp.id
LIMIT 1];
acc = [Select id,Name,Country__c from
Account where id=:opp.AccountId LIMIT: 1];
}
}
catch(Exception e){
ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.ERROR,e.getMessage()));
}
}
}
apex test class:
@isTest
public class SolutionWrapperTest {
static testMethod void testMethodOpp(){
Account acc = new Account(Name='test', Country__c='test');
insert acc;
Opportunity opp = new Opportunity(Name='test', AccountId=acc.id, CurrencyIsoCode='GBP', StageName = 'Good',
CloseDate = date.today());
insert opp;
Solutions__c sol = new Solutions__c( Opportunity__c= opp.id, CurrencyIsoCode='GBP');
insert sol;
List<Solutions__c> listSol = new List<Solutions__c>();
listSol.add(sol);
PageReference pageRef = Page.NewVisualForcePage;
Test.setCurrentPage(pageRef);
Test.startTest();
ApexPages.StandardSetController stdController = new ApexPages.StandardSetController(listSol);
SolutionWrapper testSolution = new SolutionWrapper(stdController);
Test.stopTest();
}
}
apex class:
public with sharing class SolutionWrapper {
public ApexPages.StandardSetController controller;
public Opportunity opp{get; set;}
public Solutions__c oppId{get; set;}
public Solutions__c sol{get; set;}
public Solutions__c solution{get; set;}
public Account acc{get; set;}
public SolutionWrapper(ApexPages.StandardSetController controller) {
try{
solution = new Solutions__c();
solution = (Solutions__c)controller.getRecord();
if(solution.Id != null){
oppId = [SELECT id, Solutions__c.Opportunity__c
FROM Solutions__c
WHERE id =: solution.Id
LIMIT 1];
opp = [Select id,Name, AccountId, CurrencyIsoCode from
Opportunity where id =: oppId.Opportunity__c LIMIT: 1];
}
if(opp.id !=null){
sol = [SELECT id,Name, Mail_Merge_Id__c,Solution_Country__c, Solutions__c.Opportunity__c
FROM Solutions__c
WHERE Solutions__c.Opportunity__c =: opp.id
LIMIT 1];
acc = [Select id,Name,Country__c from
Account where id=:opp.AccountId LIMIT: 1];
}
}
catch(Exception e){
ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.ERROR,e.getMessage()));
}
}
}
apex test class:
@isTest
public class SolutionWrapperTest {
static testMethod void testMethodOpp(){
Account acc = new Account(Name='test', Country__c='test');
insert acc;
Opportunity opp = new Opportunity(Name='test', AccountId=acc.id, CurrencyIsoCode='GBP', StageName = 'Good',
CloseDate = date.today());
insert opp;
Solutions__c sol = new Solutions__c( Opportunity__c= opp.id, CurrencyIsoCode='GBP');
insert sol;
List<Solutions__c> listSol = new List<Solutions__c>();
listSol.add(sol);
PageReference pageRef = Page.NewVisualForcePage;
Test.setCurrentPage(pageRef);
Test.startTest();
ApexPages.StandardSetController stdController = new ApexPages.StandardSetController(listSol);
SolutionWrapper testSolution = new SolutionWrapper(stdController);
Test.stopTest();
}
}
All Answers
Hope this helps.
@Dushyant Sonwar thx for trying as well
It shows that the test is not working in the class starting from this line of code in the apex class
opp = [Select id,Name, AccountId, CurrencyIsoCode from
Opportunity where id =: oppId.Opportunity__c LIMIT: 1];
"common.apex.runtime.impl.ExecutionException: List has no rows for assignment to SObject"|0x4888dd3c