public void All() { var identitySeedCat = TestContext.GetIdentitySeed(x => x.Inheritance_TPC_Animals, Inheritance_TPC_Cat.Create); var identitySeedDog = TestContext.GetIdentitySeed(x => x.Inheritance_TPC_Animals, Inheritance_TPC_Dog.Create); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Inheritance_TPC_Animals); var audit = AuditHelper.AutoSaveAudit(); audit.Configuration.Exclude(x => true); using (var ctx = new TestContext()) { TestContext.Insert(ctx, x => x.Inheritance_TPC_Animals, Inheritance_TPC_Cat.Create, 1); TestContext.Insert(ctx, x => x.Inheritance_TPC_Animals, Inheritance_TPC_Dog.Create, 2); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(0, entries.Count); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(0, entries.Count); } } } }
public async Task IsNotNull_Async() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Basics); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Basics); var audit = AuditHelper.AutoSaveAudit(); using (var ctx = new TestContext()) { TestContext.Insert(ctx, x => x.Entity_Basics, 3); await ctx.SaveChangesAsync(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityAdded, entries[0].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[1].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); Assert.AreEqual(2, entries[1].Properties.Count); Assert.AreEqual(2, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityAdded, entries[0].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[1].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); Assert.AreEqual(2, entries[1].Properties.Count); Assert.AreEqual(2, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("0", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].NewValue); } } } }
public void EntitySoftDeleted() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Basics); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Basics); TestContext.Insert(x => x.Entity_Basics, 3); var audit = AuditHelper.AutoSaveWithAuditEntryPropertyFactory(); audit.Configuration.SoftDeleted(x => true); using (var ctx = new TestContext()) { ctx.Entity_Basics.ToList().ForEach(x => x.ColumnInt++); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[0].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[1].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); Assert.AreEqual(2, entries[1].Properties.Count); Assert.AreEqual(2, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("CustomPropertyName", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[0].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[1].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[2].Properties[propertyIndex]).ExtendedValue); propertyIndex = 1; Assert.AreEqual("CustomPropertyName", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(0, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(3, entries[2].Properties[propertyIndex].NewValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[0].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[1].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[2].Properties[propertyIndex]).ExtendedValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[0].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[1].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basics), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); Assert.AreEqual(2, entries[1].Properties.Count); Assert.AreEqual(2, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("CustomPropertyName", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[0].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[1].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[2].Properties[propertyIndex]).ExtendedValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("CustomPropertyName", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("CustomPropertyName", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("0", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("3", entries[2].Properties[propertyIndex].NewValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[0].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[1].Properties[propertyIndex]).ExtendedValue); Assert.AreEqual("CustomExtendedValue", ((AuditEntryProperty_Extended)entries[2].Properties[propertyIndex]).ExtendedValue); } } } }
public void All() { var identitySeedCat = TestContext.GetIdentitySeed(x => x.Inheritance_TPC_Animals, Inheritance_TPC_Cat.Create); var identitySeedDog = TestContext.GetIdentitySeed(x => x.Inheritance_TPC_Animals, Inheritance_TPC_Dog.Create); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Inheritance_TPC_Animals); var audit = AuditHelper.AutoSaveAudit(); audit.Configuration.ExcludeProperty(); audit.Configuration.IncludeProperty(); using (var ctx = new TestContext()) { TestContext.Insert(ctx, x => x.Inheritance_TPC_Animals, Inheritance_TPC_Cat.Create, 1); TestContext.Insert(ctx, x => x.Inheritance_TPC_Animals, Inheritance_TPC_Dog.Create, 2); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityAdded, entries[0].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[1].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPC_Animals), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPC_Animals), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPC_Animals), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Inheritance_TPC_Cat).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPC_Dog).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPC_Dog).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(3, entries[0].Properties.Count); Assert.AreEqual(3, entries[1].Properties.Count); Assert.AreEqual(3, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeedCat + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeedDog + 1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeedDog + 2, entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(0, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[2].Properties[propertyIndex].NewValue); // ColumnCat | ColumnDog propertyIndex = 2; Assert.AreEqual("ColumnCat", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(0, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityAdded, entries[0].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[1].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPC_Animals), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPC_Animals), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPC_Animals), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Inheritance_TPC_Cat).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPC_Dog).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPC_Dog).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(3, entries[0].Properties.Count); Assert.AreEqual(3, entries[1].Properties.Count); Assert.AreEqual(3, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeedCat + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeedDog + 1).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeedDog + 2).ToString(), entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("0", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("0", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1", entries[2].Properties[propertyIndex].NewValue); // ColumnCat | ColumnDog propertyIndex = 2; Assert.AreEqual("ColumnCat", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("0", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("0", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1", entries[2].Properties[propertyIndex].NewValue); } } } }
public void UseUtc() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Basics); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Basics); using (var ctx = new TestContext()) { ctx.SaveChanges(); } DateTime dateTimeNow = DateTime.Now; DateTime dateUTtcTimeNow = DateTime.UtcNow; var audit = AuditHelper.AutoSaveAudit(); using (var ctx = new TestContext()) { audit.Configuration.UseUtcDateTime = false; TestContext.Insert(ctx, x => x.Entity_Basics, 3); dateTimeNow = DateTime.Now; ctx.SaveChanges(audit); } { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.IsTrue(Math.Abs((entries[0].CreatedDate - dateTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[1].CreatedDate - dateTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[2].CreatedDate - dateTimeNow).TotalMinutes) < 1); } } using (var ctx = new TestContext()) { audit.Entries.Clear(); audit.Configuration.UseUtcDateTime = true; TestContext.Insert(ctx, x => x.Entity_Basics, 3); dateUTtcTimeNow = DateTime.UtcNow; ctx.SaveChanges(audit); } { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.IsTrue(Math.Abs((entries[0].CreatedDate - dateUTtcTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[1].CreatedDate - dateUTtcTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[2].CreatedDate - dateUTtcTimeNow).TotalMinutes) < 1); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).ToList(); // Entries { // Entries Count Assert.AreEqual(6, entries.Count); // Entries State Assert.IsTrue(Math.Abs((entries[0].CreatedDate - dateTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[1].CreatedDate - dateTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[2].CreatedDate - dateTimeNow).TotalMinutes) < 1); // Entries State Assert.IsTrue(Math.Abs((entries[3].CreatedDate - dateUTtcTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[4].CreatedDate - dateUTtcTimeNow).TotalMinutes) < 1); Assert.IsTrue(Math.Abs((entries[5].CreatedDate - dateUTtcTimeNow).TotalMinutes) < 1); } } } }
public void IgnorePropertyUnchanged_IsTrue() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Complexes); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Complexes); TestContext.Insert(x => x.Entity_Complexes, 1); var audit = AuditHelper.AutoSaveAudit(); Assert.AreEqual(true, audit.Configuration.IgnorePropertyUnchanged); using (var ctx = new TestContext()) { ctx.Entity_Complexes.ToList().ForEach(x => x.Info.Info.ColumnInt++); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(1, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityModified, entries[0].State); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); // Info.Info.ColumnInt propertyIndex = 1; Assert.AreEqual("Info.Info.ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual(1000000, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1000001, entries[0].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); // Info.Info.ColumnInt propertyIndex = 1; Assert.AreEqual("Info.Info.ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("1000000", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1000001", entries[0].Properties[propertyIndex].NewValue); } } } }
public void Entity_Complex() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Complexes); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Complexes); TestContext.Insert(x => x.Entity_Complexes, 3); var audit = AuditHelper.AutoSaveAudit(); using (var ctx = new TestContext()) { ctx.Entity_Complexes.ToList().ForEach(x => { x.ColumnInt++; x.Info.ColumnInt++; x.Info.Info.ColumnInt++; }); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityModified, entries[0].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[1].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Complexes), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Complexes), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Complexes), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Complex).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Complex).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Complex).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(4, entries[0].Properties.Count); Assert.AreEqual(4, entries[1].Properties.Count); Assert.AreEqual(4, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(0, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(3, entries[2].Properties[propertyIndex].NewValue); // Info.ColumnInt propertyIndex = 2; Assert.AreEqual("Info.ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(1000, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1001, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(1002, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1001, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1002, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(1003, entries[2].Properties[propertyIndex].NewValue); // Info.Info.ColumnInt propertyIndex = 3; Assert.AreEqual("Info.Info.ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.Info.ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.Info.ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(1000000, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1000001, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(1000002, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1000001, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1000002, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(1000003, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityModified, entries[0].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[1].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Complexes), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Complexes), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Complexes), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Complex).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Complex).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Complex).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(4, entries[0].Properties.Count); Assert.AreEqual(4, entries[1].Properties.Count); Assert.AreEqual(4, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("0", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("3", entries[2].Properties[propertyIndex].NewValue); // Info.ColumnInt propertyIndex = 2; Assert.AreEqual("Info.ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("1000", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1001", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("1002", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1001", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1002", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1003", entries[2].Properties[propertyIndex].NewValue); // Info.Info.ColumnInt propertyIndex = 3; Assert.AreEqual("Info.Info.ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.Info.ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Info.Info.ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("1000000", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1000001", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("1000002", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1000001", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1000002", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1000003", entries[2].Properties[propertyIndex].NewValue); } } } }
public void EntityModified_IsTrue() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Basic_WithStrings); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Basic_WithStrings); TestContext.Insert(x => x.Entity_Basic_WithStrings, 3); var audit = AuditHelper.AutoSaveAudit(); audit.Configuration.IgnorePropertyUnchanged = false; using (var ctx = new TestContext()) { ctx.Entity_Basic_WithStrings.ToList().ForEach(x => x.ColumnInt++); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityModified, entries[0].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[1].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_WithStrings), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_WithStrings), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_WithStrings), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic_WithString).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_WithString).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_WithString).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(3, entries[0].Properties.Count); Assert.AreEqual(3, entries[1].Properties.Count); Assert.AreEqual(3, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(0, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(3, entries[2].Properties[propertyIndex].NewValue); // ColumnString propertyIndex = 2; Assert.AreEqual("ColumnString", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnString", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnString", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityModified, entries[0].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[1].State); Assert.AreEqual(AuditEntryState.EntityModified, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_WithStrings), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_WithStrings), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_WithStrings), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic_WithString).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_WithString).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_WithString).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(3, entries[0].Properties.Count); Assert.AreEqual(3, entries[1].Properties.Count); Assert.AreEqual(3, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("0", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("3", entries[2].Properties[propertyIndex].NewValue); // ColumnString propertyIndex = 2; Assert.AreEqual("ColumnString", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnString", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnString", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].NewValue); } } } }
public void Many() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Basic_Manies); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Basic_Manies); var audit = AuditHelper.AutoSaveAudit(); audit.Configuration.Format <Entity_Basic_Many>(x => new { x.Column1, x.Column2, x.Column3 }, o => 1000 + (int)o); using (var ctx = new TestContext()) { TestContext.Insert(ctx, x => x.Entity_Basic_Manies, 3); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityAdded, entries[0].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[1].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_Manies), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_Manies), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_Manies), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic_Many).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_Many).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_Many).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(4, entries[0].Properties.Count); Assert.AreEqual(4, entries[1].Properties.Count); Assert.AreEqual(4, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); // Column1 propertyIndex = 1; Assert.AreEqual("Column1", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column1", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column1", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].NewValue); // Column2 propertyIndex = 2; Assert.AreEqual("Column2", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column2", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column2", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].NewValue); // Column3 propertyIndex = 3; Assert.AreEqual("Column3", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column3", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column3", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntityAdded, entries[0].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[1].State); Assert.AreEqual(AuditEntryState.EntityAdded, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_Manies), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_Manies), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Basic_Manies), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Basic_Many).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_Many).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Basic_Many).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(4, entries[0].Properties.Count); Assert.AreEqual(4, entries[1].Properties.Count); Assert.AreEqual(4, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); // Column1 propertyIndex = 1; Assert.AreEqual("Column1", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column1", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column1", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1000", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1001", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1002", entries[2].Properties[propertyIndex].NewValue); // Column2 propertyIndex = 2; Assert.AreEqual("Column2", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column2", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column2", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1000", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1001", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1002", entries[2].Properties[propertyIndex].NewValue); // Column3 propertyIndex = 3; Assert.AreEqual("Column3", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column3", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("Column3", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(null, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(null, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1000", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1001", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("1002", entries[2].Properties[propertyIndex].NewValue); } } } }
public void Inheritance_TPT() { var identitySeed = TestContext.GetIdentitySeed(x => x.Inheritance_TPT_Animals, Inheritance_TPT_Dog.Create); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Inheritance_TPT_Animals); TestContext.Insert(x => x.Inheritance_TPT_Animals, Inheritance_TPT_Cat.Create, 1); TestContext.Insert(x => x.Inheritance_TPT_Animals, Inheritance_TPT_Dog.Create, 2); var audit = AuditHelper.AutoSaveAudit(); audit.Configuration.SoftDeleted(x => true); using (var ctx = new TestContext()) { ctx.Inheritance_TPT_Animals.ToList().ForEach(x => { x.ColumnInt++; var cat = x as Inheritance_TPT_Cat; var dog = x as Inheritance_TPT_Dog; if (cat != null) { cat.ColumnCat++; } if (dog != null) { dog.ColumnDog++; } }); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries.OrderBy(x => x.EntityTypeName).ThenBy(x => x.AuditEntryID).ToList(); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[0].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[1].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPT_Animals), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPT_Animals), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPT_Animals), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Inheritance_TPT_Cat).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPT_Dog).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPT_Dog).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(3, entries[0].Properties.Count); Assert.AreEqual(3, entries[1].Properties.Count); Assert.AreEqual(3, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(0, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].NewValue); // ColumnCat | ColumnDog propertyIndex = 2; Assert.AreEqual("ColumnCat", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(0, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(0, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.EntityTypeName).ThenBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[0].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[1].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPT_Animals), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPT_Animals), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Inheritance_TPT_Animals), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Inheritance_TPT_Cat).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPT_Dog).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Inheritance_TPT_Dog).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(3, entries[0].Properties.Count); Assert.AreEqual(3, entries[1].Properties.Count); Assert.AreEqual(3, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("0", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("0", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].NewValue); // ColumnCat | ColumnDog propertyIndex = 2; Assert.AreEqual("ColumnCat", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnDog", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("0", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("0", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].NewValue); } } } }
public void Entity_Proxy() { var identitySeed = TestContext.GetIdentitySeed(x => x.Entity_Proxies); TestContext.DeleteAll(x => x.AuditEntryProperties); TestContext.DeleteAll(x => x.AuditEntries); TestContext.DeleteAll(x => x.Entity_Proxies); TestContext.Insert(x => x.Entity_Proxies, 3); var audit = AuditHelper.AutoSaveAudit(); audit.Configuration.SoftDeleted(x => true); using (var ctx = new TestContext()) { var list = ctx.Entity_Proxies.ToList(); foreach (var item in list) { // ENSURE it's proxy Assert.AreNotEqual(item.GetType(), ObjectContext.GetObjectType(item.GetType())); } list.ForEach(x => x.ColumnInt++); ctx.SaveChanges(audit); } // UnitTest - Audit { var entries = audit.Entries; // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[0].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[1].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Proxies), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Proxies), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Proxies), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Proxy).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Proxy).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Proxy).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); Assert.AreEqual(2, entries[1].Properties.Count); Assert.AreEqual(2, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(identitySeed + 1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(identitySeed + 3, entries[2].Properties[propertyIndex].NewValue); propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual(0, entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual(2, entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual(1, entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual(2, entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual(3, entries[2].Properties[propertyIndex].NewValue); } } // UnitTest - Audit (Database) { using (var ctx = new TestContext()) { // ENSURE order var entries = ctx.AuditEntries.OrderBy(x => x.AuditEntryID).Include(x => x.Properties).ToList(); entries.ForEach(x => x.Properties = x.Properties.OrderBy(y => y.AuditEntryPropertyID).ToList()); // Entries { // Entries Count Assert.AreEqual(3, entries.Count); // Entries State Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[0].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[1].State); Assert.AreEqual(AuditEntryState.EntitySoftDeleted, entries[2].State); // Entries EntitySetName Assert.AreEqual(TestContext.TypeName(x => x.Entity_Proxies), entries[0].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Proxies), entries[1].EntitySetName); Assert.AreEqual(TestContext.TypeName(x => x.Entity_Proxies), entries[2].EntitySetName); // Entries TypeName Assert.AreEqual(typeof(Entity_Proxy).Name, entries[0].EntityTypeName); Assert.AreEqual(typeof(Entity_Proxy).Name, entries[1].EntityTypeName); Assert.AreEqual(typeof(Entity_Proxy).Name, entries[2].EntityTypeName); } // Properties { var propertyIndex = -1; // Properties Count Assert.AreEqual(2, entries[0].Properties.Count); Assert.AreEqual(2, entries[1].Properties.Count); Assert.AreEqual(2, entries[2].Properties.Count); // ID propertyIndex = 0; Assert.AreEqual("ID", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ID", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual((identitySeed + 1).ToString(), entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 2).ToString(), entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual((identitySeed + 3).ToString(), entries[2].Properties[propertyIndex].NewValue); // ColumnInt propertyIndex = 1; Assert.AreEqual("ColumnInt", entries[0].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[1].Properties[propertyIndex].PropertyName); Assert.AreEqual("ColumnInt", entries[2].Properties[propertyIndex].PropertyName); Assert.AreEqual("0", entries[0].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[1].Properties[propertyIndex].OldValue); Assert.AreEqual("2", entries[2].Properties[propertyIndex].OldValue); Assert.AreEqual("1", entries[0].Properties[propertyIndex].NewValue); Assert.AreEqual("2", entries[1].Properties[propertyIndex].NewValue); Assert.AreEqual("3", entries[2].Properties[propertyIndex].NewValue); } } } }