public async Task when_an_entity_with_audit_is_modified__the_modified_audit_fields_are_persisted() { // GIVEN a persisted entity: using (IDetachedContext <AuditingContext> detachedContext = new DetachedContext <AuditingContext>()) { await detachedContext.Set <EntityForAuditing>().UpdateAsync(new EntityForAuditing { Name = "Test" }); await detachedContext.SaveChangesAsync(); EntityForAuditing persisted = await detachedContext.Set <EntityForAuditing>().LoadAsync(1); // WHEN the entity is modified SessionInfoProvider.Default.CurrentUser = "******"; await detachedContext.Set <EntityForAuditing>().UpdateAsync(new EntityForAuditing { Id = 1, Name = "Test Modified" }); await detachedContext.SaveChangesAsync(); EntityForAuditing persisted2 = await detachedContext.Set <EntityForAuditing>().LoadAsync(1); // THEN 'created' audit fields are not modified. Assert.Equal(persisted.CreatedDate, persisted2.CreatedDate); Assert.Equal(persisted.CreatedBy, persisted2.CreatedBy); // and 'modified' audit fields are set. Assert.Equal("Test User 2", persisted2.ModifiedBy); Assert.Equal(DateTime.Now.Date, persisted2.ModifiedDate.Date); } }
public async Task when_an_entity_with_audit_is_created__the_created_audit_fields_are_persisted() { using (IDetachedContext <AuditingContext> detachedContext = new DetachedContext <AuditingContext>()) { SessionInfoProvider.Default.CurrentUser = "******"; await detachedContext.Set <EntityForAuditing>().UpdateAsync(new EntityForAuditing { Name = "Test" }); await detachedContext.SaveChangesAsync(); EntityForAuditing persisted = await detachedContext.Set <EntityForAuditing>().LoadAsync(1); Assert.Equal("Test User", persisted.CreatedBy); Assert.Equal(DateTime.Now.Date, persisted.CreatedDate.Date); } }