예제 #1
0
        public void ParserCanJoinMessages()
        {
            var messageParser = new MessageParser();

            #region message
            string messagePart1 = @"<?xml version=""1.0"" encoding=""utf-8""?>
<SolvePartialProblems xmlns=""http://www.mini.pw.edu.pl/ucc/"">
  <ProblemType>DVRP</ProblemType>
  <Id>1</Id>
  <CommonData />
  <SolvingTimeout>100000000</SolvingTimeout>
  <PartialProblems>
    <PartialProblem>
      <TaskId>2</TaskId>
      <Data>AAEAAAD/////AQA";

            string messagePart2 = @"AAAAAAAAMAgAAAD1Db21tb24sIFZlcnNpb249MC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAfQ29tbW9uLlByb2JsZW1zLkR2cnBQcm9ibGVtRGF0YQUAAAAHQ2xpZW50cwZEZXBvdHMFRmxlZXQGQ3V0T2ZmA1RhZwQEBAAAJUNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50W10CAAAAJENvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3RbXQIAAAAlQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5WZWhpY2xlcwIAAAAGCAIAAAAJAwAAAAkEAAAACQUAAAAAAAAAAADgP/0DAAAHAwAAAAABAAAACQAAAAQjQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5DbGllbnQCAAAACQYAAAAJBwAAAAkIAAAACQkAAAAJCgAAAAkLAAAACQwAAAAJDQAAAAkOAAAABwQAAAAAAQAAAAEAAAAEIkNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3QCAAAACQ8AAAAFBQAAACVDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlZlaGljbGVzAwAAAAVzcGVlZAhjYXBhY2l0eQVjb3VudAAAAAYGCAIAAAAAAAAAAADwPwAAAAAAAFlADAAAAAUGAAAAI0NvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50BQAAAAhsb2NhdGlvbgtyZXF1ZXN0VGltZQp1bmxvYWRUaW1lC3JlcXVlc3RTaXplBE5hbWUEAAAAASJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGBgIAAAAF8P///yJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AwAAAAF4AXkETmFtZQAAAQYGAgAAAAAAAAAAADjAAAAAAAAAQ0AGEQAAAAAAAAAAAMBWQAAAAAAAADRAAAAAAAAANMAGEgAAAAExAQcAAAAGAAAAAe3////w////AAAAAADAWMAAAAAAAAA9wAkRAAAAAAAAAAAAbkAAAAAAAAA0QAAAAAAAgEbABhUAAAABMgEIAAAABgAAAAHq////8P///wAAAAAAAEXAAAAAAAAAPkAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYYAAAAATMBCQAAAAYAAAAB5/////D///8AAAAAAIBNQAAAAAAAgFBACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAAQMAGGwAAAAE0AQoAAAAGAAAAAeT////w////AAAAAACAS0AAAAAAAIBBwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAEXABh4AAAABNQELAAAABgAAAAHh////8P///wAAAAAAAEXAAAAAAAAACEAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYhAAAAATYBDAAAAAYAAAAB3v////D///8AAAAAAMBXQAAAAAAAACpACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAACAQcAGJAAAAAE3AQ0AAAAGAAAAAdv////w////AAAAAADAUUAAAAAAAIBWwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAD7ABicAAAABOAEOAAAABgAAAAHY////8P///wAAAAAAAENAAAAAAAAAQEAJEQAAAAAAAAAAAEZAAAAAAAAANEAAAAAAAAA6wAYqAAAAATkFDwAAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkRlcG90AwAAAAhsb2NhdGlvbglzdGFydFRpbWUHZW5kVGltZQQAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGAgAAAAHV////8P///wAAAAAAAAAAAAAAAAAAAAAJEQAAAAAAAAAAAAAAAAAAAAAAhEAL</Data>
    </PartialProblem>
  </PartialProblems>
</SolvePartialProblems>";
            #endregion

            messageParser.ParseMessage(messagePart1);
            Assert.AreEqual(0, messageParser.GetMessagesToProcess().Count);
            messageParser.ParseMessage(messagePart2);

            Assert.AreEqual(1, messageParser.GetMessagesToProcess().Count);
        }
