chore: initial git load of code space

This commit is contained in:
Thom Lamb
2026-05-12 08:52:33 -05:00
parent 9abada692f
commit 5e467bcc9c
384 changed files with 65960 additions and 2 deletions
@@ -0,0 +1,136 @@
using NUnit.Framework;
using Strata.SqlTools.Breakdowns.SqlServer;
using Strata.SqlTools.EFCore.Models;
using Strata.SqlTools.EFCore.Services;
namespace Strata.SqlTools.EFCore.Tests;
[TestFixture]
public class QueryBreakdownMapperTests
{
private QueryBreakdownMapper _mapper = null!;
[SetUp]
public void Setup()
{
_mapper = new QueryBreakdownMapper();
}
[Test]
public void MapToEntity_WithSimpleQuery_ReturnsValidEntity()
{
// Arrange
var queryBreakdown = new QueryBreakdown("ID, Name", "Users");
// Act
var entity = _mapper.MapToEntity(queryBreakdown);
// Assert
Assert.That(entity, Is.Not.Null);
Assert.That(entity.SelectClause, Is.EqualTo("ID, Name"));
Assert.That(entity.FromClause, Is.EqualTo("Users"));
Assert.That(entity.CreatedAt, Is.LessThanOrEqualTo(DateTime.UtcNow));
}
[Test]
public void MapToEntity_WithCompleteQuery_ReturnsEntityWithAllClauses()
{
// Arrange
var queryBreakdown = new QueryBreakdown(
"ID, Name",
"Users",
"Active = 1",
"Name ASC"
);
// Act
var entity = _mapper.MapToEntity(queryBreakdown);
// Assert
Assert.That(entity.SelectClause, Is.EqualTo("ID, Name"));
Assert.That(entity.FromClause, Is.EqualTo("Users"));
Assert.That(entity.WhereClause, Is.EqualTo("Active = 1"));
Assert.That(entity.OrderByClause, Is.EqualTo("Name ASC"));
}
[Test]
public void MapToDomainModel_WithEntity_ReturnsValidQueryBreakdown()
{
// Arrange
var entity = new QueryBreakdownEntity
{
Id = 1,
SelectClause = "ID, Name",
FromClause = "Users",
WhereClause = "Active = 1",
CreatedAt = DateTime.UtcNow,
UpdatedAt = DateTime.UtcNow
};
// Act
var queryBreakdown = _mapper.MapToDomainModel(entity);
// Assert
Assert.That(queryBreakdown, Is.Not.Null);
Assert.That(queryBreakdown.SelectClause?.Clause, Is.EqualTo("ID, Name"));
Assert.That(queryBreakdown.FromClause?.Clause, Is.EqualTo("Users"));
Assert.That(queryBreakdown.WhereClause?.Clause, Is.EqualTo("Active = 1"));
}
[Test]
public void MapToEntity_WithParameters_SerializesParametersAsJson()
{
// Arrange
var queryBreakdown = new QueryBreakdown("ID, Name", "Users");
queryBreakdown.AddParameter("UserId", 123);
queryBreakdown.AddParameter("Status", "Active");
// Act
var entity = _mapper.MapToEntity(queryBreakdown);
// Assert
Assert.That(entity.ParametersJson, Is.Not.Null);
Assert.That(entity.ParametersJson, Does.Contain("UserId"));
Assert.That(entity.ParametersJson, Does.Contain("Status"));
}
[Test]
public void RoundTrip_Conversion_PreservesQueryData()
{
// Arrange
var originalQuery = new QueryBreakdown(
"ID, Name, Email",
"Users",
"Active = 1 AND CreatedDate > @CreatedDate",
"Name ASC"
);
originalQuery.AddParameter("CreatedDate", "2024-01-01");
// Act
var entity = _mapper.MapToEntity(originalQuery);
var restoredQuery = _mapper.MapToDomainModel(entity);
// Assert
Assert.That(restoredQuery.SelectClause?.Clause, Is.EqualTo(originalQuery.SelectClause?.Clause));
Assert.That(restoredQuery.FromClause?.Clause, Is.EqualTo(originalQuery.FromClause?.Clause));
Assert.That(restoredQuery.WhereClause?.Clause, Is.EqualTo(originalQuery.WhereClause?.Clause));
Assert.That(restoredQuery.OrderByClause?.Clause, Is.EqualTo(originalQuery.OrderByClause?.Clause));
}
[Test]
public void MapToEntityWithRelations_WithQueryBreakdown_ReturnsEntityAndRelations()
{
// Arrange
var queryBreakdown = new QueryBreakdown("ID, Name", "Users");
queryBreakdown.AddParameter("UserId", 1);
// Act
var (entity, parameters, withClauses) = _mapper.MapToEntityWithRelations(queryBreakdown);
// Assert
Assert.That(entity, Is.Not.Null);
Assert.That(parameters, Is.Not.Empty);
Assert.That(parameters.First().ParameterName, Is.EqualTo("UserId"));
Assert.That(withClauses, Is.Empty);
}
}