64 lines
2.5 KiB
C#
64 lines
2.5 KiB
C#
using e_suite.Database.Audit.AuditEngine;
|
|
using e_suite.Database.Audit.UnitTests.Helpers;
|
|
using e_suite.Database.Audit.UnitTests.Helpers.Tables;
|
|
using NUnit.Framework;
|
|
|
|
namespace e_suite.Database.Audit.UnitTests.AuditEngineCore;
|
|
|
|
[TestFixture]
|
|
public class HardDeleteUnitTests : AuditEngineCoreTestBase
|
|
{
|
|
[TestCase("")]
|
|
[TestCase("Test Comment")]
|
|
public async Task AddRow_TableHasSelfReferenceAndReferenceNull_AuditForHardDeleteRecorded(string auditComment)
|
|
{
|
|
//Arrrange
|
|
var auditUserDetails = new AuditUserDetails
|
|
{
|
|
UserId = 1,
|
|
UserDisplayName = "Testy McTester",
|
|
Comment = auditComment
|
|
};
|
|
|
|
var leafTreeValue = new DeletableTreeValue
|
|
{
|
|
Id = 30000,
|
|
Name = "Leaf Level item",
|
|
};
|
|
|
|
testDBContext.DeletableTreeValues.Add(leafTreeValue);
|
|
await testDBContext.NoAuditSaveChangesAsync();
|
|
|
|
//Act
|
|
var itemToEdit = testDBContext.DeletableTreeValues.Single(x => x.Id == leafTreeValue.Id);
|
|
testDBContext.DeletableTreeValues.Remove(itemToEdit);
|
|
await testDBContext.SaveChangesAsync(auditUserDetails);
|
|
|
|
//Assert
|
|
Assert.That(testDBContext.DeletableTreeValues.Count(), Is.EqualTo(0));
|
|
|
|
Assert.That(testDBContext.AuditDetails.Count(), Is.EqualTo(1));
|
|
|
|
var auditDetail = testDBContext.AuditDetails.First();
|
|
Assert.That(auditDetail.UserDisplayName, Is.EqualTo(auditUserDetails.UserDisplayName));
|
|
Assert.That(auditDetail.UserId, Is.EqualTo(auditUserDetails.UserId));
|
|
Assert.That(auditDetail.Comment, Is.EqualTo(auditUserDetails.Comment));
|
|
|
|
Assert.That(auditDetail.Id, Is.EqualTo(1));
|
|
|
|
Assert.That(auditDetail.Type, Is.EqualTo(AuditType.Purge.ToString()));
|
|
|
|
Assert.That(testDBContext.AuditEntries.Count(), Is.EqualTo(1));
|
|
|
|
var auditEntries = testDBContext.AuditEntries.ToList();
|
|
var childAuditEntry = auditEntries[0];
|
|
Assert.That(childAuditEntry.Id, Is.EqualTo(1));
|
|
Assert.That(childAuditEntry.EntityName, Is.EqualTo(typeof(DeletableTreeValue).FullName));
|
|
Assert.That(childAuditEntry.DisplayName, Is.EqualTo(leafTreeValue.Name));
|
|
Assert.That(childAuditEntry.AuditLogId, Is.EqualTo(auditDetail.Id));
|
|
Assert.That(childAuditEntry.PrimaryKey, Is.EqualTo($"{{\"Id\":{leafTreeValue.Id}}}"));
|
|
Assert.That(childAuditEntry.IsPrimary, Is.True);
|
|
|
|
Assert.That(testDBContext.AuditDrillHierarchies.Count(), Is.EqualTo(0));
|
|
}
|
|
} |