public void TryParsePassesResult(bool innerSuccess, string innerRemaining, string result)
        {
            var inner = StringParserTestUtils.MockParser("stat", innerSuccess, innerRemaining, result).Object;
            var sut   = new ValidatingParser <string>(inner);

            var(_, _, actual) = sut.Parse("stat");

            Assert.AreEqual(result, actual);
        }
        public string TryParseReturnsCorrectRemaining(string innerRemaining)
        {
            var inner = StringParserTestUtils.MockParser("stat", true, innerRemaining, "").Object;
            var sut   = new ValidatingParser <string>(inner);

            var(_, actual, _) = sut.Parse("stat");

            return(actual);
        }
        public void TryParseReturnsCorrectUnchangedRemaining(string remaining)
        {
            var inner = StringParserTestUtils.MockParser("stat", true, remaining, "").Object;
            var sut   = new ValidatingParser <string>(inner);

            var(_, actual, _) = sut.Parse("stat");

            Assert.AreEqual(remaining, actual);
        }
        public void TryParseHiddenTestIsCaseInsensitive()
        {
            var remaining = ItemConstants.HiddenStatSuffix.ToLowerInvariant();
            var inner     = StringParserTestUtils.MockParser("stat", true, remaining, "").Object;
            var sut       = new ValidatingParser <string>(inner);

            var(actual, _, _) = sut.Parse("stat");

            Assert.True(actual);
        }
        public void TryParseReturnsSuccessIfRemainingIsOnlyWhiteSpaceAndEndsWithHidden()
        {
            const string remaining = " \n\t\r" + ItemConstants.HiddenStatSuffix;
            var          inner     = StringParserTestUtils.MockParser("stat", true, remaining, "").Object;
            var          sut       = new ValidatingParser <string>(inner);

            var(actual, _, _) = sut.Parse("stat");

            Assert.True(actual);
        }
        public void TryParseReturnsFailureIfRemainingStartsWithHidden()
        {
            const string remaining = ItemConstants.HiddenStatSuffix + " ";
            var          inner     = StringParserTestUtils.MockParser("stat", true, remaining, "").Object;
            var          sut       = new ValidatingParser <string>(inner);

            var(actual, _, _) = sut.Parse("stat");

            Assert.False(actual);
        }
        public void TryParseReturnsFailureIfRemainingContainsNonWhiteSpace()
        {
            const string remaining = " r ";
            var          inner     = StringParserTestUtils.MockParser("stat", true, remaining, "").Object;
            var          sut       = new ValidatingParser <string>(inner);

            var(actual, _, _) = sut.Parse("stat");

            Assert.False(actual);
        }
        public void TryParseReturnsFailureIfInnerReturnsFailure()
        {
            const string remaining = " ";
            var          inner     = StringParserTestUtils.MockParser("stat", false, remaining, "").Object;
            var          sut       = new ValidatingParser <string>(inner);

            var(actual, _, _) = sut.Parse("stat");

            Assert.False(actual);
        }
        public void TryParseCleansIfInnerReturnsFalse()
        {
            const string innerRemaining = " \ntest\t\r " + ItemConstants.HiddenStatSuffix;
            var          inner          = StringParserTestUtils.MockParser("stat", true, innerRemaining, "").Object;
            var          sut            = new ValidatingParser <string>(inner);

            var(_, actual, _) = sut.Parse("stat");

            Assert.AreEqual("test", actual);
        }
        public void IsIParser()
        {
            var sut = new ValidatingParser <string>(null);

            Assert.IsInstanceOf <IStringParser <string> >(sut);
        }