| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using Admin.NET.Plugin.AiDOP.SmartOps;
- using Xunit;
- namespace Admin.NET.Plugin.AiDOP.Tests.SmartOps;
- public class SmartDiagnosisEvidenceTests
- {
- [Theory]
- [InlineData("S1", "order_schedule")]
- [InlineData("S3", "supplier_delivery")]
- [InlineData("S3", "material_readiness")]
- [InlineData("S4", "supplier_delivery")]
- [InlineData("S5", "iqc_bill")]
- [InlineData("S6", "s6_report")]
- [InlineData("S7", "fqc_result")]
- [InlineData("S8", "s8_exception")]
- public void Module_ResolvesRegisteredSource(string module, string sourceKey)
- {
- Assert.Contains(SmartDiagnosisEvidenceRegistry.Resolve(module), x => x.Key == sourceKey);
- }
- [Fact]
- public void S9_ReusesModuleSources_NotAThirdFactChain()
- {
- var s9 = SmartDiagnosisEvidenceRegistry.Resolve("S9");
- Assert.DoesNotContain(s9, x => x.Key == "s8_exception");
- Assert.Equal(SmartDiagnosisEvidenceRegistry.All.Count(x => x.Key != "s8_exception"), s9.Count);
- Assert.Contains(s9, x => x.Domain == SmartDiagnosisEvidenceDomain.Delivery
- || x.Domain == SmartDiagnosisEvidenceDomain.Manufacturing);
- Assert.Contains(s9, x => x.Domain == SmartDiagnosisEvidenceDomain.Supply);
- Assert.Contains(s9, x => x.Domain == SmartDiagnosisEvidenceDomain.Quality);
- }
- [Fact]
- public void UnknownModule_IsUnsupported()
- {
- Assert.Contains(SmartDiagnosisEvidenceRegistry.Resolve("S8"), x => x.Key == "s8_exception");
- Assert.Empty(SmartDiagnosisEvidenceRegistry.Resolve("XX"));
- }
- [Fact]
- public void EverySource_RequiresTenantParameter_AndForbidsClientSql()
- {
- foreach (var source in SmartDiagnosisEvidenceRegistry.All)
- {
- Assert.Contains("@tenantId", source.CountSql, StringComparison.Ordinal);
- Assert.Contains("@tenantId", source.ItemSql, StringComparison.Ordinal);
- if (source.CountSql.Contains("factory_id", StringComparison.OrdinalIgnoreCase))
- {
- Assert.Contains("factory_id=1", source.CountSql, StringComparison.Ordinal);
- Assert.Contains("factory_id<>@tenantId", source.CountSql, StringComparison.Ordinal);
- Assert.Contains("factory_id=1", source.ItemSql, StringComparison.Ordinal);
- }
- Assert.DoesNotContain("{", source.ItemSql);
- Assert.DoesNotContain("+", source.CountSql);
- foreach (var filter in source.Filters)
- {
- Assert.DoesNotContain(" ", filter.SqlColumn);
- Assert.DoesNotContain(";", filter.SqlColumn);
- Assert.Matches("^[a-z0-9_]+$", filter.SqlColumn);
- }
- }
- }
- [Fact]
- public void ClientCannotRegisterArbitraryTable()
- {
- Assert.Null(SmartDiagnosisEvidenceRegistry.Get("sys_user"));
- Assert.Null(SmartDiagnosisEvidenceRegistry.Get("ado_smart_ops_improvement_plan;drop table"));
- }
- }
|