public void Test_Passing_Valid_Values()
        {
            // ARRANGE
            AuditHeaderDto auditHeaderDto = Create.AuditHeader();
            AuditDetailDto auditDetailDto = Create.AuditDetail(auditHeaderDto);

            auditHeaderDto.SetPrivatePropertyValue(
                propName: nameof(AuditHeaderDto.AuditDetails),
                value: new List <AuditDetailDto>
            {
                auditDetailDto
            });

            // ACT
            IAuditHeaderWithAuditDetails auditHeader = auditHeaderDto.ToDomainWithAuditDetails();

            // ASSERT
            Assert.IsNotNull(auditHeader);
            Assert.AreEqual(auditHeader.Id, auditHeader.Id);
            Assert.AreEqual(auditHeader.AuditEvent, auditHeader.AuditEvent);
            Assert.AreEqual(auditHeader.TimeStamp, auditHeader.TimeStamp);
            Assert.AreEqual(auditHeader.Username, auditHeader.Username);
            Assert.AreEqual(auditHeader.CorrelationId, auditHeader.CorrelationId);
            Assert.IsNotNull(auditHeader.AuditDetails);
            Assert.AreEqual(1, auditHeader.AuditDetails.Count);
        }
Ejemplo n.º 2
0
        public void Test_Passing_Valid_Values()
        {
            // ARRANGE
            IAuditHeaderWithAuditDetails auditHeader = new AuditHeaderWithAuditDetails(
                auditEvent: EAuditEvent.OrganisationMaintenance,
                username: "******",
                correlationId: Guid.NewGuid());

            IAuditDetail auditDetail = new AuditDetail(
                id: Guid.NewGuid(),
                auditHeader: auditHeader,
                tableName: "TableName",
                columnName: "ColumnName",
                recordId: Guid.NewGuid(),
                oldValue: "Old Value",
                newValue: "New Value",
                databaseAction: EDatabaseAction.Update);

            auditHeader.AuditDetails.Add(auditDetail);

            // ACT
            AuditHeaderDto auditHeaderDto = AuditHeaderDto.ToDtoWithAuditDetails(auditHeader);

            // ASSERT
            Assert.AreEqual(auditHeader.Id, auditHeaderDto.Id);
            Assert.AreEqual(auditHeader.AuditEvent, auditHeaderDto.AuditEvent);
            Assert.AreEqual(auditHeader.TimeStamp, auditHeaderDto.TimeStamp);
            Assert.AreEqual(auditHeader.Username, auditHeaderDto.Username);
            Assert.AreEqual(auditHeader.CorrelationId, auditHeaderDto.CorrelationId);
            Assert.IsNotNull(auditHeaderDto.AuditDetails);
        }
Ejemplo n.º 3
0
        public void Test_With_Null_AuditHeader_Throws_Exception()
        {
            // ARRANGE
            AuditHeaderDto auditHeaderDto = Create.AuditHeader();
            AuditDetailDto auditDetailDto = Create.AuditDetail(auditHeaderDto);

            auditDetailDto.SetPrivatePropertyValue(
                propName: nameof(AuditDetailDto.AuditHeader),
                value: (AuditHeaderDto)null);

            // ACT
            _ = auditDetailDto.ToDomain();
        }
