public void testFireAndForgetUsingExpression2() throws Exception {
    context.addRoutes(
        new RouteBuilder() {
          @Override
          public void configure() throws Exception {
            from("direct:start").wireTap("direct:foo", simple("Bye ${body}")).to("mock:result");

            from("direct:foo").to("mock:foo");
          }
        });
    context.start();

    MockEndpoint result = getMockEndpoint("mock:result");
    result.expectedBodiesReceived("World");

    MockEndpoint foo = getMockEndpoint("mock:foo");
    foo.expectedBodiesReceived("Bye World");

    template.sendBody("direct:start", "World");

    assertMockEndpointsSatisfied();

    // should be different exchange instances
    Exchange e1 = result.getReceivedExchanges().get(0);
    Exchange e2 = foo.getReceivedExchanges().get(0);
    assertNotSame("Should not be same Exchange", e1, e2);

    // should have same from endpoint
    assertEquals("direct://start", e1.getFromEndpoint().getEndpointUri());
    assertEquals("direct://start", e2.getFromEndpoint().getEndpointUri());
  }
  public void testManageStatistics() throws Exception {
    // JMX tests dont work well on AIX CI servers (hangs them)
    if (isPlatform("aix")) {
      return;
    }

    // get the stats for the route
    MBeanServer mbeanServer = getMBeanServer();

    Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=routes,*"), null);
    assertEquals(1, set.size());

    ObjectName on = set.iterator().next();

    // use route to get the total time
    Long completed = (Long) mbeanServer.getAttribute(on, "ExchangesCompleted");
    assertEquals(0, completed.longValue());

    MockEndpoint result = getMockEndpoint("mock:result");
    result.expectedMessageCount(5);

    // send in 5 messages
    template.sendBody("direct:start", "A");
    template.sendBody("direct:start", "B");
    template.sendBody("direct:start", "C");
    template.sendBody("direct:start", "D");
    template.sendBody("direct:start", "E");

    assertMockEndpointsSatisfied();

    // should be 5 on the route
    completed = (Long) mbeanServer.getAttribute(on, "ExchangesCompleted");
    assertEquals(5, completed.longValue());

    String first = (String) mbeanServer.getAttribute(on, "FirstExchangeCompletedExchangeId");
    assertEquals(result.getReceivedExchanges().get(0).getExchangeId(), first);

    String firstFail = (String) mbeanServer.getAttribute(on, "FirstExchangeFailureExchangeId");
    assertNull(firstFail);

    String last = (String) mbeanServer.getAttribute(on, "LastExchangeCompletedExchangeId");
    assertEquals(result.getReceivedExchanges().get(4).getExchangeId(), last);

    String lastFail = (String) mbeanServer.getAttribute(on, "LastExchangeFailureExchangeId");
    assertNull(lastFail);

    // should be 5 on the processors
    ObjectName foo =
        ObjectName.getInstance(
            "org.apache.camel:context=localhost/camel-1,type=processors,name=\"foo\"");
    completed = (Long) mbeanServer.getAttribute(foo, "ExchangesCompleted");
    assertEquals(5, completed.longValue());

    ObjectName mock =
        ObjectName.getInstance(
            "org.apache.camel:context=localhost/camel-1,type=processors,name=\"mock\"");
    completed = (Long) mbeanServer.getAttribute(mock, "ExchangesCompleted");
    assertEquals(5, completed.longValue());
  }
