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() .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); } }