28 lines
980 B
C#
28 lines
980 B
C#
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"));
|
|
}
|
|
}
|
|
|