mirror of
https://github.com/SabreTools/SabreTools.CommandLine.git
synced 2026-09-23 23:24:50 +00:00
Split code from SabreTools
This commit is contained in:
107
SabreTools.CommandLine.Test/Inputs/StringInputTests.cs
Normal file
107
SabreTools.CommandLine.Test/Inputs/StringInputTests.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user