ModuleRebuildPipelineGuardTests.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Admin.NET.Plugin.AiDOP.DataPlatform.MdpRebuild;
  2. using Admin.NET.Plugin.AiDOP.DataPlatform.S1Refresh;
  3. using Admin.NET.Plugin.AiDOP.Job;
  4. using Admin.NET.Plugin.AiDOP.ProcurementExecution;
  5. using Admin.NET.Plugin.AiDOP.Production;
  6. using Admin.NET.Plugin.AiDOP.Supply;
  7. using Xunit;
  8. namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform;
  9. public class ModuleRebuildPipelineGuardTests
  10. {
  11. [Fact]
  12. public async Task S2_UnscopedRunFull_Throws()
  13. {
  14. var svc = new S2MdpSyncTransformService(null!, null!, null!, null!);
  15. var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => svc.RunFullAsync());
  16. Assert.Contains("作用域", ex.Message);
  17. }
  18. [Fact]
  19. public async Task S3_UnscopedRunFull_Throws()
  20. {
  21. var svc = new S3MdpSyncTransformService(null!, null!, null!, null!);
  22. var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => svc.RunFullAsync());
  23. Assert.Contains("作用域", ex.Message);
  24. }
  25. [Fact]
  26. public async Task S4_UnscopedRunFull_Throws()
  27. {
  28. var svc = new S4MdpSyncTransformService(null!, null!, null!);
  29. var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => svc.RunFullAsync());
  30. Assert.Contains("作用域", ex.Message);
  31. }
  32. [Fact]
  33. public void SnapshotModules_IncludeS9_ButRebuildDoesNot()
  34. {
  35. Assert.Contains("S9", MdpRebuildScope.SnapshotModules);
  36. Assert.DoesNotContain("S9", MdpRebuildScope.RebuildModules);
  37. Assert.DoesNotContain("S8", MdpRebuildScope.RebuildModules);
  38. Assert.DoesNotContain("S8", MdpRebuildScope.SnapshotModules);
  39. }
  40. [Fact]
  41. public void S1Scope_RejectsTenantAsFactory()
  42. {
  43. Assert.Throws<InvalidOperationException>(() => S1MdpRunScope.Create(797403760988229, 797403760988229));
  44. }
  45. [Theory]
  46. [InlineData(null, true)]
  47. [InlineData("", true)]
  48. [InlineData("invalid", true)]
  49. [InlineData("true", true)]
  50. [InlineData("false", false)]
  51. public void MdpBootstrap_EnvironmentOverride_IsOptOut(string? raw, bool expected)
  52. {
  53. Assert.Equal(expected, SmartOpsKpiMdpBootstrapJob.IsBootstrapEnabled(raw));
  54. }
  55. }