예제 #2
0
        public void ParserCanSplitMessages()
        {
            var messageParser = new MessageParser();

            #region message
            string concatenatedMessage = @"<?xml version=""1.0"" encoding=""utf-8""?>
<SolvePartialProblems xmlns=""http://www.mini.pw.edu.pl/ucc/"">
  <ProblemType>DVRP</ProblemType>
  <Id>1</Id>
  <CommonData />
  <SolvingTimeout>100000000</SolvingTimeout>
  <PartialProblems>
    <PartialProblem>
      <TaskId>2</TaskId>
      <Data>AAEAAAD/////AQAAAAAAAAAMAgAAAD1Db21tb24sIFZlcnNpb249MC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAfQ29tbW9uLlByb2JsZW1zLkR2cnBQcm9ibGVtRGF0YQUAAAAHQ2xpZW50cwZEZXBvdHMFRmxlZXQGQ3V0T2ZmA1RhZwQEBAAAJUNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50W10CAAAAJENvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3RbXQIAAAAlQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5WZWhpY2xlcwIAAAAGCAIAAAAJAwAAAAkEAAAACQUAAAAAAAAAAADgP/0DAAAHAwAAAAABAAAACQAAAAQjQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5DbGllbnQCAAAACQYAAAAJBwAAAAkIAAAACQkAAAAJCgAAAAkLAAAACQwAAAAJDQAAAAkOAAAABwQAAAAAAQAAAAEAAAAEIkNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3QCAAAACQ8AAAAFBQAAACVDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlZlaGljbGVzAwAAAAVzcGVlZAhjYXBhY2l0eQVjb3VudAAAAAYGCAIAAAAAAAAAAADwPwAAAAAAAFlADAAAAAUGAAAAI0NvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50BQAAAAhsb2NhdGlvbgtyZXF1ZXN0VGltZQp1bmxvYWRUaW1lC3JlcXVlc3RTaXplBE5hbWUEAAAAASJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGBgIAAAAF8P///yJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AwAAAAF4AXkETmFtZQAAAQYGAgAAAAAAAAAAADjAAAAAAAAAQ0AGEQAAAAAAAAAAAMBWQAAAAAAAADRAAAAAAAAANMAGEgAAAAExAQcAAAAGAAAAAe3////w////AAAAAADAWMAAAAAAAAA9wAkRAAAAAAAAAAAAbkAAAAAAAAA0QAAAAAAAgEbABhUAAAABMgEIAAAABgAAAAHq////8P///wAAAAAAAEXAAAAAAAAAPkAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYYAAAAATMBCQAAAAYAAAAB5/////D///8AAAAAAIBNQAAAAAAAgFBACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAAQMAGGwAAAAE0AQoAAAAGAAAAAeT////w////AAAAAACAS0AAAAAAAIBBwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAEXABh4AAAABNQELAAAABgAAAAHh////8P///wAAAAAAAEXAAAAAAAAACEAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYhAAAAATYBDAAAAAYAAAAB3v////D///8AAAAAAMBXQAAAAAAAACpACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAACAQcAGJAAAAAE3AQ0AAAAGAAAAAdv////w////AAAAAADAUUAAAAAAAIBWwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAD7ABicAAAABOAEOAAAABgAAAAHY////8P///wAAAAAAAENAAAAAAAAAQEAJEQAAAAAAAAAAAEZAAAAAAAAANEAAAAAAAAA6wAYqAAAAATkFDwAAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkRlcG90AwAAAAhsb2NhdGlvbglzdGFydFRpbWUHZW5kVGltZQQAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGAgAAAAHV////8P///wAAAAAAAAAAAAAAAAAAAAAJEQAAAAAAAAAAAAAAAAAAAAAAhEAL</Data>
    </PartialProblem>
  </PartialProblems>
</SolvePartialProblems><?xml version=""1.0"" encoding=""utf-8""?>
<SolvePartialProblems xmlns=""http://www.mini.pw.edu.pl/ucc/"">
  <ProblemType>DVRP</ProblemType>
  <Id>1</Id>
  <CommonData />
  <SolvingTimeout>100000000</SolvingTimeout>
  <PartialProblems>
    <PartialProblem>
      <TaskId>3</TaskId>
      <Data>AAEAAAD/////AQAAAAAAAAAMAgAAAD1Db21tb24sIFZlcnNpb249MC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAfQ29tbW9uLlByb2JsZW1zLkR2cnBQcm9ibGVtRGF0YQUAAAAHQ2xpZW50cwZEZXBvdHMFRmxlZXQGQ3V0T2ZmA1RhZwQEBAAAJUNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50W10CAAAAJENvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3RbXQIAAAAlQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5WZWhpY2xlcwIAAAAGCAIAAAAJAwAAAAkEAAAACQUAAAAAAAAAAADgP/wDAAAHAwAAAAABAAAACQAAAAQjQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5DbGllbnQCAAAACQYAAAAJBwAAAAkIAAAACQkAAAAJCgAAAAkLAAAACQwAAAAJDQAAAAkOAAAABwQAAAAAAQAAAAEAAAAEIkNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3QCAAAACQ8AAAAFBQAAACVDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlZlaGljbGVzAwAAAAVzcGVlZAhjYXBhY2l0eQVjb3VudAAAAAYGCAIAAAAAAAAAAADwPwAAAAAAAFlADAAAAAUGAAAAI0NvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50BQAAAAhsb2NhdGlvbgtyZXF1ZXN0VGltZQp1bmxvYWRUaW1lC3JlcXVlc3RTaXplBE5hbWUEAAAAASJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGBgIAAAAF8P///yJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AwAAAAF4AXkETmFtZQAAAQYGAgAAAAAAAAAAgEvAAAAAAAAAOsAGEQAAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAASMAGEgAAAAEwAQcAAAAGAAAAAe3////w////AAAAAADAWMAAAAAAAAA9wAkRAAAAAAAAAAAAbkAAAAAAAAA0QAAAAAAAgEbABhUAAAABMgEIAAAABgAAAAHq////8P///wAAAAAAAEXAAAAAAAAAPkAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYYAAAAATMBCQAAAAYAAAAB5/////D///8AAAAAAIBNQAAAAAAAgFBACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAAQMAGGwAAAAE0AQoAAAAGAAAAAeT////w////AAAAAACAS0AAAAAAAIBBwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAEXABh4AAAABNQELAAAABgAAAAHh////8P///wAAAAAAAEXAAAAAAAAACEAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYhAAAAATYBDAAAAAYAAAAB3v////D///8AAAAAAMBXQAAAAAAAACpACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAACAQcAGJAAAAAE3AQ0AAAAGAAAAAdv////w////AAAAAADAUUAAAAAAAIBWwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAD7ABicAAAABOAEOAAAABgAAAAHY////8P///wAAAAAAAENAAAAAAAAAQEAJEQAAAAAAAAAAAEZAAAAAAAAANEAAAAAAAAA6wAYqAAAAATkFDwAAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkRlcG90AwAAAAhsb2NhdGlvbglzdGFydFRpbWUHZW5kVGltZQQAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGAgAAAAHV////8P///wAAAAAAAAAAAAAAAAAAAAAJEQAAAAAAAAAAAAAAAAAAAAAAhEAL</Data>
    </PartialProblem>
  </PartialProblems>
</SolvePartialProblems><?xml version=""1.0"" encoding=""utf-8""?>
<SolvePartialProblems xmlns=""http://www.mini.pw.edu.pl/ucc/"">
  <ProblemType>DVRP</ProblemType>
  <Id>1</Id>
  <CommonData />
  <SolvingTimeout>100000000</SolvingTimeout>
  <PartialProblems>
    <PartialProblem>
      <TaskId>4</TaskId>
      <Data>AAEAAAD/////AQAAAAAAAAAMAgAAAD1Db21tb24sIFZlcnNpb249MC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAfQ29tbW9uLlByb2JsZW1zLkR2cnBQcm9ibGVtRGF0YQUAAAAHQ2xpZW50cwZEZXBvdHMFRmxlZXQGQ3V0T2ZmA1RhZwQEBAAAJUNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50W10CAAAAJENvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3RbXQIAAAAlQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5WZWhpY2xlcwIAAAAGCAIAAAAJAwAAAAkEAAAACQUAAAAAAAAAAADgP/sDAAAHAwAAAAABAAAACAAAAAQjQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5DbGllbnQCAAAACQYAAAAJBwAAAAkIAAAACQkAAAAJCgAAAAkLAAAACQwAAAAJDQAAAAcEAAAAAAEAAAABAAAABCJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkRlcG90AgAAAAkOAAAABQUAAAAlQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5WZWhpY2xlcwMAAAAFc3BlZWQIY2FwYWNpdHkFY291bnQAAAAGBggCAAAAAAAAAAAA8D8AAAAAAABZQAwAAAAFBgAAACNDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkNsaWVudAUAAAAIbG9jYXRpb24LcmVxdWVzdFRpbWUKdW5sb2FkVGltZQtyZXF1ZXN0U2l6ZQROYW1lBAAAAAEiQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5Qb2ludAIAAAAGBgYCAAAABfH///8iQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5Qb2ludAMAAAABeAF5BE5hbWUAAAEGBgIAAAAAAAAAAMBYwAAAAAAAAD3ABhAAAAAAAAAAAAAAbkAAAAAAAAA0QAAAAAAAgEbABhEAAAABMgEHAAAABgAAAAHu////8f///wAAAAAAAEXAAAAAAAAAPkAJEAAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYUAAAAATMBCAAAAAYAAAAB6/////H///8AAAAAAIBNQAAAAAAAgFBACRAAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAAQMAGFwAAAAE0AQkAAAAGAAAAAej////x////AAAAAACAS0AAAAAAAIBBwAkQAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAEXABhoAAAABNQEKAAAABgAAAAHl////8f///wAAAAAAAEXAAAAAAAAACEAJEAAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYdAAAAATYBCwAAAAYAAAAB4v////H///8AAAAAAMBXQAAAAAAAACpACRAAAAAAAAAAAAAAAAAAAAAAADRAAAAAAACAQcAGIAAAAAE3AQwAAAAGAAAAAd/////x////AAAAAADAUUAAAAAAAIBWwAkQAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAD7ABiMAAAABOAENAAAABgAAAAHc////8f///wAAAAAAAENAAAAAAAAAQEAJEAAAAAAAAAAAAEZAAAAAAAAANEAAAAAAAAA6wAYmAAAAATkFDgAAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkRlcG90AwAAAAhsb2NhdGlvbglzdGFydFRpbWUHZW5kVGltZQQAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGAgAAAAHZ////8f///wAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAhEAL</Data>
    </PartialProblem>
  </PartialProblems>
</SolvePartialProblems><?xml version=""1.0"" encoding=""utf-8""?>
<SolvePartialProblems xmlns=""http://www.mini.pw.edu.pl/ucc/"">
  <ProblemType>DVRP</ProblemType>
  <Id>1</Id>
  <CommonData />
  <SolvingTimeout>100000000</SolvingTimeout>
  <PartialProblems>
    <PartialProblem>
      <TaskId>5</TaskId>
      <Data>AAEAAAD/////AQAAAAAAAAAMAgAAAD1Db21tb24sIFZlcnNpb249MC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAfQ29tbW9uLlByb2JsZW1zLkR2cnBQcm9ibGVtRGF0YQUAAAAHQ2xpZW50cwZEZXBvdHMFRmxlZXQGQ3V0T2ZmA1RhZwQEBAAAJUNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50W10CAAAAJENvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3RbXQIAAAAlQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5WZWhpY2xlcwIAAAAGCAIAAAAJAwAAAAkEAAAACQUAAAAAAAAAAADgP/oDAAAHAwAAAAABAAAACQAAAAQjQ29tbW9uLlByb2JsZW1zLkRWUlBSZXF1aXJlZC5DbGllbnQCAAAACQYAAAAJBwAAAAkIAAAACQkAAAAJCgAAAAkLAAAACQwAAAAJDQAAAAkOAAAABwQAAAAAAQAAAAEAAAAEIkNvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuRGVwb3QCAAAACQ8AAAAFBQAAACVDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlZlaGljbGVzAwAAAAVzcGVlZAhjYXBhY2l0eQVjb3VudAAAAAYGCAIAAAAAAAAAAADwPwAAAAAAAFlADAAAAAUGAAAAI0NvbW1vbi5Qcm9ibGVtcy5EVlJQUmVxdWlyZWQuQ2xpZW50BQAAAAhsb2NhdGlvbgtyZXF1ZXN0VGltZQp1bmxvYWRUaW1lC3JlcXVlc3RTaXplBE5hbWUEAAAAASJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGBgIAAAAF8P///yJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AwAAAAF4AXkETmFtZQAAAQYGAgAAAAAAAAAAgEvAAAAAAAAAOsAGEQAAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAASMAGEgAAAAEwAQcAAAAGAAAAAe3////w////AAAAAAAAOMAAAAAAAABDQAkRAAAAAAAAAADAVkAAAAAAAAA0QAAAAAAAADTABhUAAAABMQEIAAAABgAAAAHq////8P///wAAAAAAAEXAAAAAAAAAPkAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYYAAAAATMBCQAAAAYAAAAB5/////D///8AAAAAAIBNQAAAAAAAgFBACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAAAAQMAGGwAAAAE0AQoAAAAGAAAAAeT////w////AAAAAACAS0AAAAAAAIBBwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAEXABh4AAAABNQELAAAABgAAAAHh////8P///wAAAAAAAEXAAAAAAAAACEAJEQAAAAAAAAAAAAAAAAAAAAAANEAAAAAAAAAzwAYhAAAAATYBDAAAAAYAAAAB3v////D///8AAAAAAMBXQAAAAAAAACpACREAAAAAAAAAAAAAAAAAAAAAADRAAAAAAACAQcAGJAAAAAE3AQ0AAAAGAAAAAdv////w////AAAAAADAUUAAAAAAAIBWwAkRAAAAAAAAAAAAAAAAAAAAAAA0QAAAAAAAAD7ABicAAAABOAEOAAAABgAAAAHY////8P///wAAAAAAAENAAAAAAAAAQEAJEQAAAAAAAAAAAEZAAAAAAAAANEAAAAAAAAA6wAYqAAAAATkFDwAAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLkRlcG90AwAAAAhsb2NhdGlvbglzdGFydFRpbWUHZW5kVGltZQQAACJDb21tb24uUHJvYmxlbXMuRFZSUFJlcXVpcmVkLlBvaW50AgAAAAYGAgAAAAHV////8P///wAAAAAAAAAAAAAAAAAAAAAJEQAAAAAAAAAAAAAAAAAAAAAAhEAL</Data>
    </PartialProblem>
  </PartialProblems>
</SolvePartialProblems>";
            #endregion

            messageParser.ParseMessage(concatenatedMessage);

            var messages = messageParser.GetMessagesToProcess();

            Assert.AreEqual(4, messages.Count);
        }
