예제 #1
0
        public void TestWithValidValuesThatAreNull()
        {
            // ARRANGE
            Guid                  paramId             = Guid.NewGuid();
            IAuditHeader          paramAuditHeader    = Create.AuditHeader();
            const string          paramTableName      = "Organisation";
            const string          paramColumnName     = "Id";
            Guid                  paramRecordId       = Guid.NewGuid();
            const EDatabaseAction paramDatabaseAction = EDatabaseAction.Update;

            // ACT
            IAuditDetail auditDetail = new AuditDetail(
                id: paramId,
                auditHeader: paramAuditHeader,
                tableName: paramTableName,
                columnName: paramColumnName,
                recordId: paramRecordId,
                oldValue: null,
                newValue: null,
                databaseAction: paramDatabaseAction);

            // ASSERT
            Assert.IsNull(auditDetail.OldValue);
            Assert.IsNull(auditDetail.NewValue);
        }
예제 #2
0
        public void TestWithValidValues()
        {
            // ARRANGE
            IAuditHeader paramAuditHeader = Create.AuditHeader();
            const string paramTableName   = "Organisation";
            const string paramColumnName  = "Id";
            Guid         paramRecordId    = Guid.NewGuid();
            const string paramNewValue    = "New Value";
            const string paramOldValue    = "Old Value";

            // ACT
            IAuditDetail auditDetail = AuditDetail.CreateForUpdate(
                paramAuditHeader,
                paramTableName,
                paramColumnName,
                paramRecordId,
                paramOldValue,
                paramNewValue);

            // ASSERT
            Assert.IsNotNull(auditDetail);
            Assert.AreNotEqual(paramRecordId, auditDetail.Id);
            Assert.AreSame(paramAuditHeader, auditDetail.AuditHeader);
            Assert.AreEqual(paramTableName, auditDetail.TableName);
            Assert.AreEqual(paramColumnName, auditDetail.ColumnName);
            Assert.AreEqual(paramRecordId, auditDetail.RecordId);
            Assert.AreEqual(paramOldValue, auditDetail.OldValue);
            Assert.AreEqual(paramNewValue, auditDetail.NewValue);
            Assert.AreEqual(EDatabaseAction.Update, auditDetail.DatabaseAction);
        }
예제 #3
0
        public void TestWithValidValues()
        {
            // ARRANGE
            Guid                  paramId             = Guid.NewGuid();
            IAuditHeader          paramAuditHeader    = Create.AuditHeader();
            const string          paramTableName      = "Organisation";
            const string          paramColumnName     = "Id";
            Guid                  paramRecordId       = Guid.NewGuid();
            const string          paramOldValue       = "Old Value";
            const string          paramNewValue       = "New Value";
            const EDatabaseAction paramDatabaseAction = EDatabaseAction.Update;

            // ACT
            IAuditDetail auditDetail = new AuditDetail(
                id: paramId,
                auditHeader: paramAuditHeader,
                tableName: paramTableName,
                columnName: paramColumnName,
                recordId: paramRecordId,
                oldValue: paramOldValue,
                newValue: paramNewValue,
                databaseAction: paramDatabaseAction);

            // ASSERT
            Assert.AreEqual(paramId, auditDetail.Id);
            Assert.AreSame(paramAuditHeader, auditDetail.AuditHeader);
            Assert.AreEqual(paramTableName, auditDetail.TableName);
            Assert.AreEqual(paramColumnName, auditDetail.ColumnName);
            Assert.AreEqual(paramRecordId, auditDetail.RecordId);
            Assert.AreEqual(paramOldValue, auditDetail.OldValue);
            Assert.AreEqual(paramNewValue, auditDetail.NewValue);
            Assert.AreEqual(paramDatabaseAction, auditDetail.DatabaseAction);
        }