Example #3
0
  public void testSendingAMessageUsingMulticastReceivesItsOwnExchangeParallel() throws Exception {
    MockEndpoint resultEndpoint = getMockEndpoint("mock:result");

    resultEndpoint.expectsNoDuplicates(body());
    resultEndpoint.expectedMessageCount(4);

    // InOnly
    template.send(
        "direct:parallel",
        new Processor() {
          public void process(Exchange exchange) {
            Message in = exchange.getIn();
            in.setBody("James,Guillaume,Hiram,Rob");
            in.setHeader("foo", "bar");
          }
        });

    assertMockEndpointsSatisfied();

    List<Exchange> list = resultEndpoint.getReceivedExchanges();
    Set<Integer> numbersFound = new TreeSet<Integer>();
    final String[] names = {"James", "Guillaume", "Hiram", "Rob"};

    for (int i = 0; i < 4; i++) {
      Exchange exchange = list.get(i);
      Message in = exchange.getIn();
      Integer splitCounter = exchange.getProperty(Exchange.SPLIT_INDEX, Integer.class);
      numbersFound.add(splitCounter);
      assertEquals(names[splitCounter], in.getBody());
      assertProperty(exchange, Exchange.SPLIT_SIZE, 4);
    }

    assertEquals(4, numbersFound.size());
  }
  @Test
  public void testNotTooOldFilter() throws Exception {
    fakeFtpServer.start();
    int port = fakeFtpServer.getServerControlPort();
    context
        .getRouteDefinitions()
        .get(0)
        .adviceWith(
            context,
            new AdviceWithRouteBuilder() {
              @Override
              public void configure() throws Exception {
                replaceFromWith(
                    "ftp://[email protected]:"
                        + port
                        + "?password=password&filter=#notTooOld&passiveMode=true");
                weaveByType(ToDefinition.class).selectFirst().replace().to("mock:end");
              }
            });
    MockEndpoint end = context.getEndpoint("mock:end", MockEndpoint.class);
    end.expectedMessageCount(1);

    end.assertIsSatisfied();

    // Make sure that the received file has the correct file name
    String fileName =
        (String) end.getReceivedExchanges().get(0).getIn().getHeader(Exchange.FILE_NAME_ONLY);
    assertEquals(fileName, "DMI1.nc");

    fakeFtpServer.stop();
  }
Example #5
0
  public void testSendingAMessageUsingMulticastReceivesItsOwnExchange() throws Exception {
    MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
    resultEndpoint.expectedBodiesReceived("James", "Guillaume", "Hiram", "Rob");

    // InOnly
    template.send(
        "direct:seqential",
        new Processor() {
          public void process(Exchange exchange) {
            Message in = exchange.getIn();
            in.setBody("James,Guillaume,Hiram,Rob");
            in.setHeader("foo", "bar");
          }
        });

    assertMockEndpointsSatisfied();

    List<Exchange> list = resultEndpoint.getReceivedExchanges();
    for (int i = 0; i < 4; i++) {
      Exchange exchange = list.get(i);
      Message in = exchange.getIn();
      assertNotNull("The in message should not be null.", in);
      assertProperty(exchange, Exchange.SPLIT_INDEX, i);
      assertProperty(exchange, Exchange.SPLIT_SIZE, 4);
    }
  }
  @Test
  public void testInOnlyRouteJMSDestinationName() throws Exception {
    context.addRoutes(
        new RouteBuilder() {
          public void configure() throws Exception {
            from("activemq:queue:a").to("activemq:queue:b");
            from("activemq:queue:b").to("mock:result");
          }
        });
    context.start();

    MockEndpoint mock = getMockEndpoint("mock:result");
    mock.expectedBodiesReceived("Hello World");
    mock.message(0).header("JMSDestination").isNotNull();

    template.sendBodyAndHeader(
        "activemq:queue:bar", "Hello World", JmsConstants.JMS_DESTINATION_NAME, "a");

    assertMockEndpointsSatisfied();

    assertEquals(
        "queue://b",
        mock.getReceivedExchanges()
            .get(0)
            .getIn()
            .getHeader("JMSDestination", Destination.class)
            .toString());
  }
  @Test
  public void testMarshall()
      throws InterruptedException, ParserConfigurationException, IOException, SAXException {
    MockEndpoint mock = getMockEndpoint("mock:result");
    mock.expectedMessageCount(1);

    PurchaseOrder purchaseOrder = new PurchaseOrder();
    String name = "foo";
    purchaseOrder.setName(name);
    double price = 49;
    purchaseOrder.setPrice(price);
    double amount = 3;
    purchaseOrder.setAmount(amount);

    template.sendBody("direct:start", purchaseOrder);

    assertMockEndpointsSatisfied();

    String body = mock.getReceivedExchanges().get(0).getIn().getBody(String.class);
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Element root = builder.parse(new InputSource(new StringReader(body))).getDocumentElement();

    assertEquals(name, root.getAttribute("name"));
    assertEquals(price + "", root.getAttribute("price"));
    assertEquals(amount + "", root.getAttribute("amount"));
  }
  public void testFireAndForgetUsingProcessor() throws Exception {
    context.addRoutes(
        new RouteBuilder() {
          @SuppressWarnings("deprecation")
          @Override
          public void configure() throws Exception {
            // START SNIPPET: e1
            from("direct:start")
                .wireTap(
                    "direct:foo",
                    new Processor() {
                      public void process(Exchange exchange) throws Exception {
                        String body = exchange.getIn().getBody(String.class);
                        exchange.getIn().setBody("Bye " + body);
                        exchange.getIn().setHeader("foo", "bar");
                      }
                    })
                .to("mock:result");

            from("direct:foo").to("mock:foo");
            // END SNIPPET: e1
          }
        });
    context.start();

    MockEndpoint result = getMockEndpoint("mock:result");
    result.expectedBodiesReceived("World");

    MockEndpoint foo = getMockEndpoint("mock:foo");
    foo.expectedBodiesReceived("Bye World");
    foo.expectedHeaderReceived("foo", "bar");

    template.sendBody("direct:start", "World");

    assertMockEndpointsSatisfied();

    // should be different exchange instances
    Exchange e1 = result.getReceivedExchanges().get(0);
    Exchange e2 = foo.getReceivedExchanges().get(0);
    assertNotSame("Should not be same Exchange", e1, e2);

    // should have same from endpoint
    assertEquals("direct://start", e1.getFromEndpoint().getEndpointUri());
    assertEquals("direct://start", e2.getFromEndpoint().getEndpointUri());
  }
  public void testTransform() throws Exception {
    MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
    resultEndpoint.expectedMessageCount(1);

    resultEndpoint.assertIsSatisfied();

    List<Exchange> list = resultEndpoint.getReceivedExchanges();
    Exchange exchange = list.get(0);
    Message in = exchange.getIn();

    String text = in.getBody(String.class);
    log.info("Received: " + text);
  }
