public async Task Test_Commit_Writes_Record() { // ARRANGE Mock <ILogger <VirtualBridgeData> > loggerMock = MockFactory.CreateLoggerMock <VirtualBridgeData>(); Mock <ILogger <AuditHeaderRepository> > auditHeaderRepositoryLoggerMock = MockFactory.CreateLoggerMock <AuditHeaderRepository>(); DbContextOptions <DataContext> dbOptions = TestUtils.DbContextOptionsInMemory <TestBeginCommit>( nameof(this.Test_Commit_Writes_Record)); await using DataContext dataContext = new DataContext(dbOptions); AuditHeaderRepository auditHeaderRepository = new AuditHeaderRepository( logger: auditHeaderRepositoryLoggerMock.Object, dataContext: dataContext); Mock <IOrganisationRepository> organisationRepositoryMock = MockFactory.CreateRepositoryMock <IOrganisationRepository>(); VirtualBridgeData data = new VirtualBridgeData( logger: loggerMock.Object, dataContext: dataContext, auditHeaderRepository: auditHeaderRepository, organisationRepository: organisationRepositoryMock.Object); IWho who = Create.Who(); // ACT IAuditHeaderWithAuditDetails auditHeader = await data.BeginTransactionAsync( who : who, auditEvent : EAuditEvent.OrganisationMaintenance) .ConfigureAwait(false); auditHeader.AuditDetails.Add( AuditDetail.CreateForCreate( auditHeader: auditHeader, tableName: "Organisation", columnName: "Name", recordId: Guid.NewGuid(), newValue: "NewValue")); await data.CommitTransactionAsync(who, auditHeader) .ConfigureAwait(false); // ASSERT int auditHeadersCount = await dataContext.AuditHeaders.CountAsync() .ConfigureAwait(false); int auditDetailsCount = await dataContext.AuditDetails.CountAsync() .ConfigureAwait(false); Assert.AreEqual(1, auditHeadersCount); Assert.AreEqual(1, auditDetailsCount); }
public async Task Test_With_Valid_Values() { // ARRANGE Mock <ILogger <AuditHeaderRepository> > loggerMock = TestUtilities.MockFactory.CreateLoggerMock <AuditHeaderRepository>(); DbContextOptions <DataContext> dbOptions = TestUtils.DbContextOptionsInMemory <CreateAsyncTests>(nameof(this.Test_With_Valid_Values)); await using DataContext dataContext = new DataContext(dbOptions); IAuditHeaderRepository repository = new AuditHeaderRepository( loggerMock.Object, dataContext); IAuditHeaderWithAuditDetails auditHeader = new AuditHeaderWithAuditDetails( auditEvent: EAuditEvent.OrganisationMaintenance, username: "******", correlationId: Guid.NewGuid()); IAuditDetail auditDetail = AuditDetail.CreateForUpdate( auditHeader: auditHeader, tableName: "TableName", columnName: "ColumnName", recordId: Guid.NewGuid(), oldValue: "Old Value", newValue: "New Value"); auditHeader.AuditDetails.Add(auditDetail); IWho who = new Who( "TestController", "Action", "/TestController/Action", string.Empty); // ACT await repository.CreateAsync(who, auditHeader) .ConfigureAwait(false); // ASSERT Assert.AreEqual(1, await dataContext.AuditHeaders.CountAsync().ConfigureAwait(false)); Assert.AreEqual(1, await dataContext.AuditDetails.CountAsync().ConfigureAwait(false)); }