mirror of
https://github.com/SabreTools/SabreTools.CommandLine.git
synced 2026-02-08 13:49:53 +00:00
135 lines
3.6 KiB
C#
135 lines
3.6 KiB
C#
using SabreTools.CommandLine.Inputs;
|
|
using Xunit;
|
|
|
|
namespace SabreTools.CommandLine.Test.Inputs
|
|
{
|
|
public class BooleanInputTests
|
|
{
|
|
[Fact]
|
|
public void ProcessInput_EmptyArgs_Failure()
|
|
{
|
|
string[] args = [];
|
|
int index = 0;
|
|
|
|
var input = new BooleanInput("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", "true"];
|
|
int index = -1;
|
|
|
|
var input = new BooleanInput("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", "true"];
|
|
int index = 2;
|
|
|
|
var input = new BooleanInput("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 BooleanInput("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_InvalidValue_Failure()
|
|
{
|
|
string[] args = ["a", "ANY"];
|
|
int index = 0;
|
|
|
|
var input = new BooleanInput("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", "true"];
|
|
int index = 0;
|
|
|
|
var input = new BooleanInput("a", "a", "a");
|
|
bool actual = input.ProcessInput(args, ref index);
|
|
|
|
Assert.True(actual);
|
|
Assert.Equal(1, index);
|
|
Assert.True(input.Value);
|
|
}
|
|
|
|
[Fact]
|
|
public void ProcessInput_Equal_InvalidLength_Failure()
|
|
{
|
|
string[] args = ["a="];
|
|
int index = 0;
|
|
|
|
var input = new BooleanInput("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_Equal_InvalidValue_Failure()
|
|
{
|
|
string[] args = ["a=ANY"];
|
|
int index = 0;
|
|
|
|
var input = new BooleanInput("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_Equal_ValidValue_Success()
|
|
{
|
|
string[] args = ["a=true"];
|
|
int index = 0;
|
|
|
|
var input = new BooleanInput("a", "a", "a");
|
|
bool actual = input.ProcessInput(args, ref index);
|
|
|
|
Assert.True(actual);
|
|
Assert.Equal(0, index);
|
|
Assert.True(input.Value);
|
|
}
|
|
}
|
|
}
|