27 lines
927 B
C#
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);
|
|
}
|
|
}
|