예제 #3
0
        protected void ProcessMessage(byte[] msg)
        {
            var    encoder        = new UTF8Encoding();
            string messagesString = encoder.GetString(msg);

            _messageParser.ParseMessage(messagesString);
            var messagesToProcess = _messageParser.GetMessagesToProcess();

            foreach (var xmlMessage in messagesToProcess)
            {
                Type type = Message.GetMessageType(xmlMessage);

                switch (type.Name)
                {
                case ("RegisterResponseMessage"):
                {
                    var regMsg = Message.Deserialize <RegisterResponseMessage>(xmlMessage);

                    ProcessRegisterResponseMessage(regMsg);
                    break;
                }

                case ("SolveRequestMessage"):
                {
                    throw new NotImplementedException();
                    break;
                }

                case ("DivideProblemMessage"):
                {
                    DivideProblemMessage divMsg = Message.Deserialize <DivideProblemMessage>(xmlMessage);
                    ProcessDivideProblemMessage(divMsg);
                    break;
                }

                case ("SolveRequestResponseMessage"):
                {
                    var solveRequestResponseMsg = Message.Deserialize <SolveRequestResponseMessage>(xmlMessage);
                    ProcessSolveRequestResponseMessage(solveRequestResponseMsg);
                    break;
                }

                case ("SolutionRequestMessage"):
                {
                    throw new NotImplementedException();
                    break;
                }

                case ("SolutionsMessage"):
                {
                    var solutionsMsg = Message.Deserialize <SolutionsMessage>(xmlMessage);
                    ProcessSolutionsMessage(solutionsMsg);
                    break;
                }

                case ("SolvePartialProblemsMessage"):
                {
                    SolvePartialProblemsMessage _msg = Message.Deserialize <SolvePartialProblemsMessage>(xmlMessage);
                    ProcessSolvePartialProblemsMessage(_msg);
                    break;
                }
                }
            }
        }