Files
2025-10-04 18:35:33 -04:00

108 lines
2.9 KiB
C#

using SabreTools.CommandLine.Inputs;
using Xunit;
namespace SabreTools.CommandLine.Test.Inputs
{
public class StringInputTests
{
[Fact]
public void ProcessInput_EmptyArgs_Failure()
{
string[] args = [];
int index = 0;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.False(actual);
Assert.Equal(0, index);
Assert.Null(input.Value);
}
[Fact]
public void ProcessInput_NegativeIndex_Failure()
{
string[] args = ["a", "value"];
int index = -1;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.False(actual);
Assert.Equal(-1, index);
Assert.Null(input.Value);
}
[Fact]
public void ProcessInput_OverIndex_Failure()
{
string[] args = ["a", "value"];
int index = 2;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.False(actual);
Assert.Equal(2, index);
Assert.Null(input.Value);
}
[Fact]
public void ProcessInput_Space_InvalidLength_Failure()
{
string[] args = ["a"];
int index = 0;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.False(actual);
Assert.Equal(0, index);
Assert.Null(input.Value);
}
[Fact]
public void ProcessInput_Space_ValidValue_Success()
{
string[] args = ["a", "value"];
int index = 0;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.True(actual);
Assert.Equal(1, index);
Assert.Equal("value", input.Value);
}
[Fact]
public void ProcessInput_Equal_Empty_Success()
{
string[] args = ["a="];
int index = 0;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.True(actual);
Assert.Equal(0, index);
Assert.NotNull(input.Value);
Assert.Empty(input.Value);
}
[Fact]
public void ProcessInput_Equal_ValidValue_Success()
{
string[] args = ["a=value"];
int index = 0;
var input = new StringInput("a", "a", "a");
bool actual = input.ProcessInput(args, ref index);
Assert.True(actual);
Assert.Equal(0, index);
Assert.Equal("value", input.Value);
}
}
}