private async Task ActAndAssert(AuditRecord audit) { var repo = new SqlServerAuditRepository(); using (var connection = _databaseFixture.ConnectionFactory.CreateDatabaseConnection()) { connection.Open(); using (var transaction = connection.BeginTransaction()) { var createdAudit = await repo.CreateAudit(audit, transaction).ConfigureAwait(false); var auditResult = await connection.QuerySingleOrDefaultAsync <AuditRecord>( $"SELECT AuditId, Action, ActorName, AuditDate, EntityUri, MemberKey, State, RedactedState FROM {Tables.Audit} WHERE AuditId = @AuditId", new { createdAudit.AuditId }, transaction ).ConfigureAwait(false); Assert.NotNull(auditResult); Assert.Equal(audit.Action, auditResult.Action); Assert.Equal(audit.ActorName, auditResult.ActorName); Assert.Equal(audit.AuditDate, auditResult.AuditDate); Assert.Equal(audit.EntityUri, auditResult.EntityUri); Assert.Equal(audit.MemberKey, auditResult.MemberKey); Assert.Equal(audit.State, auditResult.State); Assert.Equal(audit.RedactedState, auditResult.RedactedState); transaction.Rollback(); } } }
public async Task Create_audit_throws_ArgumentNullException_if_transaction_is_null() { var repo = new SqlServerAuditRepository(); await Assert.ThrowsAsync <ArgumentNullException>(async() => await repo.CreateAudit(new AuditRecord(), null).ConfigureAwait(false)).ConfigureAwait(false); }