| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using Xunit;
- namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform;
- public class T8KpiTenantIsolationContractTests
- {
- [Theory]
- [InlineData("MaterialWarehouse", "S5MdpSyncTransformService.cs")]
- [InlineData("FinishedWarehouse", "S7MdpSyncTransformService.cs")]
- [InlineData("Manufacturing", "S6MdpSyncTransformService.cs")]
- public void StandardLayerQueries_FilterByTenantAndDoNotReadT8Tables(string moduleDirectory, string serviceFile)
- {
- var source = ReadServiceSource(moduleDirectory, serviceFile);
- Assert.Contains("@tenantId", source, StringComparison.OrdinalIgnoreCase);
- Assert.DoesNotContain("mdp_std_t8_", source, StringComparison.OrdinalIgnoreCase);
- Assert.Contains(
- "new SugarParameter(\"@tenantId\", option.TargetTenantId)",
- source,
- StringComparison.Ordinal);
- }
- [Fact]
- public void S5_FulfillmentAndEfficiency_KeepTenantPredicate()
- {
- var source = ReadServiceSource("MaterialWarehouse", "S5MdpSyncTransformService.cs");
- Assert.Contains("tenant_id=@tenantId", source, StringComparison.OrdinalIgnoreCase);
- Assert.Contains("position_code='WAREHOUSE'", source, StringComparison.Ordinal);
- Assert.Contains("biz_doc_type='PROD_ISSUE'", source, StringComparison.Ordinal);
- }
- [Fact]
- public void S7_CycleFulfillmentAndEfficiency_KeepTenantPredicate()
- {
- var source = ReadServiceSource("FinishedWarehouse", "S7MdpSyncTransformService.cs");
- Assert.Contains("tenant_id=@tenantId", source, StringComparison.OrdinalIgnoreCase);
- Assert.Contains("position_code='WAREHOUSE'", source, StringComparison.Ordinal);
- Assert.Contains("biz_doc_type='SALES_SHIP'", source, StringComparison.Ordinal);
- }
- private static string ReadServiceSource(string moduleDirectory, string serviceFile)
- {
- var dir = new DirectoryInfo(AppContext.BaseDirectory);
- while (dir != null)
- {
- var candidate = Path.Combine(
- dir.FullName,
- "server",
- "Plugins",
- "Admin.NET.Plugin.AiDOP",
- moduleDirectory,
- serviceFile);
- if (File.Exists(candidate)) return File.ReadAllText(candidate);
- dir = dir.Parent;
- }
- throw new FileNotFoundException(serviceFile);
- }
- }
|