public void Test_AuditScope_SetTargetGetter() { var evs = new List <AuditEvent>(); Audit.Core.Configuration.Setup() .Use(x => x .OnInsertAndReplace(ev => { evs.Add(ev); })) .WithCreationPolicy(EventCreationPolicy.InsertOnEnd); var obj = new SomeClass() { Id = 1, Name = "Test" }; using (var scope = new AuditScopeFactory().Create("Test", () => new { ShouldNotUseThisObject = true })) { scope.SetTargetGetter(() => obj); obj.Id = 2; obj.Name = "NewTest"; } obj.Id = 3; obj.Name = "X"; Assert.AreEqual(1, evs.Count); Assert.AreEqual("SomeClass", evs[0].Target.Type); Assert.AreEqual(1, (evs[0].Target.Old as JObject).ToObject <SomeClass>().Id); Assert.AreEqual("Test", (evs[0].Target.Old as JObject).ToObject <SomeClass>().Name); Assert.AreEqual(2, (evs[0].Target.New as JObject).ToObject <SomeClass>().Id); Assert.AreEqual("NewTest", (evs[0].Target.New as JObject).ToObject <SomeClass>().Name); }
public void Test_AuditScope_SetTargetGetter_IsNull() { var evs = new List <AuditEvent>(); Audit.Core.Configuration.Setup() .Use(x => x .OnInsertAndReplace(ev => { evs.Add(ev); })) .WithCreationPolicy(EventCreationPolicy.InsertOnEnd); using (var scope = new AuditScopeFactory().Create("Test", () => new { ShouldNotUseThisObject = true })) { scope.SetTargetGetter(null); } Assert.AreEqual(1, evs.Count); Assert.IsNull(evs[0].Target); }