public void Main(string[] args) { using (var myDbContext = new MyDBContext()) { myDbContext.Database.EnsureDeleted(); myDbContext.Database.EnsureCreated(); var customer = new Customer() { FirstName = "TestFirstName", LastName = "TEstLAstNAme" }; myDbContext.Customers.Add(customer); var auditablePropCount = customer.GetType() .GetProperties() .Count(p => !p.GetCustomAttributes(typeof (DoNotAudit), true).Any()); var nonAuditablePropCount = customer.GetType() .GetProperties() .Count(p => p.GetCustomAttributes(typeof(DoNotAudit), true).Any()); myDbContext.SaveChanges("Test User"); customer.LastName = "TestLastName"; // This should throw an exception below myDbContext.SaveChanges("Test User"); Console.WriteLine($"Added object with {auditablePropCount} auditable properties and {nonAuditablePropCount} non-auditable properties." ); var auditLogs = myDbContext.GetAuditLogs().ToList(); Console.WriteLine($"Audit log contains {auditLogs.Count()} entries."); foreach (var auditLog in myDbContext.GetAuditLogs()) { Console.WriteLine($"AuditLogId:{auditLog.AuditLogId} TableName:{auditLog.TableName} ColumnName:{auditLog.ColumnName} OriginalValue:{auditLog.OriginalValue} NewValue:{auditLog.NewValue} EventDateTime:{auditLog.EventDateTime}"); } if (auditLogs.Count() == auditablePropCount) Console.WriteLine("Test succeeded."); else throw new Exception("Something is wrong."); Console.Read(); myDbContext.Database.EnsureDeleted(); } }
public void ShouldAddData() { using (var db = _provider.GetService<TestDbContext>()) { // Arrange db.SeedTestData(); var expectedCount = 5; //// Act var customer = new Customer { CustomerId = 5, FirstName = "Misty", LastName = "Shock" }; db.Customers.Add(customer); db.SaveChanges(_currentUser); var actualCount = db.Customers.Count(); //// Assert Assert.Equal(expectedCount, actualCount); Assert.True(true); } }
public void ShouldCreateAuditLogs() { using (var db = _provider.GetService<TestDbContext>()) { // Arrange var expectedCount = 1; // Act var customer = new Customer { CustomerId = 5, FirstName = "Misty", LastName = "Shock" }; db.Customers.Add(customer); db.SaveChanges(_currentUser); var auditLogs = db.GetAuditLogs().ToList(); var first = auditLogs.FirstOrDefault() as CustomAuditLog; // Assert Assert.Equal(expectedCount, auditLogs.Count); Assert.NotNull(first); var differences = first.Differences; var diff = JsonConvert.DeserializeObject<List<PropertyDiff>>(differences); Assert.Equal(diff.Count, 3); // should be 3 fields -> Id, FirstName, LastName } }