public void When_message_does_not_start_with_2_hex_bytes_it_should_return_null(string message)
        {
            // Act
            ParserInfo actual = _sut.Match(message);

            // Assert
            actual.Should().BeNull();
        }
        public void When_message_is_too_short_it_should_return_null(string message)
        {
            // Act
            ParserInfo actual = _sut.Match(message);

            // Assert
            actual.Should().BeNull();
        }
        public void When_message_matches_should_return_best_matching_parserInfo(string message, int expectedProtocolVersion)
        {
            // Act
            ParserInfo actual = _sut.Match(message);

            // Assert
            actual.Should().NotBeNull();
            actual.MaxProtocolVersion.Should().Be(expectedProtocolVersion);
        }
Esempio n. 4
0
        /// <summary>
        /// Gets a parser by extracting the protocol version from the message.
        /// </summary>
        /// <param name="message">The message to extract the protocol version of.</param>
        /// <returns>Returns a message parser.</returns>
        /// <remarks>
        /// First 2 bytes (= protocol version).
        /// </remarks>
        public IMessageParser GetParser(string message)
        {
            ParserInfo parserInfo = _parserMatcher.Match(message);

            if (parserInfo == null)
            {
                throw new InvalidOperationException("No parser found for message " + message);
            }

            return(GetParser(parserInfo.Type));
        }
        public void When_a_single_parser_is_registered_it_should_always_return_that()
        {
            _sut = new DefaultParserMatcher(new[]
            {
                _parserInfo[0]
            }, _logger);

            // Act
            ParserInfo actual = _sut.Match(ValidMessage);

            // Assert
            actual.Should().Be(_parserInfo[0]);
        }