MdpDbPushExecutorSafetyTests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. using System.Reflection;
  2. using Admin.NET.Plugin.AiDOP.DataPlatform.Executors;
  3. using Xunit;
  4. namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform;
  5. public class MdpDbPushExecutorSafetyTests
  6. {
  7. [Fact]
  8. public void AllowedTables_ContainsPlanAndWmsBaseTables_NotSystemObjects()
  9. {
  10. var field = typeof(MdpDbPushExecutor).GetField("AllowedTables", BindingFlags.NonPublic | BindingFlags.Static);
  11. Assert.NotNull(field);
  12. var tables = (HashSet<string>)field!.GetValue(null)!;
  13. Assert.Contains("NbrMaster", tables);
  14. Assert.Contains("EmpWorkDutyMaster", tables);
  15. Assert.Contains("MobileTask", tables);
  16. Assert.Contains("LocationMaster", tables);
  17. Assert.DoesNotContain("sys.objects", tables);
  18. }
  19. [Fact]
  20. public void ApiExecutor_SupportedType_IsApi()
  21. {
  22. Assert.Equal("API", typeof(MdpApiPushExecutor)
  23. .GetProperty(nameof(MdpApiPushExecutor.SupportedType))!
  24. .GetValue(FormatterServicesCreateUninitialized(typeof(MdpApiPushExecutor)))!
  25. .ToString());
  26. }
  27. private static object FormatterServicesCreateUninitialized(Type t) =>
  28. System.Runtime.CompilerServices.RuntimeHelpers.GetUninitializedObject(t);
  29. }