Example #10
0
  @Ignore("test manual")
  @Test
  public void testIrcMessages() throws Exception {
    resultEndpoint = (MockEndpoint) context.getEndpoint("mock:result");
    resultEndpoint.expectedBodiesReceived(resultEnd);

    resultEndpoint.assertIsSatisfied();

    List<Exchange> list = resultEndpoint.getReceivedExchanges();
    for (Exchange exchange : list) {
      log.info("Received exchange: " + exchange + " headers: " + exchange.getIn().getHeaders());
    }
  }
  @Test
  public void testIdempotent() throws Exception {
    String uri = "file:target/test-classes/idempotent?idempotent=true&delay=10";
    context
        .getRouteDefinitions()
        .get(1)
        .adviceWith(
            context,
            new AdviceWithRouteBuilder() {
              @Override
              public void configure() throws Exception {
                replaceFromWith(uri);
                weaveByType(ToDefinition.class).selectFirst().replace().to("mock:endpoint");
              }
            });
    MockEndpoint end = context.getEndpoint("mock:endpoint", MockEndpoint.class);
    end.expectedMessageCount(1);

    producer.sendBodyAndHeader(
        "file://target/test-classes/idempotent", Exchange.FILE_NAME, "FCOO1.nc");

    end.assertIsSatisfied();

    String fileName =
        (String) end.getReceivedExchanges().get(0).getIn().getHeader(Exchange.FILE_NAME_ONLY);
    assertEquals(fileName, "FCOO1.nc");

    // reset the mock
    end.reset();
    end.expectedMessageCount(0);

    // move file back
    File file = new File("target/test-classes/idempotent/.camel/FCOO1.nc");
    File renamed = new File("target/test-classes/idempotent/FCOO1.nc");
    file.renameTo(renamed);

    producer.sendBodyAndHeader(
        "file://target/test-classes/idempotent", Exchange.FILE_NAME, "FCOO1.nc");

    // let some time pass to let the consumer try to consume even though it cannot
    Thread.sleep(100);
    end.assertIsSatisfied();

    FileEndpoint fe = context.getEndpoint(uri, FileEndpoint.class);
    assertNotNull(fe);

    // Make sure that there are no incoming messages
    MemoryIdempotentRepository repo = (MemoryIdempotentRepository) fe.getInProgressRepository();
    assertEquals("Should be no in-progress files", 0, repo.getCacheSize());
  }
  @Test
  public void testBindyMarshalQuoteAndCommaDelimiter() throws Exception {
    MockEndpoint mock = getMockEndpoint("mock:in");
    mock.expectedMessageCount(1);

    Car car = getCar();

    template.sendBody("direct:in", car);

    assertMockEndpointsSatisfied();

    String body = mock.getReceivedExchanges().get(0).getIn().getBody(String.class);
    assertEquals(ROW, body);
  }
  @Test
  public void testMarshalBadCharsWithFiltering() throws Exception {
    PersonType person = new PersonType();
    person.setFirstName("foo\u0004");
    person.setLastName("bar");

    MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
    resultEndpoint.expectedMessageCount(1);
    template.sendBody("direct:marshalFilteringEnabled", person);
    resultEndpoint.assertIsSatisfied();

    String body = resultEndpoint.getReceivedExchanges().get(0).getIn().getBody(String.class);
    assertFalse("Non-xml character wasn't replaced", body.contains("\u0004"));
  }
  @SuppressWarnings("unchecked")
  @Test
  public void testCsvUnMarshalSingleLine() throws Exception {
    result.expectedMessageCount(1);

    template.sendBody("direct:start", "123|Camel in Action|1");

    assertMockEndpointsSatisfied();

    List<List<String>> body = result.getReceivedExchanges().get(0).getIn().getBody(List.class);
    assertEquals(1, body.size());
    assertEquals("123", body.get(0).get(0));
    assertEquals("Camel in Action", body.get(0).get(1));
    assertEquals("1", body.get(0).get(2));
  }
  @Test
  public void testBindingMode() throws Exception {
    MockEndpoint mock = getMockEndpoint("mock:input");
    mock.expectedMessageCount(1);
    mock.message(0).body().isInstanceOf(UserJaxbPojo.class);

    String body = "<user name=\"Donald Duck\" id=\"123\"></user>";
    template.sendBody("netty4-http:http://localhost:" + getPort() + "/users/new", body);

    assertMockEndpointsSatisfied();

    UserJaxbPojo user = mock.getReceivedExchanges().get(0).getIn().getBody(UserJaxbPojo.class);
    assertNotNull(user);
    assertEquals(123, user.getId());
    assertEquals("Donald Duck", user.getName());
  }
  @Test
  public void testUnmarshalPojo() throws Exception {
    MockEndpoint mock = getMockEndpoint("mock:reversePojo");
    mock.expectedMessageCount(1);
    mock.message(0).body().isInstanceOf(TestPojo.class);

    String json = "<pojo name=\"Camel\"/>";
    template.sendBodyAndHeader(
        "direct:backPojo", json, JacksonXMLConstants.UNMARSHAL_TYPE, TestPojo.class.getName());

    assertMockEndpointsSatisfied();

    TestPojo pojo = mock.getReceivedExchanges().get(0).getIn().getBody(TestPojo.class);
    assertNotNull(pojo);
    assertEquals("Camel", pojo.getName());
  }
  public void testUsingCustomExceptionHandlerWithNoRedeliveries() throws Exception {
    b.expectedMessageCount(1);

    sendBody("direct:start", "b");

    MockEndpoint.assertIsSatisfied(a, b);

    List<Exchange> list = b.getReceivedExchanges();
    assertTrue("List should not be empty!", !list.isEmpty());
    Exchange exchange = list.get(0);
    Message in = exchange.getIn();
    log.info("Found message with headers: " + in.getHeaders());

    assertMessageHeader(in, Exchange.REDELIVERY_COUNTER, 0);
    assertMessageHeader(in, Exchange.REDELIVERY_MAX_COUNTER, null);
    assertMessageHeader(in, Exchange.REDELIVERED, false);
  }
  @Test
  public void testSplitAggregatesResponses() throws Exception {
    String[] array = new String[] {"one", "two", "three"};

    MockEndpoint mockOut = getMockEndpoint("mock:out");
    mockOut.expectedMessageCount(1);

    template.sendBody("direct:in", array);

    assertMockEndpointsSatisfied();
    Exchange exchange = mockOut.getReceivedExchanges().get(0);
    @SuppressWarnings("unchecked")
    Set<String> backendResponses =
        Collections.checkedSet(exchange.getIn().getBody(Set.class), String.class);
    assertTrue(
        backendResponses.containsAll(
            Arrays.asList("Processed: one", "Processed: two", "Processed: three")));
  }
  @Test
  public void testInOnlyJMSDestinationName() throws Exception {
    MockEndpoint mock = getMockEndpoint("mock:result");
    mock.expectedMessageCount(1);
    mock.message(0).header("JMSDestination").isNotNull();

    template.sendBodyAndHeader(
        "activemq:queue:bar", "Hello World", JmsConstants.JMS_DESTINATION_NAME, "foo");

    assertMockEndpointsSatisfied();

    assertEquals(
        "queue://foo",
        mock.getReceivedExchanges()
            .get(0)
            .getIn()
            .getHeader("JMSDestination", Destination.class)
            .toString());
  }
  @Test
  public void testForwardingAMessageAcrossJMSKeepingCustomJMSHeaders() throws Exception {
    MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);

    resultEndpoint.expectedBodiesReceived(expectedBody);
    AssertionClause firstMessageExpectations = resultEndpoint.message(0);
    firstMessageExpectations.header("cheese").isEqualTo(123);
    firstMessageExpectations.header("JMSReplyTo").isEqualTo(replyQueue);
    firstMessageExpectations.header("JMSCorrelationID").isEqualTo(correlationID);
    firstMessageExpectations.header("JMSType").isEqualTo(messageType);

    template.sendBodyAndHeader("activemq:test.a", expectedBody, "cheese", 123);

    resultEndpoint.assertIsSatisfied();

    List<Exchange> list = resultEndpoint.getReceivedExchanges();
    Exchange exchange = list.get(0);
    String replyTo = exchange.getIn().getHeader("JMSReplyTo", String.class);
    assertEquals("ReplyTo", replyQueue.toString(), replyTo);
  }
