using Admin.NET.Core; using Xunit; namespace Admin.NET.Plugin.AiDOP.Entity.S0.Sales { public sealed class ExternalSourceProbe { public long Id { get; set; } public string SourceSystem { get; set; } } } namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform { public class ExternalMasterPageWriteTests { [Fact] public void ExternalS0Row_IsRejectedWithSourceName() { var ex = Assert.Throws(() => MdmMirrorWriteScope.RejectPageWrite(new Admin.NET.Plugin.AiDOP.Entity.S0.Sales.ExternalSourceProbe { SourceSystem = "MOCK_MODE3" })); Assert.Contains("MOCK_MODE3", ex.Message); Assert.Contains("只读", ex.Message); } [Fact] public void HandBuiltNativeAndNonS0_AreAllowed() { MdmMirrorWriteScope.RejectPageWrite(new Admin.NET.Plugin.AiDOP.Entity.S0.Sales.ExternalSourceProbe()); MdmMirrorWriteScope.RejectPageWrite(new Admin.NET.Plugin.AiDOP.Entity.S0.Sales.ExternalSourceProbe { SourceSystem = "AIDOP_NATIVE" }); MdmMirrorWriteScope.RejectPageWrite(new NeutralProbe { SourceSystem = "T8" }); } [Fact] public void MirrorWriter_MayUpdateExternalS0Row() { using var _ = MdmMirrorWriteScope.Enter(); MdmMirrorWriteScope.RejectPageWrite(new Admin.NET.Plugin.AiDOP.Entity.S0.Sales.ExternalSourceProbe { SourceSystem = "MOCK_MODE3" }); } private sealed class NeutralProbe { public string SourceSystem { get; set; } } } }