public async Task Deserialize_WithOneHeaderEntry_ReturnsHeaderWithOneEntryAsync()
        {
            // Arrange
            var testData = new byte[2881];

            testData = TestUtils.AddHeaderEntry(
                data: testData,
                startIndex: 0,
                key: "TEST",
                value: 1,
                comment: "some test comment");
            testData = TestUtils.AddContentToArray(
                data: testData,
                startIndex: 80,
                content: HeaderDeserializer.END_MARKER);
            var testStream = TestUtils.ByteArrayToStream(testData);
            var testee     = new HeaderDeserializer();

            // Act
            var result = await testee.DeserializeAsync(testStream);

            // Assert
            result.Should().NotBe(null);
            result.Entries.Should().HaveCount(1);
            result.Entries.First().Key.Should().Be("TEST");
            result.Entries.First().Value.Should().Be(1);
            result.Entries.First().Comment.Should().Be("some test comment");
        }
        public void Deserilaize_WithMultiKeywordValueButMissingContinuation_ThrowsException()
        {
            // Arrange
            var testData = new byte[2881];

            testData = TestUtils.AddHeaderEntry(
                data: testData,
                startIndex: 0,
                key: "TEST",
                value: "'Some test value &'",
                comment: "Test some very looong comment");
            testData = TestUtils.AddHeaderEntry(
                data: testData,
                startIndex: 80,
                key: "TEST2",
                value: "'Spaning over 3 values'",
                comment: " continuation of some very long comment");
            testData = TestUtils.AddContentToArray(
                data: testData,
                startIndex: 160,
                content: HeaderDeserializer.END_MARKER);
            var testStream = TestUtils.ByteArrayToStream(testData);
            var testee     = new HeaderDeserializer();

            // Act
            Func <Task> act = () => testee.DeserializeAsync(testStream);

            // Assert
            act.Should().Throw <InvalidDataException>();
        }
        public async Task Deserilaize_WithMultiKeywordComment_ReturnsConcattedValueAsync()
        {
            // Arrange
            var testData = new byte[2881];

            testData = TestUtils.AddHeaderEntry(
                data: testData,
                startIndex: 0,
                key: "TEST",
                value: "'&'",
                comment: "Test some very looong comment");
            testData = TestUtils.AddHeaderEntry(
                data: testData,
                startIndex: 80,
                key: "CONTINUE",
                value: "'&'",
                comment: " continuation of some very long comment");
            testData = TestUtils.AddContentToArray(
                data: testData,
                startIndex: 160,
                content: HeaderDeserializer.END_MARKER);
            var testStream = TestUtils.ByteArrayToStream(testData);
            var testee     = new HeaderDeserializer();

            // Act
            var result = await testee.DeserializeAsync(testStream);

            // Assert
            result.Should().NotBeNull();
            result.Entries.Should().HaveCount(1);
            result.Entries.First().Key.Should().Be("TEST");
            result.Entries.First().Value.Should().Be(string.Empty);
            result.Entries.First().Comment.Should().Be("Test some very looong comment continuation of some very long comment");
        }
Exemplo n.º 4
0
 public EnvelopeInfo(BlockInfo parent, FilteredTransaction filteredTx)
 {
     this.filteredTx      = filteredTx;
     envelopeDeserializer = null;
     headerDeserializer   = null;
     this.parent          = parent;
 }
Exemplo n.º 5
0
        //private final EnvelopeDeserializer envelopeDeserializer;

        public EnvelopeInfo(BlockInfo parent, EnvelopeDeserializer envelopeDeserializer)
        {
            this.envelopeDeserializer = envelopeDeserializer;
            headerDeserializer        = envelopeDeserializer.Payload.Header;
            this.parent = parent;
            filteredTx  = null;
        }
        public void Deserialize_WithByteStreamOfValidLengthButNoEndMark_ThrowsException()
        {
            // Arrange
            var testData   = new byte[2881];
            var testStream = TestUtils.ByteArrayToStream(testData);
            var testee     = new HeaderDeserializer();

            // Act
            Func <Task> act = () => testee.DeserializeAsync(testStream);

            // Assert
            act.Should().Throw <InvalidDataException>();
        }
        public void Deserialize_WithEmptyByteStream_ThrowsException()
        {
            // Arrange
            var testData   = Array.Empty <byte>();
            var testStream = TestUtils.ByteArrayToStream(testData);
            var testee     = new HeaderDeserializer();

            // Act
            Func <Task> act = () => testee.DeserializeAsync(testStream);

            // Assert
            act.Should().Throw <InvalidDataException>();
        }
        public async Task Deserialize_WithByteStreamOfValidLengthAndEndMarkAtBeginning_ReturnsEmptyHeaderAsync()
        {
            // Arrange
            var testData = new byte[2881];

            testData = TestUtils.AddContentToArray(
                data: testData,
                startIndex: 0,
                content: HeaderDeserializer.END_MARKER);
            var testStream = TestUtils.ByteArrayToStream(testData);
            var testee     = new HeaderDeserializer();

            // Act
            var result = await testee.DeserializeAsync(testStream);

            // Assert
            result.Should().NotBeNull();
            result.Entries.Should().BeEmpty();
        }