You need to sign in to do that
Don't have an account?
Sabrina Oliveira 3
What am I missing in this test class?
Class:
public with sharing class DocumentsService {
public class DocumentException extends Exception{}
public static void validateContractDocument(List<Document__c> m_lstObjNew,
Map<Id, Document__c> m_mapObjOld){
Map<Id, Document__c> contracts = new Map<Id, Document__c>();
for(Document__c doc : m_lstObjNew){
if(doc.Contract__c != null)
contracts.put(doc.Contract__c, doc);
}
List<Document__c> docs = [ select Contract__c from Document__c where Contract__c in: contracts.keyset() ];
for(Document__c item : docs){
Document__c doc = contracts.get(item.Contract__c);
doc.addError(new DocumentException('Only 1 contract is allowed'));
}
}
}
Test class (0% of coverage):
@isTest
private class DocumentsServiceTest {
@testSetup
static void makeData(){
Account acc = AccountTestBuilder.getBuilder()
.persist();
Contract ctrt = ContractTestBuilder.getBuilder()
.withAccountId(acc.Id)
.persist();
Document__c doc = DocumentTestBuilder.getBuilder()
.withContractId(ctrt.Id)
.persist();
}
@IsTest
static void methodTest(){
Contract ctrt = [SELECT Id FROM Contract LIMIT 1];
Document__c doc = [SELECT id, Name FROM Document__c LIMIT 1];
doc.Contract__c = ctrt.Id;
update doc;
Test.startTest();
Document__c doc2 = DocumentTestBuilder.getBuilder()
.withContractId(ctrt.Id)
.persist();
Test.stopTest();
}
}
public with sharing class DocumentsService {
public class DocumentException extends Exception{}
public static void validateContractDocument(List<Document__c> m_lstObjNew,
Map<Id, Document__c> m_mapObjOld){
Map<Id, Document__c> contracts = new Map<Id, Document__c>();
for(Document__c doc : m_lstObjNew){
if(doc.Contract__c != null)
contracts.put(doc.Contract__c, doc);
}
List<Document__c> docs = [ select Contract__c from Document__c where Contract__c in: contracts.keyset() ];
for(Document__c item : docs){
Document__c doc = contracts.get(item.Contract__c);
doc.addError(new DocumentException('Only 1 contract is allowed'));
}
}
}
Test class (0% of coverage):
@isTest
private class DocumentsServiceTest {
@testSetup
static void makeData(){
Account acc = AccountTestBuilder.getBuilder()
.persist();
Contract ctrt = ContractTestBuilder.getBuilder()
.withAccountId(acc.Id)
.persist();
Document__c doc = DocumentTestBuilder.getBuilder()
.withContractId(ctrt.Id)
.persist();
}
@IsTest
static void methodTest(){
Contract ctrt = [SELECT Id FROM Contract LIMIT 1];
Document__c doc = [SELECT id, Name FROM Document__c LIMIT 1];
doc.Contract__c = ctrt.Id;
update doc;
Test.startTest();
Document__c doc2 = DocumentTestBuilder.getBuilder()
.withContractId(ctrt.Id)
.persist();
Test.stopTest();
}
}
Try Below Test Class
You Were Not Calling The Main Calss In Test Class That's Why It's Not Covering Please Mark It As Best Answer If It Helps
Thank You!