Repair live canonical migrations and scanner cache bootstrap
This commit is contained in:
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Npgsql;
|
||||
using NpgsqlTypes;
|
||||
using StellaOps.Platform.WebService.Options;
|
||||
using StellaOps.Platform.WebService.Services;
|
||||
using StellaOps.TestKit;
|
||||
@@ -60,6 +61,9 @@ public sealed class PlatformAnalyticsMaintenanceServiceTests
|
||||
.ToArray();
|
||||
|
||||
Assert.Equal(expectedDates, actualDates);
|
||||
Assert.All(
|
||||
rollupCommands,
|
||||
command => Assert.Equal(NpgsqlDbType.Date, command.ParameterTypes["date"]));
|
||||
|
||||
var refreshCommands = executor.Commands
|
||||
.Where(command => command.Sql.StartsWith("REFRESH MATERIALIZED VIEW", StringComparison.Ordinal))
|
||||
@@ -77,7 +81,10 @@ public sealed class PlatformAnalyticsMaintenanceServiceTests
|
||||
Assert.True(lastRollupIndex < firstRefreshIndex);
|
||||
}
|
||||
|
||||
private sealed record ExecutedCommand(string Sql, IReadOnlyDictionary<string, object?> Parameters);
|
||||
private sealed record ExecutedCommand(
|
||||
string Sql,
|
||||
IReadOnlyDictionary<string, object?> Parameters,
|
||||
IReadOnlyDictionary<string, NpgsqlDbType> ParameterTypes);
|
||||
|
||||
private sealed class RecordingMaintenanceExecutor : IPlatformAnalyticsMaintenanceExecutor
|
||||
{
|
||||
@@ -108,8 +115,14 @@ public sealed class PlatformAnalyticsMaintenanceServiceTests
|
||||
parameter => parameter.ParameterName,
|
||||
parameter => parameter.Value,
|
||||
StringComparer.OrdinalIgnoreCase);
|
||||
var parameterTypes = command.Parameters
|
||||
.Cast<NpgsqlParameter>()
|
||||
.ToDictionary(
|
||||
parameter => parameter.ParameterName,
|
||||
parameter => parameter.NpgsqlDbType,
|
||||
StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
Commands.Add(new ExecutedCommand(sql, parameters));
|
||||
Commands.Add(new ExecutedCommand(sql, parameters, parameterTypes));
|
||||
if (Commands.Count >= expectedCommandCount)
|
||||
{
|
||||
completion.TrySetResult(true);
|
||||
|
||||
Reference in New Issue
Block a user