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); } }