public void Indexer_ProvidesCharacterAccessToContent(int contentLength)
    {
        // Arrange
        var content = new char[contentLength];

        for (var i = 0; i < contentLength - 1; i++)
        {
            content[i] = 'a';
        }
        content[contentLength - 1] = 'b';
        var contentString = new string(content);

        var stream   = TestRazorSourceDocument.CreateStreamContent(new string(content));
        var reader   = new StreamReader(stream, true);
        var document = new LargeTextSourceDocument(reader, ChunkTestLength, Encoding.UTF8, RazorSourceDocumentProperties.Default);

        // Act
        var output = new char[contentLength];

        for (var i = 0; i < document.Length; i++)
        {
            output[i] = document[i];
        }
        var outputString = new string(output);

        // Assert
        Assert.Equal(contentLength, document.Length);
        Assert.Equal(contentString, outputString);
    }
    public void Lines()
    {
        // Arrange
        var stream = TestRazorSourceDocument.CreateStreamContent("abc\ndef\nghi");
        var reader = new StreamReader(stream, true);

        // Act
        var document = new LargeTextSourceDocument(reader, ChunkTestLength, Encoding.UTF8, RazorSourceDocumentProperties.Default);

        // Assert
        Assert.Equal(3, document.Lines.Count);
    }
    public void RelativePath(string relativePath)
    {
        // Arrange
        var stream = TestRazorSourceDocument.CreateStreamContent("abc");
        var reader = new StreamReader(stream, true);

        // Act
        var document = new LargeTextSourceDocument(reader, ChunkTestLength, Encoding.UTF8, new RazorSourceDocumentProperties(filePath: null, relativePath: relativePath));

        // Assert
        Assert.Equal(relativePath, document.RelativePath);
    }
Exemplo n.º 4
0
        public void FilePath(string filePath)
        {
            // Arrange
            var stream = TestRazorSourceDocument.CreateStreamContent("abc");
            var reader = new StreamReader(stream, true);

            // Act
            var document = new LargeTextSourceDocument(reader, ChunkTestLength, Encoding.UTF8, filePath);

            // Assert
            Assert.Equal(filePath, document.FilePath);
        }
    public void GetChecksum_ComputesCorrectChecksum_UTF32()
    {
        // Arrange
        var contentString    = "Hello World";
        var stream           = TestRazorSourceDocument.CreateStreamContent(contentString, Encoding.UTF32);
        var reader           = new StreamReader(stream, detectEncodingFromByteOrderMarks: true);
        var document         = new LargeTextSourceDocument(reader, 5, Encoding.UTF32, RazorSourceDocumentProperties.Default);
        var expectedChecksum = new byte[] { 108, 172, 130, 171, 42, 19, 155, 176, 211, 80, 224, 121, 169, 133, 25, 134, 48, 228, 199, 141 };

        // Act
        var checksum = document.GetChecksum();

        // Assert
        Assert.Equal(expectedChecksum, checksum);
    }
    public void GetChecksum_ComputesCorrectChecksum_UTF8()
    {
        // Arrange
        var contentString    = "Hello World";
        var stream           = TestRazorSourceDocument.CreateStreamContent(contentString);
        var reader           = new StreamReader(stream, detectEncodingFromByteOrderMarks: true);
        var document         = new LargeTextSourceDocument(reader, 5, Encoding.UTF8, RazorSourceDocumentProperties.Default);
        var expectedChecksum = new byte[] { 10, 77, 85, 168, 215, 120, 229, 2, 47, 171, 112, 25, 119, 197, 216, 64, 187, 196, 134, 208 };

        // Act
        var checksum = document.GetChecksum();

        // Assert
        Assert.Equal(expectedChecksum, checksum);
    }
    public void GetChecksum_ReturnsCopiedChecksum()
    {
        // Arrange
        var contentString = "Hello World";
        var stream        = TestRazorSourceDocument.CreateStreamContent(contentString);
        var reader        = new StreamReader(stream, detectEncodingFromByteOrderMarks: true);
        var document      = new LargeTextSourceDocument(reader, 5, Encoding.UTF8, RazorSourceDocumentProperties.Default);

        // Act
        var firstChecksum  = document.GetChecksum();
        var secondChecksum = document.GetChecksum();

        // Assert
        Assert.Equal(firstChecksum, secondChecksum);
        Assert.NotSame(firstChecksum, secondChecksum);
    }
    [InlineData("xyz", 23, 0, 3)]                               // The last chars
    public void CopyTo(string expected, int sourceIndex, int destinationIndex, int count)
    {
        // Arrange
        var stream = TestRazorSourceDocument.CreateStreamContent("abcdefghijklmnopqrstuvwxyz");

        var reader   = new StreamReader(stream, true);
        var document = new LargeTextSourceDocument(reader, ChunkTestLength, Encoding.UTF8, RazorSourceDocumentProperties.Default);

        // Act
        var destination = new char[1000];

        document.CopyTo(sourceIndex, destination, destinationIndex, count);

        // Assert
        var copy = new string(destination, destinationIndex, count);

        Assert.Equal(expected, copy);
    }