Example #21
0
  @Test
  public void testMocksAreValid() throws Exception {
    // lets add more expectations
    expectedEndpoint.expectedMessageCount(1);
    expectedEndpoint.message(0).header("JMSXGroupID").isEqualTo("ABC");

    MockEndpoint.assertIsSatisfied(camelContext);

    // lets dump the received messages
    List<Exchange> list = expectedEndpoint.getReceivedExchanges();
    for (Exchange exchange : list) {
      Object body = exchange.getIn().getBody();
      LOG.debug(
          "Received: body: "
              + body
              + " of type: "
              + ObjectHelper.className(body)
              + " on: "
              + exchange);
    }
  }
  protected void assertErrorHandlingWorks(String route) throws Exception {
    MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
    MockEndpoint exceptionEndpoint = getMockEndpoint("mock:exception");

    resultEndpoint.expectedMessageCount(0);
    exceptionEndpoint.expectedBodiesReceived("<exception/>");

    try {
      template.sendBodyAndHeader("direct:start", "<body/>", "route", route);
      fail("Should have thrown exception");
    } catch (RuntimeCamelException e) {
      assertTrue(e.getCause() instanceof IllegalArgumentException);
      assertEquals("Exception thrown intentionally.", e.getCause().getMessage());
    }

    assertMockEndpointsSatisfied();

    List<Exchange> list = exceptionEndpoint.getReceivedExchanges();
    Exchange exchange = list.get(0);
    LOG.debug("Received: " + exchange.getIn());
  }
