Пример #1
0
        public void TryOpenBlock_ReturnsBlockStateNoneIfLineDoesNotBeginWithExpectedCharacters(string line)
        {
            // Arrange
            BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();

            dummyBlockProcessor.Line = new StringSlice(line);
            ExposedJsonBlockParser testSubject = CreateExposedJsonBlockParser();

            // Act
            BlockState result = testSubject.ExposedTryOpenBlock(dummyBlockProcessor);

            // Assert
            Assert.Equal(BlockState.None, result);
        }
Пример #2
0
        public void CloseProxy_ThrowsJsonExceptionIfJsonIsIncomplete()
        {
            // Arrange
            const string dummyLines          = "dummyLines";
            var          dummyProxyJsonBlock = new ProxyJsonBlock(null, null);

            dummyProxyJsonBlock.Lines          = new StringLineGroup(dummyLines);
            dummyProxyJsonBlock.NumOpenObjects = 1;
            BlockProcessor         dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();
            ExposedJsonBlockParser testSubject         = CreateExposedJsonBlockParser();

            // Act and assert
            JsonException result = Assert.Throws <JsonException>(() => testSubject.ExposedCloseProxy(dummyBlockProcessor, dummyProxyJsonBlock));

            Assert.Equal(string.Format(Strings.JsonException_Shared_InvalidJson, dummyLines), result.Message);
        }
Пример #3
0
        public void TryOpenBlock_ReturnsBlockStateNoneIfInCodeIndent()
        {
            // Arrange
            BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();

            // These three lines set IsCodeIndent to true
            dummyBlockProcessor.Column = 0;
            dummyBlockProcessor.RestartIndent();
            dummyBlockProcessor.Column = 4;
            ExposedJsonBlockParser testSubject = CreateExposedJsonBlockParser();

            // Act
            BlockState result = testSubject.ExposedTryOpenBlock(dummyBlockProcessor);

            // Assert
            Assert.True(dummyBlockProcessor.IsCodeIndent);
            Assert.Equal(BlockState.None, result);
        }
Пример #4
0
        public void CloseProxy_ReturnsJsonBlockIfSuccessful()
        {
            // Arrange
            BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();
            var            dummyProxyJsonBlock = new ProxyJsonBlock(null, null);

            dummyProxyJsonBlock.NumOpenObjects = 0;
            Mock <Block> dummyBlock = _mockRepository.Create <Block>(null);
            Mock <IJsonBlockFactory <Block, ProxyJsonBlock> > mockJsonBlockFactory = _mockRepository.Create <IJsonBlockFactory <Block, ProxyJsonBlock> >();

            mockJsonBlockFactory.Setup(j => j.Create(dummyProxyJsonBlock, dummyBlockProcessor)).Returns(dummyBlock.Object);
            ExposedJsonBlockParser testSubject = CreateExposedJsonBlockParser(mockJsonBlockFactory.Object);

            // Act
            Block result = testSubject.ExposedCloseProxy(dummyBlockProcessor, dummyProxyJsonBlock);

            // Assert
            _mockRepository.VerifyAll();
            Assert.Same(dummyBlock.Object, result);
        }
Пример #5
0
        public void ParseLine_ParsesTheLineUpdatesBlockSpanEndAndReturnsBlockState(string dummyJson)
        {
            // Arrange
            ExposedJsonBlockParser testSubject = CreateExposedJsonBlockParser();
            var dummyProxyJsonBlock            = new ProxyJsonBlock(null, null);
            var lineReader = new LineReader(dummyJson);

            // Act and assert
            while (true)
            {
                BlockState result = testSubject.ParseLine(lineReader.ReadLine().Value, dummyProxyJsonBlock);

                if (result == BlockState.Break)
                {
                    Assert.Null(lineReader.ReadLine()); // If result is break we must be at the last line
                    break;
                }
                else
                {
                    Assert.Equal(BlockState.Continue, result);
                }
            }
            Assert.Equal(dummyJson.Length - 1, dummyProxyJsonBlock.Span.End);
        }