public void Given_site_and_employee_exists_when_RemoveAccidentRecordNotificationMemberToSite_Then_employee_is_removed_from_site_distribution_list() { // given long siteId = 1234; var site = new Site { Id = siteId }; Guid userId = Guid.NewGuid(); UserForAuditing user = new UserForAuditing() { Id = Guid.NewGuid() }; string nonEmployeeEmail = "*****@*****.**"; string nonEmployeeName = "Norman Notemployedhere"; site.AddNonEmployeeToAccidentRecordNotificationMembers(nonEmployeeName, nonEmployeeEmail, user); Site savedSite = null; _siteAddressRepository .Setup(x => x.SaveOrUpdate(It.IsAny<Site>())) .Callback<Site>(y => savedSite = y); _siteAddressRepository .Setup(x => x.GetById(site.Id)) .Returns(() => site); _userForAuditingRepository .Setup(x => x.GetByIdAndCompanyId(It.IsAny<Guid>(), It.IsAny<long>())) .Returns(user); // when var target = CreateSiteService(); target.RemoveNonEmployeeAccidentRecordNotificationMemberFromSite( siteId, nonEmployeeEmail, userId); // then Assert.IsNotNull(savedSite); Assert.IsNotNull(savedSite.AccidentRecordNotificationMembers); Assert.AreEqual(0, savedSite.AccidentRecordNotificationMembers.Count); }