public void SetsTimestampsOnUpdateTest() { var auditPropertyManager = new AuditPropertyManager(); // can use any EntityWithId var photoGroup = new PhotoGroup(); _dbContext.Add(photoGroup); _dbContext.SaveChanges(); _dbContext.Entry(photoGroup).State = EntityState.Modified; var before = DateTimeOffset.Now; // TODO: see todo on interface IAuditPropertManager auditPropertyManager.SetTimestamps(_dbContext); var after = DateTimeOffset.Now; Assert.NotInRange(_dbContext.Entry(photoGroup).Property <DateTimeOffset>(Constants.InsertTimestampPropertyName).CurrentValue, before, after); Assert.InRange(_dbContext.Entry(photoGroup).Property <DateTimeOffset>(Constants.UpdateTimestampPropertyName).CurrentValue, before, after); Assert.NotEqual( _dbContext.Entry(photoGroup).Property <DateTimeOffset>(Constants.InsertTimestampPropertyName).CurrentValue, _dbContext.Entry(photoGroup).Property <DateTimeOffset>(Constants.UpdateTimestampPropertyName).CurrentValue); }
public void EnsureAuditPropertyCalled() { _dbContext.Database.EnsureCreated(); var mock = new Mock <IAuditPropertyManager>(); _dbContext.AuditPropertyManager = mock.Object; _dbContext.SaveChanges(); mock.Verify(x => x.SetTimestamps(It.Is <DbContext>(y => y.Equals(_dbContext)))); }