Example #23
0
  @Ignore
  @Test
  @DirtiesContext
  public void validHL7IsConvertedAndAckIsSent() throws Exception {
    standardHL7XMLEndpoint.expectedMessageCount(1);
    t5XMLEndpoint.expectedMessageCount(1);

    String hl7Input =
        "MSH|^~\\&|SendingApplication|SendingFacility|ReceivingApplication|ReceivingFacility|20120530112345||ORU^R01^ORU_R01|9879790003|P|2.6|||NE|AL|USA|ASCII|EN^English^ISO639||IHE_PCD_ORU_R01^IHE PCD^1.3.6.1.4.1.19376.1.6.1.1.1^ISO\r"
            + "PID|||HO2009001^^^NIST^PI||Hon^Albert^^^^^L|Adams^^^^^^L|19610101|M|||15 N Saguaro^^Tucson^AZ^85701\r"
            + "PV1||I|ICU^2^23\r"
            + "OBR|1|||44616-1^Pulse oximetry panel ^LN|||20120512031234||||||||||||||||||F|||||||||||||||||||252465000^Pulse oximetry^SCT|7087005^Intermittent^SCT\r"
            + "NTE|1||This comment refers to all the results in the battery\r"
            + "OBX|1|NM|8889-8^Heart Rate by Oximetry^LN^149530^ MDC_PULS_OXIM_PULS_RATE^MDC|1.11.2.3|55|{beats}/min^beats per minute^UCUM|35-125||99||R|||20120530112340|||AMEAS^auto-measurement^MDC|0123456789ABCDEF^Pulse_Oximeter_Vendor_X^0123456789ABCDEF^EUI-64||49521004^left ear structure^SCT\n"
            + "NTE|1||This is a comment about pulse";

    Parser parser = new PipeParser();
    ORU_R01 originalMessage = (ORU_R01) parser.parse(hl7Input);
    String encodedHL7 = parser.encode(originalMessage);

    String response = minaTemplate.requestBody((Object) encodedHL7, String.class);

    ACK responseMessage = (ACK) parser.parse(response);

    assertEquals(
        AcknowledgmentCode.AA.name(), responseMessage.getMSA().getAcknowledgmentCode().getValue());

    standardHL7XMLEndpoint.assertIsSatisfied();
    t5XMLEndpoint.assertIsSatisfied();

    ORU_R01 outputStandardXMLMessage =
        (ORU_R01) parseXMLExchange(standardHL7XMLEndpoint.getReceivedExchanges().get(0));

    assertEquals(
        originalMessage.getMSH().getMessageType().getName(),
        outputStandardXMLMessage.getMSH().getMessageType().getName());
    assertEquals(
        originalMessage.getMSH().getMessageControlID().getValue(),
        outputStandardXMLMessage.getMSH().getMessageControlID().getValue());
  }
