Files

27 lines
927 B
C#

using DongfangHydro.Dashboard.Api.Data;
using DongfangHydro.Dashboard.Api.Services;
using Microsoft.EntityFrameworkCore;
using Xunit;
namespace DongfangHydro.Dashboard.Tests;
public sealed class SqlServerQueryShapeTests
{
[Fact]
public void RecentTrendQuery_UsesAServerSidePerOrderWindow()
{
var options = new DbContextOptionsBuilder<DashboardDbContext>()
.UseSqlServer("Server=localhost;Database=query-shape;TrustServerCertificate=True")
.Options;
using var dbContext = new DashboardDbContext(options);
var orderIds = new[] { Guid.NewGuid(), Guid.NewGuid() };
var query = DashboardQueryService.BuildRecentTrendQuery(dbContext, orderIds, 12);
var sql = query.ToQueryString();
Assert.Contains("ROW_NUMBER", sql, StringComparison.OrdinalIgnoreCase);
Assert.Contains("PARTITION BY", sql, StringComparison.OrdinalIgnoreCase);
}
}