public void FahClientPyonMessageExtractor_ExtractsMultipleMessagesFromMultipleMessages()
        {
            // Arrange
            var extractor = new FahClientPyonMessageExtractor();
            var buffer    = new StringBuilder(Info + SimulationInfo);
            // Act (First Message)
            var result = extractor.Extract(buffer);

            // Assert (First Message)
            Assert.AreEqual("info", result.Identifier.MessageType);
            Assert.AreEqual(Info, result.MessageText.ToString());
            // Act (Second Message)
            result = extractor.Extract(buffer);
            // Assert (Second Message)
            Assert.AreEqual("simulation-info", result.Identifier.MessageType);
            Assert.AreEqual(SimulationInfo, result.MessageText.ToString());
        }
        public void FahClientPyonMessageExtractor_ReturnsNullWhenBufferIsNull()
        {
            // Arrange
            var extractor = new FahClientPyonMessageExtractor();
            // Act
            var result = extractor.Extract(null);

            // Assert
            Assert.IsNull(result);
        }
        public void FahClientPyonMessageExtractor_CannotExtractMessageWithNoFooter()
        {
            // Arrange
            var extractor = new FahClientPyonMessageExtractor();
            var buffer    = new StringBuilder(Info.Substring(0, Info.Length / 2));
            // Act
            var result = extractor.Extract(buffer);

            // Assert
            Assert.IsNull(result);
        }
        public void FahClientPyonMessageExtractor_CannotExtractMessageWithNoHeader()
        {
            // Arrange
            var extractor = new FahClientPyonMessageExtractor();
            var buffer    = new StringBuilder();
            // Act
            var result = extractor.Extract(buffer);

            // Assert
            Assert.IsNull(result);
        }
        public void FahClientPyonMessageExtractor_ExtractsSingleMessageFromSingleMessage()
        {
            // Arrange
            var extractor = new FahClientPyonMessageExtractor();
            var buffer    = new StringBuilder(SimulationInfo);
            // Act
            var result = extractor.Extract(buffer);

            // Assert
            Assert.AreEqual("simulation-info", result.Identifier.MessageType);
            Assert.AreEqual(SimulationInfo, result.MessageText.ToString());
        }