using StellaOps.Scanner.Reachability; using Xunit; namespace StellaOps.Scanner.Reachability.Tests; public sealed class SinkRegistryTests { [Theory] [InlineData("dotnet", "System.Diagnostics.Process.Start", SinkCategory.CmdExec)] [InlineData("dotnet", "SYSTEM.DIAGNOSTICS.PROCESS.START", SinkCategory.CmdExec)] [InlineData("java", "java.io.ObjectInputStream.readObject", SinkCategory.UnsafeDeser)] [InlineData("node", "child_process.exec", SinkCategory.CmdExec)] [InlineData("python", "pickle.loads", SinkCategory.UnsafeDeser)] public void MatchSink_ReturnsExpectedCategory(string language, string symbol, SinkCategory expectedCategory) { var sink = SinkRegistry.MatchSink(language, symbol); Assert.NotNull(sink); Assert.Equal(expectedCategory, sink!.Category); } [Fact] public void MatchSink_ReturnsNull_WhenUnknownLanguage() { Assert.Null(SinkRegistry.MatchSink("unknown", "whatever")); } }