예제 #4
0
 /// <summary>
 /// Factory method for creating for Delete event.
 /// </summary>
 /// <param name="auditHeader">Audit Header.</param>
 /// <param name="tableName">Table Name.</param>
 /// <param name="recordId">Record Id.</param>
 /// <returns>Audit Detail.</returns>
 public static IAuditDetail CreateForDelete(
     IAuditHeader auditHeader,
     string tableName,
     Guid recordId)
 {
     return(new AuditDetail(
                id: Guid.NewGuid(),
                auditHeader: auditHeader,
                tableName: tableName,
                columnName: "Id",
                recordId: recordId,
                oldValue: recordId.ToString(),
                newValue: null,
                databaseAction: EDatabaseAction.Delete));
 }
예제 #5
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);
        }
예제 #6
0
 /// <summary>
 /// Factory method for creating for Create event.
 /// </summary>
 /// <param name="auditHeader">Audit Header.</param>
 /// <param name="tableName">Table Name.</param>
 /// <param name="columnName">Column Name.</param>
 /// <param name="recordId">Record Id.</param>
 /// <param name="newValue">The new value.</param>
 /// <returns>Audit Detail.</returns>
 public static IAuditDetail CreateForCreate(
     IAuditHeader auditHeader,
     string tableName,
     string columnName,
     Guid recordId,
     string newValue)
 {
     return(new AuditDetail(
                id: Guid.NewGuid(),
                auditHeader: auditHeader,
                tableName: tableName,
                columnName: columnName,
                recordId: recordId,
                oldValue: null,
                newValue: newValue,
                databaseAction: EDatabaseAction.Create));
 }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AuditDetail"/> class.
 /// </summary>
 /// <param name="id">Audit Detail Id.</param>
 /// <param name="auditHeader">Audit Header.</param>
 /// <param name="tableName">Table Name.</param>
 /// <param name="columnName">Column Name.</param>
 /// <param name="recordId">Record Id.</param>
 /// <param name="oldValue">Old Value.</param>
 /// <param name="newValue">New vValue.</param>
 /// <param name="databaseAction">Database Action.</param>
 public AuditDetail(
     Guid id,
     IAuditHeader auditHeader,
     string tableName,
     string columnName,
     Guid recordId,
     string?oldValue,
     string?newValue,
     DatabaseAction databaseAction)
 {
     this.Id             = id;
     this.TableName      = tableName;
     this.ColumnName     = columnName;
     this.RecordId       = recordId;
     this.OldValue       = oldValue;
     this.NewValue       = newValue;
     this.DatabaseAction = databaseAction;
     this.AuditHeader    = auditHeader;
 }
예제 #8
0
        public void TestEmptyAuditDetailIdThrowsException()
        {
            // ARRANGE
            IAuditHeader          paramAuditHeader    = Create.AuditHeader();
            const string          paramTableName      = "Organisation";
            const string          paramColumnName     = "Id";
            Guid                  paramRecordId       = Guid.NewGuid();
            const string          paramOldValue       = "Old Value";
            const string          paramNewValue       = "New Value";
            const EDatabaseAction paramDatabaseAction = EDatabaseAction.Update;

            // ACT
            _ = new AuditDetail(
                id: Guid.Empty,
                auditHeader: paramAuditHeader,
                tableName: paramTableName,
                columnName: paramColumnName,
                recordId: paramRecordId,
                oldValue: paramOldValue,
                newValue: paramNewValue,
                databaseAction: paramDatabaseAction);
        }
예제 #9
0
        public void TestLongTableNameThrowsException()
        {
            // ARRANGE
            Guid                  paramId             = Guid.NewGuid();
            IAuditHeader          paramAuditHeader    = Create.AuditHeader();
            string                paramTableName      = new string('x', 500);
            const string          paramColumnName     = "Id";
            Guid                  paramRecordId       = Guid.NewGuid();
            const string          paramOldValue       = "Old Value";
            const string          paramNewValue       = "New Value";
            const EDatabaseAction paramDatabaseAction = EDatabaseAction.Update;

            // ACT
            _ = new AuditDetail(
                id: paramId,
                auditHeader: paramAuditHeader,
                tableName: paramTableName,
                columnName: paramColumnName,
                recordId: paramRecordId,
                oldValue: paramOldValue,
                newValue: paramNewValue,
                databaseAction: paramDatabaseAction);
        }