public void GetChecksum_ReturnsCopiedChecksum()
        {
            // Arrange
            var content  = "Hello World!";
            var stream   = CreateBOMStream(content, Encoding.UTF8);
            var document = new StreamSourceDocument(stream, null, RazorSourceDocumentProperties.Default);

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

            // Assert
            Assert.Equal(firstChecksum, secondChecksum);
            Assert.NotSame(firstChecksum, secondChecksum);
        }
        public void GetChecksum_ComputesCorrectChecksum_UTF8()
        {
            // Arrange
            var content          = "Hello World!";
            var stream           = CreateBOMStream(content, Encoding.UTF8);
            var document         = new StreamSourceDocument(stream, Encoding.UTF8, RazorSourceDocumentProperties.Default);
            var expectedChecksum = new byte[] { 70, 180, 84, 105, 70, 79, 152, 31, 71, 157, 46, 159, 50, 83, 1, 243, 222, 48, 90, 18 };

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

            // Assert
            Assert.Equal(expectedChecksum, checksum);
        }
        public void GetChecksum_ComputesCorrectChecksum_UTF32AutoDetect()
        {
            // Arrange
            var content          = "Hello World!";
            var stream           = CreateBOMStream(content, Encoding.UTF32);
            var document         = new StreamSourceDocument(stream, null, RazorSourceDocumentProperties.Default);
            var expectedChecksum = new byte[] { 159, 154, 109, 89, 250, 163, 165, 108, 2, 112, 34, 4, 247, 161, 82, 168, 77, 213, 107, 71 };

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

            // Assert
            Assert.Equal(expectedChecksum, checksum);
        }