public void TextNavigator_ReadUntil_4() { char[] stop = { ']', '>' }; TextNavigator navigator = new TextNavigator("ABC>]DEF"); Assert.AreEqual("ABC", navigator.ReadUntil(stop)); navigator.ReadChar(); Assert.AreEqual(string.Empty, navigator.ReadUntil(stop)); navigator.ReadChar(); Assert.AreEqual("DEF", navigator.ReadUntil(stop)); navigator.ReadChar(); Assert.IsNull(navigator.ReadUntil(stop)); }
public void TextNavigator_ReadUntil_3() { TextNavigator navigator = new TextNavigator("12345<.>"); string actual = navigator.ReadUntil("<.>"); Assert.AreEqual("12345", actual); Assert.AreEqual("<.>", navigator.PeekString(3)); Assert.AreEqual("<.>", navigator.GetRemainingText()); navigator = new TextNavigator("12345"); actual = navigator.ReadUntil("<.>"); Assert.IsNull(actual); navigator = new TextNavigator("12345<"); actual = navigator.ReadUntil("<.>"); Assert.IsNull(actual); navigator = new TextNavigator("12345<."); actual = navigator.ReadUntil("<.>"); Assert.IsNull(actual); navigator = new TextNavigator("12345<.6>"); actual = navigator.ReadUntil("<.>"); Assert.IsNull(actual); navigator = new TextNavigator("12345<.>67890"); actual = navigator.ReadUntil("<.>"); Assert.AreEqual("12345", actual); Assert.AreEqual("<.>", navigator.PeekString(3)); Assert.AreEqual("<.>67890", navigator.GetRemainingText()); navigator = new TextNavigator(string.Empty); Assert.IsNull(navigator.ReadUntil("<.>")); }
public void TextNavigator_ReadUntil_1() { const string text = "'ABC'DEF"; TextNavigator navigator = new TextNavigator(text); char open = navigator.ReadChar(); string actual = navigator.ReadUntil(open); Assert.AreEqual("ABC", actual); navigator = new TextNavigator(string.Empty); Assert.IsNull(navigator.ReadUntil(open)); }
public static MenuSpecification Parse ( [CanBeNull] string text ) { MenuSpecification result = new MenuSpecification { Path = IrbisPath.MasterFile }; if (!ReferenceEquals(text, null) && text.Length != 0) { TextNavigator navigator = new TextNavigator(text); result.FileName = navigator.ReadUntil('\\'); if (navigator.PeekChar() == '\\') { navigator.ReadChar(); } if (!navigator.IsEOF) { string db = navigator.ReadUntil('\\'); if (navigator.PeekChar() == '\\') { navigator.ReadChar(); } result.Database = db; if (!navigator.IsEOF) { string sortText = navigator.GetRemainingText(); NumericUtility.TryParseInt32(sortText, out int sortMode); result.SortMode = sortMode; } } } return(result); }
public void TextNavigator_ReadUntil_2() { char[] openChars = { '(' }; char[] closeChars = { ')' }; char[] stopChars = { ')' }; char[] stopChars2 = { ']' }; TextNavigator navigator = new TextNavigator("12345)"); string actual = navigator.ReadUntil(openChars, closeChars, stopChars); Assert.AreEqual("12345", actual); navigator = new TextNavigator("12(3)(4)5)"); actual = navigator.ReadUntil(openChars, closeChars, stopChars); Assert.AreEqual("12(3)(4)5", actual); navigator = new TextNavigator("12(3(4))5)"); actual = navigator.ReadUntil(openChars, closeChars, stopChars); Assert.AreEqual("12(3(4))5", actual); navigator = new TextNavigator("12(3(4))5"); actual = navigator.ReadUntil(openChars, closeChars, stopChars); Assert.IsNull(actual); navigator = new TextNavigator("12(3(4)5)"); actual = navigator.ReadUntil(openChars, closeChars, stopChars); Assert.IsNull(actual); navigator = new TextNavigator("1234]5)"); actual = navigator.ReadUntil(openChars, closeChars, stopChars2); Assert.AreEqual("1234", actual); navigator = new TextNavigator("123(4])]5)"); actual = navigator.ReadUntil(openChars, closeChars, stopChars2); Assert.AreEqual("123(4])", actual); navigator = new TextNavigator(string.Empty); Assert.IsNull(navigator.ReadUntil(openChars, closeChars, stopChars)); }