Backend/e-suite.Modules.AuditLog/AuditLog.UnitTests/GetAuditLogEntriesUnitTests.cs
2026-01-20 21:50:10 +00:00

206 lines
6.4 KiB
C#

using AuditLog.UnitTests.Helpers;
using e_suite.Database.Audit.Tables.Audit;
using e_suite.Utilities.Pagination;
using NUnit.Framework;
namespace AuditLog.UnitTests;
[TestFixture]
public class GetAuditLogEntriesUnitTests : AuditLogTestBase
{
[SetUp]
public override async Task Setup()
{
await base.Setup();
}
[Test]
public async Task GetAuditLogEntries_WithNoExtraFilters_ReturnsPagingStructure()
{
//Arrange
var paging = new Paging();
//Act
var result = await AuditLog.GetAuditLogEntries(paging, null, false, default);
//Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.Page, Is.EqualTo(1));
Assert.That(result.PageSize, Is.EqualTo(10));
Assert.That(result.TotalPages, Is.EqualTo(0));
Assert.That(result.Count, Is.EqualTo(0));
Assert.That(result.Data.Count(), Is.EqualTo(0));
}
[Test]
public async Task GetAuditLogEntries_WhenDataAvailable_ReturnItem()
{
//Arrange
var auditEntry = new AuditEntry
{
AuditLogId = 1,
DisplayName = "Test DisplayName",
EntityName = "TestEntiryName",
IsPrimary = true,
Id = 1,
PrimaryKey = "{{ \"id\": 1 }}",
AuditLog = new AuditDetail
{
Id = 10,
Comment = "Testing",
DateTime = new DateTimeOffset(2023, 06, 15, 23, 56, 37, TimeSpan.Zero),
UserDisplayName = "Testy McTester",
UserId = 666,
Fields = "",
Type = "Add"
}
};
AuditLogRepository.AuditEntries.Add(auditEntry);
var paging = new Paging();
//Act
var result = await AuditLog.GetAuditLogEntries(paging, null, false, default);
//Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.Page, Is.EqualTo(1));
Assert.That(result.PageSize, Is.EqualTo(10));
Assert.That(result.TotalPages, Is.EqualTo(1));
Assert.That(result.Count, Is.EqualTo(1));
Assert.That(result.Data.Count(), Is.EqualTo(1));
}
[Test]
public async Task GetAuditLogEntries_WhenlogEntry_DecodesToAuditParamsCorrectly()
{
//Arrange
var auditEntry = new AuditEntry
{
AuditLogId = 1,
DisplayName = "Test DisplayName",
EntityName = "TestEntiryName",
IsPrimary = true,
Id = 1,
PrimaryKey = "{{ \"id\": 1 }}",
AuditLog = new AuditDetail
{
Id = 10,
Comment = "Testing",
DateTime = new DateTimeOffset(2023, 06, 15, 23, 56, 37, TimeSpan.Zero),
UserDisplayName = "Testy McTester",
UserId = 666,
Fields = "",
Type = "Add"
}
};
AuditLogRepository.AuditEntries.Add(auditEntry);
var logEntry = "ewogICJlbnRpdHlOYW1lIjoiVGVzdEVudGl0eSIsCiAgInByaW1hcnlLZXkiOiJ7aWQ6MTAxfSIKfQ==";
var paging = new Paging();
//Act
var result = await AuditLog.GetAuditLogEntries(paging, logEntry, false, default);
//Assert
Assert.Multiple(() =>
{
Assert.That(AuditLogRepository.AuditParams, Is.Not.Null);
Assert.That(AuditLogRepository.AuditParams!.EntityName, Is.EqualTo("TestEntity"));
Assert.That(AuditLogRepository.AuditParams.PrimaryKey, Is.EqualTo("{id:101}"));
});
}
[Test]
public async Task GetAuditLogEntries_WhenAuditEntityHasDisplayName_DisplayNameIsSetIsEntityDisplayname()
{
//Arrange
var auditEntry = new AuditEntry
{
AuditLogId = 1,
DisplayName = "Test DisplayName",
EntityName = "AuditLog.UnitTests.TestEntity",
IsPrimary = true,
Id = 1,
PrimaryKey = "{{ \"id\": 1 }}",
AuditLog = new AuditDetail
{
Id = 10,
Comment = "Testing",
DateTime = new DateTimeOffset(2023, 06, 15, 23, 56, 37, TimeSpan.Zero),
UserDisplayName = "Testy McTester",
UserId = 666,
Fields = "",
Type = "Add"
}
};
AuditLogRepository.AuditEntries.Add(auditEntry);
var logEntry = "ewogICJlbnRpdHlOYW1lIjoiVGVzdEVudGl0eSIsCiAgInByaW1hcnlLZXkiOiJ7aWQ6MTAxfSIKfQ==";
var paging = new Paging();
//Act
var result = await AuditLog.GetAuditLogEntries(paging, logEntry, false, default);
//Assert
var actualResult = result.Data.FirstOrDefault();
Assert.Multiple(() =>
{
Assert.That(actualResult, Is.Not.Null);
Assert.That(actualResult!.EntityDisplayName, Is.EqualTo("Test display name"));
});
}
[Test]
public async Task GetAuditLogEntries_WhenAuditEntityHasNoDisplayName_DisplayNameIsSetIsEntityShortName()
{
//Arrange
var auditEntry = new AuditEntry
{
AuditLogId = 1,
DisplayName = "Test DisplayName",
EntityName = "AuditLog.UnitTests.TestEntityTwo",
IsPrimary = true,
Id = 1,
PrimaryKey = "{{ \"id\": 1 }}",
AuditLog = new AuditDetail
{
Id = 10,
Comment = "Testing",
DateTime = new DateTimeOffset(2023, 06, 15, 23, 56, 37, TimeSpan.Zero),
UserDisplayName = "Testy McTester",
UserId = 666,
Fields = "",
Type = "Add"
}
};
AuditLogRepository.AuditEntries.Add(auditEntry);
var logEntry = "ewogICJlbnRpdHlOYW1lIjoiVGVzdEVudGl0eSIsCiAgInByaW1hcnlLZXkiOiJ7aWQ6MTAxfSIKfQ==";
var paging = new Paging();
//Act
var result = await AuditLog.GetAuditLogEntries(paging, logEntry, false, default);
//Assert
var actualResult = result.Data.FirstOrDefault();
Assert.Multiple(() =>
{
Assert.That(actualResult, Is.Not.Null);
Assert.That(actualResult!.EntityDisplayName, Is.EqualTo("TestEntityTwo"));
});
}
}