Ejemplo n.º 4
0
        public async Task CommitTransactionAsync(IAuditHeaderWithAuditDetails?auditHeader)
        {
            if (auditHeader != null && auditHeader.AuditDetails.Any())
            {
                AuditHeaderDto auditHeaderDto =
                    AuditHeaderDto.ToDtoWithAuditDetails(auditHeader);
                this.context.AuditHeaders.Add(auditHeaderDto);
                await this.context.SaveChangesAsync()
                .ConfigureAwait(false);
            }

            this.context.Database.CommitTransaction();
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Creates an <see cref="AuditDetailDto"/>.
 /// </summary>
 /// <param name="auditHeader">The audit header.</param>
 /// <returns>Audit Detail.</returns>
 internal static AuditDetailDto AuditDetail(AuditHeaderDto auditHeader)
 {
     return(new AuditDetailDto(
                id: Guid.NewGuid(),
                auditHeaderId: auditHeader.Id,
                tableName: "TableName",
                columnName: "ColumnName",
                recordId: Guid.NewGuid(),
                oldValue: "Old Value",
                newValue: "New Value",
                databaseAction: EDatabaseAction.Update,
                auditHeader: auditHeader));
 }
Ejemplo n.º 6
0
        public void Test_Default_Constructor()
        {
            // ACT
            AuditHeaderDto auditHeaderDto = new AuditHeaderDto();

            // ASSERT
            Assert.AreEqual(Guid.Empty, auditHeaderDto.Id);
            Assert.AreEqual(EAuditEvent.Unknown, auditHeaderDto.AuditEvent);
            Assert.AreEqual(DateTime.MinValue, auditHeaderDto.TimeStamp);
            Assert.AreEqual(null, auditHeaderDto.Username);
            Assert.AreEqual(Guid.Empty, auditHeaderDto.CorrelationId);
            Assert.IsNull(auditHeaderDto.AuditDetails);
        }
Ejemplo n.º 7
0
        public void Test_Passing_Valid_Values()
        {
            // ARRANGE
            AuditHeaderDto auditHeaderDto = Create.AuditHeader();

            // ACT
            IAuditHeader auditHeader = auditHeaderDto.ToDomain();

            // ASSERT
            Assert.IsNotNull(auditHeader);
            Assert.AreEqual(auditHeaderDto.Id, auditHeader.Id);
            Assert.AreEqual(auditHeaderDto.AuditEvent, auditHeader.AuditEvent);
            Assert.AreEqual(auditHeaderDto.TimeStamp, auditHeader.TimeStamp);
            Assert.AreEqual(auditHeaderDto.Username, auditHeader.Username);
            Assert.AreEqual(auditHeaderDto.CorrelationId, auditHeader.CorrelationId);
        }
Ejemplo n.º 8
0
        public void Test_Passing_Valid_Values()
        {
            // ARRANGE
            AuditHeaderDto auditHeaderDto = Create.AuditHeader();
            AuditDetailDto auditDetailDto = Create.AuditDetail(auditHeaderDto);

            // ACT
            IAuditDetail auditDetail = auditDetailDto.ToDomain();

            // ASSERT
            Assert.IsNotNull(auditDetail);
            Assert.AreEqual(auditDetailDto.Id, auditDetail.Id);
            Assert.AreEqual(auditDetailDto.AuditHeaderId, auditDetail.AuditHeader.Id);
            Assert.AreEqual(auditDetailDto.TableName, auditDetail.TableName);
            Assert.AreEqual(auditDetailDto.ColumnName, auditDetail.ColumnName);
            Assert.AreEqual(auditDetailDto.RecordId, auditDetail.RecordId);
            Assert.AreEqual(auditDetailDto.OldValue, auditDetail.OldValue);
            Assert.AreEqual(auditDetailDto.NewValue, auditDetail.NewValue);
            Assert.AreEqual(auditDetailDto.DatabaseAction, auditDetail.DatabaseAction);
        }
Ejemplo n.º 9
0
        public void Test_Full_Constructor()
        {
            // ARRANGE
            Guid           paramId             = Guid.NewGuid();
            AuditHeaderDto paramAuditHeaderDto = new AuditHeaderDto(
                Guid.NewGuid(),
                EAuditEvent.OrganisationMaintenance,
                DateTime.Now,
                "Steve.Wright",
                Guid.NewGuid(),
                new List <AuditDetailDto>());
            const string          paramTableName      = "TableName";
            const string          paramColumnName     = "ColumnName";
            Guid                  paramRecordId       = Guid.NewGuid();
            const string          paramOldValue       = "Old Value";
            const string          paramNewValue       = "new Value";
            const EDatabaseAction paramDatabaseAction = EDatabaseAction.Update;

            // ACT
            AuditDetailDto auditDetailDto = new AuditDetailDto(
                id: paramId,
                auditHeaderId: paramAuditHeaderDto.Id,
                tableName: paramTableName,
                columnName: paramColumnName,
                recordId: paramRecordId,
                oldValue: paramOldValue,
                newValue: paramNewValue,
                databaseAction: paramDatabaseAction,
                auditHeader: paramAuditHeaderDto);

            // ASSERT
            Assert.AreEqual(paramId, auditDetailDto.Id);
            Assert.AreEqual(paramAuditHeaderDto.Id, auditDetailDto.AuditHeaderId);
            Assert.AreEqual(paramTableName, auditDetailDto.TableName);
            Assert.AreEqual(paramColumnName, auditDetailDto.ColumnName);
            Assert.AreEqual(paramRecordId, auditDetailDto.RecordId);
            Assert.AreEqual(paramOldValue, auditDetailDto.OldValue);
            Assert.AreEqual(paramNewValue, auditDetailDto.NewValue);
            Assert.AreEqual(paramDatabaseAction, auditDetailDto.DatabaseAction);
            Assert.AreEqual(paramAuditHeaderDto, auditDetailDto.AuditHeader);
        }
Ejemplo n.º 10
0
        /// <inheritdoc />
        public async Task CreateAsync(
            IWho who,
            IAuditHeaderWithAuditDetails auditHeader)
        {
            this.logger.LogTrace(
                "ENTRY {Method}(who, auditHeader) {@Who} {@AuditHeader}",
                nameof(this.CreateAsync),
                who,
                auditHeader);

            AuditHeaderDto auditHeaderDto =
                AuditHeaderDto.ToDtoWithAuditDetails(auditHeader);

            this.context.AuditHeaders.Add(auditHeaderDto);
            await this.context.SaveChangesAsync()
            .ConfigureAwait(false);

            this.logger.LogTrace(
                "EXIT {Method}(who) {@Who}",
                nameof(this.CreateAsync),
                who);
        }
Ejemplo n.º 11
0
        public void Test_Basic_Constructor()
        {
            // ARRANGE
            Guid paramId = Guid.NewGuid();
            const EAuditEvent paramAuditEvent        = EAuditEvent.OrganisationMaintenance;
            DateTime          paramTimeStamp         = DateTime.Now;
            const string      paramUsername          = "******";
            Guid paramCorrelationId                  = Guid.NewGuid();
            IList <AuditDetailDto> paramAuditDetails = new List <AuditDetailDto>
            {
                new AuditDetailDto(
                    id: Guid.NewGuid(),
                    auditHeaderId: paramId,
                    tableName: "TableName",
                    columnName: "ColumnName",
                    recordId: Guid.NewGuid(),
                    oldValue: "old value",
                    newValue: "new value",
                    databaseAction: EDatabaseAction.Update)
            };

            // ACT
            AuditHeaderDto auditHeaderDto = new AuditHeaderDto(
                id: paramId,
                auditEvent: paramAuditEvent,
                timeStamp: paramTimeStamp,
                username: paramUsername,
                correlationId: paramCorrelationId,
                auditDetails: paramAuditDetails);

            // ASSERT
            Assert.AreEqual(paramId, auditHeaderDto.Id);
            Assert.AreEqual(paramAuditEvent, auditHeaderDto.AuditEvent);
            Assert.AreEqual(paramTimeStamp, auditHeaderDto.TimeStamp);
            Assert.AreEqual(paramUsername, auditHeaderDto.Username);
            Assert.AreEqual(paramCorrelationId, auditHeaderDto.CorrelationId);
            Assert.AreSame(paramAuditDetails, auditHeaderDto.AuditDetails);
        }