Exemplo n.º 1
0
        public void GetPosition_AdvanceCharAfterNewLine_NewLineCounterIsUpdated()
        {
            var sut = new TextSource("a\ncdef");

            sut.AdvanceChar(2);
            var actualPosition = sut.GetPosition();

            Assert.Equal('c', sut.Current);
            Assert.Equal(1, actualPosition.Column);
            Assert.Equal(2, actualPosition.Line);

            sut.AdvanceChar();

            actualPosition = sut.GetPosition();
            Assert.Equal(2, actualPosition.Column);
            Assert.Equal(2, actualPosition.Line);
        }
Exemplo n.º 2
0
        public void AdvanceChar_MovesGivenAmountOfChars()
        {
            var sut = new TextSource("abcdef");

            sut.AdvanceChar(3);
            Assert.Equal('d', sut.Current);
            Assert.Equal('e', sut.Next);
        }
Exemplo n.º 3
0
        public void AdvanceChar_MovesCurrentToNextChar()
        {
            var sut = new TextSource("abcdef");

            sut.AdvanceChar();
            Assert.Equal('b', sut.Current);
            Assert.Equal('c', sut.Next);
        }
Exemplo n.º 4
0
        public void IsEnded_WhenAdvancementIsMadeAfterString_ReturnsTrue()
        {
            const string input = "abcdef";
            var          sut   = new TextSource(input);

            sut.AdvanceChar(input.Length);
            Assert.True(sut.IsEnded);
        }
Exemplo n.º 5
0
        public void AsSlice_ReturnsCharArrayFromCurrentCharacter()
        {
            var sut = new TextSource("abcdef");

            sut.AdvanceChar(2);

            Assert.Equal(4, sut.Slice().Length);
            Assert.Equal("cdef", new string(sut.Slice()));
        }
Exemplo n.º 6
0
        public void GetPosition_AdvanceCharCalled_IsUpdated()
        {
            var sut = new TextSource("abcdef");

            sut.AdvanceChar();
            var actualPosition = sut.GetPosition();

            Assert.Equal(2, actualPosition.Column);
            Assert.Equal(1, actualPosition.Line);
        }