pgLabII/pgLabII.PgUtils.Tests/ConnectionStrings/PqConnectionStringTokenizerTests.cs

89 lines
2.4 KiB
C#

using pgLabII.PgUtils.ConnectionStrings;
using pgLabII.PgUtils.Tests.ConnectionStrings.Util;
namespace pgLabII.PgUtils.Tests.ConnectionStrings;
public class PqConnectionStringTokenizerTests
{
[Theory]
[InlineData("abc", "abc")]
[InlineData("abc=", "abc")]
[InlineData(" abc =", "abc")]
public void GetKeyword_Success(string input, string expected)
{
PqConnectionStringTokenizer subject = new(input);
var result = subject.GetKeyword();
ResultAssert.Success(result, expected);
}
[Theory]
[InlineData("=")]
[InlineData("")]
[InlineData(" ")]
public void GetKeyword_Errors(string input)
{
PqConnectionStringTokenizer subject = new(input);
ResultAssert.Failed(subject.GetKeyword());
}
[Theory]
[InlineData("", true)]
[InlineData(" ", true)]
[InlineData(" \t", true)]
[InlineData("d", false)]
[InlineData("=", false)]
[InlineData(".", false)]
public void Eof(string input, bool expected)
{
PqConnectionStringTokenizer subject = new(input);
Assert.Equal(expected, subject.IsEof);
}
[Theory]
[InlineData("=")]
[InlineData("=test")]
[InlineData(" = ")]
public void ConsumeEquals_Success(string input)
{
PqConnectionStringTokenizer subject = new(input);
ResultAssert.Success(subject.ConsumeEquals());
}
[Theory]
[InlineData("")]
[InlineData("t")]
[InlineData(" test")]
[InlineData(" ")]
public void ConsumeEquals_Throws(string input)
{
PqConnectionStringTokenizer subject = new(input);
var result = subject.ConsumeEquals();
ResultAssert.Failed(result);
}
[Theory]
[InlineData("foo", "foo")]
[InlineData("foo ", "foo")]
[InlineData("foo=", "foo=")]
[InlineData("1.2.3.4", "1.2.3.4")]
[InlineData(@"'foo \'bar' ", "foo 'bar")]
public void GetValue_Success(string input, string expected)
{
PqConnectionStringTokenizer subject = new(input);
var result = subject.GetValue();
ResultAssert.Success(result, expected);
}
[Theory]
[InlineData("")]
[InlineData(" ")]
[InlineData("'d")]
[InlineData(@"'\d'")]
public void GetValue_Throws(string input)
{
PqConnectionStringTokenizer subject = new(input);
var result = subject.GetValue();
ResultAssert.Failed(result);
}
}