public void publishes_delete_audit() { var context = CreateUserContext(); var mockPublisher = new Mock<IAuditEventPublisher>(); var id = AddGenderAndReturnId(); //act using (var subject = new TestAuditableContext(GetEFConnectionString(), context, mockPublisher.Object, _defaultMockConfiguration.Object)) { var currentEntity = subject.Genders.Single(g => g.Id == id); subject.DeleteObject(currentEntity); subject.SaveChanges(); } //assert mockPublisher.Verify ( m => m.Publish ( It.Is<AuditEvent> ( auditEvent => EventMatchesContext(auditEvent, context) && auditEvent.AuditEntities.Count() == 1 && auditEvent.AuditEntities[0].AuditEntityAction == AuditEntityAction.Delete ) ), Times.Once() ); }
public void works_without_auditing() { int id; Exception noException = null; try { using (var subject = new TestAuditableContext(GetEFConnectionString())) { var entity = new Gender { Name = Guid.NewGuid().ToString() }; subject.Genders.AddObject(entity); subject.SaveChanges(); id = entity.Id; } Gender toUpdate; using (var subject = new TestAuditableContext(GetEFConnectionString())) { toUpdate = subject.Genders.Single(g => g.Id == id); } toUpdate.Name = Guid.NewGuid().ToString(); using (var subject = new TestAuditableContext(GetEFConnectionString())) { var currentEntity = subject.Genders.Single(g => g.Id == id); subject.Genders.ApplyCurrentValues(toUpdate); subject.SaveChanges(); } using (var subject = new TestAuditableContext(GetEFConnectionString())) { var currentEntity = subject.Genders.Single(g => g.Id == id); subject.DeleteObject(currentEntity); subject.SaveChanges(); } } catch (Exception ex) { noException = ex; } Assert.IsNull(noException); }
public void honors_false_configuration_on_delete() { var context = CreateUserContext(); var mockPublisher = new Mock<IAuditEventPublisher>(); var mockConfig = new Mock<IAuditConfiguration>(); mockConfig.Setup(m => m.ContainsEntityType(typeof(Gender))).Returns(false); var id = AddGenderAndReturnId(); //act using (var subject = new TestAuditableContext(GetEFConnectionString(), context, mockPublisher.Object, mockConfig.Object)) { var currentEntity = subject.Genders.Single(g => g.Id == id); subject.DeleteObject(currentEntity); subject.SaveChanges(); } //assert mockPublisher.Verify(m => m.Publish(It.IsAny<AuditEvent>()), Times.Never()); }