function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Aishwarya_TodkarAishwarya_Todkar 

Test Entitlement attachment to case in test class

Hi,
On Case trigger I am attaching an Entitlement with the name stored in custom settings.
I want to test it in test class. If anyone can help me out with this will be appreciated.

Thanks!
Best Answer chosen by Aishwarya_Todkar
Raj VakatiRaj Vakati
Try some think like this
 
@isTest
private class defaultEntitlementTest {

	static testMethod void myUnitTest() {
		Account acc = new Account(Name='testacc');
		insert acc;

		Contact con = new Contact(FirstName='john', LastName='doe', Email='john@doe.com', AccountId=acc.Id, Contact_Type__c='B2B');
		insert con;

		Asset ass = new Asset(AccountId=acc.Id,ContactId=con.Id, Name='testing');
		insert ass;

// Insert your custom setting here ...  and match name to Entitlement 
CS1__c cs = new CS1__c();
// Add other fields
insert cs ; 

		Entitlement ent = new Entitlement(Name='Testing', AccountId=acc.Id, StartDate=Date.valueof(System.now().addDays(-2)), EndDate=Date.valueof(System.now().addYears(2)), AssetId=ass.Id);
		insert ent;

		Entitlement ent2 = new Entitlement(Name='test2', AccountId=acc.Id, StartDate=Date.valueof(System.now().addDays(-10)), EndDate=Date.valueof(System.now().addYears(3)));
		insert ent2;

		EntitlementContact ec = new EntitlementContact(EntitlementId=ent.Id, ContactId=con.Id);
		insert ec;

		List<Case> listC = new list<Case>();
		List<Id> newCaseIds = new List<Id>();
		for(Integer i=0;i<20;i++){
			Case c = new Case(ContactId=con.Id, AccountId=con.AccountId, Subject='Test Subject'+i, Origin='Webform_B2B');

			listC.add(c);
		}
		test.startTest();
		insert listC;

		test.stopTest();
		for (Case caseObj:listC) {
			newCaseIds.add(caseObj.Id);
		}

		List<Case> entls = [Select EntitlementId, AssetId, ContactId, AccountId From Case Where Id in :newCaseIds];

		for (Case caseObj:entls) {

			System.debug(caseObj.Id + ' here are the values ' + caseObj.EntitlementId + ' and here ent.Id ' + ent.Id);

			System.assertEquals(caseObj.EntitlementId, ent.Id);

		}
		Contact con2 = new Contact(FirstName = 'Jane',
		LastName = 'Doe',
		Email='jane@doe.com');

		insert con2;
		Entitlement ent3 = new Entitlement(Name='Testing', AccountId=acc.Id, StartDate=Date.valueof(System.now().addDays(2)), EndDate=Date.valueof(System.now().addYears(2)), AssetId=ass.Id);
		insert ent3;

		EntitlementContact ec2 = new EntitlementContact(EntitlementId=ent3.Id, ContactId=con2.Id);
		insert ec2;
		Case c1 = new Case(ContactId=con2.Id, AccountId=con.AccountId, Subject='Test Subject', Origin='Webform_B2B');
		insert c1;
		update c1;
	}
}