Example #24
0
  public void testSplitterWithStreaming() throws Exception {
    MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
    resultEndpoint.expectedMessageCount(5);
    resultEndpoint.expectedHeaderReceived("foo", "bar");

    template.request(
        "direct:streaming",
        new Processor() {
          public void process(Exchange exchange) {
            Message in = exchange.getIn();
            in.setBody("James,Guillaume,Hiram,Rob,Roman");
            in.setHeader("foo", "bar");
          }
        });

    assertMockEndpointsSatisfied();
    for (Exchange exchange : resultEndpoint.getReceivedExchanges()) {
      assertNotNull(exchange.getProperty(Exchange.SPLIT_INDEX));
      // this header cannot be set when streaming is used
      assertNull(exchange.getProperty(Exchange.SPLIT_SIZE));
    }
  }
  @Test
  public void testSimpleBody() throws Exception {
    MockEndpoint mock = getMockEndpoint("mock:result");
    mock.expectedMessageCount(1);

    Project pojo = new Project();
    pojo.setLicense("XXX");

    template.sendBody("direct:simple", pojo);

    mock.assertIsSatisfied();

    // the result is a List
    List<?> received =
        assertIsInstanceOf(List.class, mock.getReceivedExchanges().get(0).getIn().getBody());

    // and each row in the list is a Map
    Map<?, ?> row = assertIsInstanceOf(Map.class, received.get(0));

    // and we should be able the get the project from the map that should be Linux
    assertEquals("Linux", row.get("PROJECT"));
  }
  @Test
  public void testCamelDropbox() throws Exception {
    template.send(
        "direct:start",
        new Processor() {
          @Override
          public void process(Exchange exchange) throws Exception {
            exchange.getIn().setHeader("test", "test");
          }
        });

    MockEndpoint mock = getMockEndpoint("mock:result");
    mock.expectedMinimumMessageCount(1);
    assertMockEndpointsSatisfied();

    List<Exchange> exchanges = mock.getReceivedExchanges();
    Exchange exchange = exchanges.get(0);
    Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILE.name());
    Object body = exchange.getIn().getBody();
    assertNotNull(header);
    assertNotNull(body);
  }
  @Test
  public void testEndpoint() throws Exception {
    mockEndpoint.reset();
    mockEndpoint.expectedBodiesReceived(expectedBody);

    template.sendBodyAndHeader(
        "https://localhost:" + port + "/test", expectedBody, "Content-Type", "application/xml");

    mockEndpoint.assertIsSatisfied();
    List<Exchange> list = mockEndpoint.getReceivedExchanges();
    Exchange exchange = list.get(0);
    TestSupport.assertNotNull("exchange", exchange);

    Message in = exchange.getIn();
    assertNotNull("in", in);

    Map<String, Object> headers = in.getHeaders();

    log.info("Headers: " + headers);

    assertTrue("Should be more than one header but was: " + headers, headers.size() > 0);
  }
