using FluentResults; namespace pgLabII.PgUtils.Tests.ConnectionStrings.Util; public class UnitTestTokenizerTests { private readonly UnitTestTokenizer _sut = new(); [Fact] public void IsEof_Throws() { Assert.Throws(() => { bool _ = _sut.IsEof; }); } [Fact] public void IsEof_True() { _sut.AddEof(); Assert.True(_sut.IsEof); } [Fact] public void Eof_False() { _sut.AddString("a"); Assert.False(_sut.IsEof); } [Fact] public void GetKeyword_Success() { _sut.AddString("a"); var result = _sut.GetKeyword(); ResultAssert.Success(result, "a"); } [Fact] public void GetKeyword_Unexpected_Throws() { _sut.AddEquals(); Assert.Throws(() => _sut.GetKeyword()); } [Fact] public void GetKeyword_SimulatesException() { _sut.AddError(new("test")); var result = _sut.GetKeyword(); ResultAssert.Failed(result); } [Fact] public void GetValue_Success() { _sut.AddString("a"); var result = _sut.GetValue(); ResultAssert.Success(result, "a"); } [Fact] public void GetValue_Unexpected_Throws() { _sut.AddEquals(); Assert.Throws(() => _sut.GetValue()); } [Fact] public void GetValue_SimulatesException() { _sut.AddError(new("test")); var result = _sut.GetValue(); ResultAssert.Failed(result); } [Fact] public void ConsumeEquals_Success() { _sut.AddEquals(); var result = _sut.ConsumeEquals(); ResultAssert.Success(result); } [Fact] public void ConsumeEquals_Unexpected_Throws1() { Assert.Throws(() => _sut.ConsumeEquals()); } [Fact] public void ConsumeEquals_Unexpected_Throws2() { _sut.AddString("t"); Assert.Throws(() => _sut.ConsumeEquals()); } }