Exemplo n.º 1
0
 /**
  * @param node
  * @throws JsonParseException
  * @throws JsonMappingException
  * @throws JsonGenerationException
  * @throws JsonProcessingException
  * @throws InterruptedException
  * @throws IOException
  * @throws IncorrectReceivedMessageException
  */
 @Override
 protected void onReceive(XmlNode node)
     throws JsonParseException, JsonMappingException, JsonGenerationException,
         JsonProcessingException, InterruptedException, IOException,
         IncorrectReceivedMessageException {
   List<JsonNode> expectedNodes = convertToJson(node);
   List<JsonNode> receivedNodes = new ArrayList<JsonNode>(expectedNodes.size());
   do {
     String message = responseQueue.poll(TIME_TO_WAIT_ON_RECEIVE, TimeUnit.SECONDS);
     JsonNode receivedNode = null;
     try {
       Assert.assertNotNull(message);
       receivedNode = mapper.readTree(message);
       Assert.assertNotNull(receivedNode);
     } catch (Throwable e) {
       throw new IncorrectReceivedMessageException(
           getListener(), this, receivedNodes, expectedNodes, e.getMessage());
     }
     receivedNodes.add(receivedNode);
     parameters.collectParameters(receivedNode);
     getListener().collectParameters(receivedNode);
     boolean found = false;
     for (JsonNode expectedNode : expectedNodes) {
       if (JsonUtils.equalsIgnoreANY(receivedNode, expectedNode)) {
         expectedNodes.remove(expectedNode);
         receivedNodes.remove(receivedNode);
         found = true;
         break;
       }
     }
     try {
       Assert.assertEquals(true, found);
     } catch (Throwable e) {
       throw new IncorrectReceivedMessageException(
           getListener(), this, receivedNodes, expectedNodes, e.getMessage());
     }
   } while (expectedNodes.size() > 0);
 }