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);
        }