public void tracks_update()
        {
            //setup
            var subject = new TrackingAuditEvent(CreateUserContext());

            var entity = new Gender();
            entity.Name = Guid.NewGuid().ToString();
            int id;
            using (var addContext = CreateObjectContext())
            {
                addContext.Genders.AddObject(entity);
                addContext.SaveChanges();
                id = entity.Id;
            }
            entity = GetGenderById(id);
            entity.Name = Guid.NewGuid().ToString();
            using (var updateContext = CreateObjectContext())
            {
                var currentEntity = updateContext.Genders.Single(g => g.Id == id);
                updateContext.Genders.ApplyCurrentValues(entity);

                //act
                subject.TrackUpdate(updateContext.ObjectStateManager.GetObjectStateEntry(currentEntity));
            }

            //assert
            Assert.AreEqual(1, subject.AuditEntities.Count);
            var auditEntity = subject.AuditEntities[0];
            Assert.AreEqual(typeof(EntityUpdatedAudit), auditEntity.GetType());
        }