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);
        }
Exemplo n.º 2
0
        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))));
        }