Example #28
0
  @SuppressWarnings("unchecked")
  @Test
  public void testSendMatchingMessage() throws Exception {
    String sender = "sender@localhost";
    String rcpt = "rcpt@localhost";
    String body = "Subject: test\r\n\r\nTestmail";
    SMTPClient client = new SMTPClient();
    client.connect("localhost", 2525);
    client.helo("localhost");
    client.setSender(sender);
    client.addRecipient(rcpt);

    client.sendShortMessageData(body);
    client.quit();
    client.disconnect();
    resultEndpoint.expectedMessageCount(1);
    resultEndpoint.expectedBodyReceived().body(InputStream.class);
    Exchange ex = resultEndpoint.getReceivedExchanges().get(0);
    Map<String, Object> headers = ex.getIn().getHeaders();
    assertEquals(sender, headers.get(MailEnvelopeMessage.SMTP_SENDER_ADRRESS));
    assertEquals(rcpt, headers.get(MailEnvelopeMessage.SMTP_RCPT_ADRRESS_LIST));

    // check type converter
    MimeMessage message = ex.getIn().getBody(MimeMessage.class);
    Enumeration<Header> mHeaders = message.getAllHeaders();
    Header header = null;
    while (mHeaders.hasMoreElements()) {
      header = mHeaders.nextElement();
      if (header.getName().equals("Subject")) {
        break;
      }
    }
    assertNotNull(header);
    assertEquals("Subject", header.getName());
    assertEquals(header.getValue(), "test");

    resultEndpoint.assertIsSatisfied();
  }
  @Test
  public void testBindyUnmarshalQuoteAndCommaDelimiter() throws Exception {
    MockEndpoint mock = getMockEndpoint("mock:out");
    mock.expectedMessageCount(1);

    template.sendBody("direct:out", HEADER + "\n" + ROW);

    assertMockEndpointsSatisfied();

    Map<?, ?> map1 =
        (Map<?, ?>) mock.getReceivedExchanges().get(0).getIn().getBody(List.class).get(0);

    Car rec1 = (Car) map1.values().iterator().next();

    assertEquals("SS552", rec1.getStockid());
    assertEquals("TOYOTA", rec1.getMake());
    assertEquals("KLUGER", rec1.getModel());
    assertEquals(2005, rec1.getYear());
    assertEquals(Double.valueOf("155000.0"), rec1.getKlms(), 0.0001);
    assertEquals("EZR05I", rec1.getNvic());
    assertEquals("Used", rec1.getStatus());
    assertEquals(Car.Colour.BLACK, rec1.getColour());
  }