I have written my first trigger and have attempted to write my test class but it is passing but it is saying it has zero coverage. Can anyone clear it up for me and tell me where im going wrong.
SharingClass
trigger ScrumTeamSharing on agf__ADM_Scrum_Team__c(after insert) {
if (trigger.isInsert) {
agf__ADM_Scrum_Team__Share TeamShare;
for(agf__ADM_Scrum_Team__c ADM : Trigger.new){
TeamShare = new agf__ADM_Scrum_Team__Share();
String IdTeam = ADM.Id;
String assAcc = ADM.Account_ID__c;
List<Account> alist = [SELECT Id, Name FROM Account WHERE Id=:assAcc];
System.debug('a' + alist);
List<Contact> clist = [SELECT Id, Name FROM Contact WHERE Contact.AccountId IN :alist];
System.debug('c' + clist);
// Set ID of record being shared
TeamShare.ParentId = ADM.Id;
// Set ID of user or group being granted access
// Set Access Level
TeamShare.AccessLevel = 'Read';
//Parse contact Id into the sharing list
Integer i = clist.size();
while(i > 0) {
TeamShare.UserOrGroupId = clist[i].Id;//add to the team reports
i--;
}
}
// Insert the sharing record and capture the save result.
// The false parameter allows for partial processing if multiple records passed
// into the operation.
Database.SaveResult sr = Database.insert(TeamShare,false);
// Process the save results.
if(sr.isSuccess()){
// Indicates success
System.debug('Save Success');
}
else {
// Get first save result error.
Database.Error err = sr.getErrors()[0];
// Check if the error is related to trival access level.
// Access level must be more permissive than the object's default.
// These sharing records are not required and thus an insert exception is acceptable.
if(err.getStatusCode() == StatusCode.FIELD_FILTER_VALIDATION_EXCEPTION &&
err.getMessage().contains('AccessLevel')){
// Indicates success.
System.debug('Success on mapping error');
}
else{
// Indicates failure.
System.debug('Failed to map error');
}
}
}
}
SharingClassTest
@isTest
private class ScrumTeamSharingTest {
@isTest static void testTeamSharing() {
//create contact for test
List<Contact> users = new List<Contact>();
Account a = new Account();
a.Name = 'TestAcc';
insert a;
for (Integer j=0; j<5;j++) { //j number of contacts per account
users.add(new Contact(firstname ='Test'+j,
lastname ='Test'+j,
AccountId =a.Id));
}
insert users;
agf__ADM_Scrum_Team__c t = new agf__ADM_Scrum_Team__c();
t.Name='testTeam';
t.Account_ID__c=a.Id;
t.agf__Cloud__c='IT';
insert t;
System.debug('Inserted team & acct: ' + t.Name + ' ' + a.Name);
}
}