| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using Xunit;
- namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform;
- public class EmployeeEmploymentStatusMappingTests
- {
- [Fact]
- public void NativeAndInbound_MapAcToActive_AndDcToLeft()
- {
- var native = File.ReadAllText(Path.Combine(RepoRoot(),
- "server", "Plugins", "Admin.NET.Plugin.AiDOP", "DataPlatform", "NativeNeutralProjectionService.cs"));
- var inbound = File.ReadAllText(Path.Combine(RepoRoot(),
- "server", "Plugins", "Admin.NET.Plugin.AiDOP", "DataPlatform", "Inbound", "MdmMirrorUpsertService.cs"));
- Assert.Contains("'ACTIVE','ONJOB','ON_JOB','AC'", native);
- Assert.Contains("'LEFT','LEAVE','RESIGNED','TERMINATED','QUIT','DC'", native);
- Assert.Contains("ELSE 'UNKNOWN'", native);
- Assert.Contains("\"AC\"", inbound);
- Assert.Contains("\"DC\"", inbound);
- Assert.Contains("return \"UNKNOWN\"", inbound);
- }
- [Fact]
- public void T8Projection_AlreadyMapsChineseStatus_AndIsNotEditedForAc()
- {
- var t8 = File.ReadAllText(Path.Combine(RepoRoot(),
- "server", "Plugins", "Admin.NET.Plugin.AiDOP", "DataPlatform", "T8BaseInboundMdpSyncService.NeutralProjection.cs"));
- Assert.Contains("zzzt='在职'", t8);
- Assert.Contains("zzzt LIKE '%离职%'", t8);
- Assert.DoesNotContain("'AC'", t8);
- }
- private static string RepoRoot()
- {
- var dir = new DirectoryInfo(AppContext.BaseDirectory);
- while (dir != null && !File.Exists(Path.Combine(dir.FullName, "AGENTS.md")))
- dir = dir.Parent;
- return dir?.FullName ?? throw new InvalidOperationException("repo root not found");
- }
- }
|