Esempio n. 1
0
  public void testFormatExpression() throws Exception {
    exchange.getIn().setHeader("head", "foo");

    assertEquals(
        "foo", SimpleBuilder.simpleF("${header.%s}", "head").evaluate(exchange, String.class));
    assertNull(SimpleBuilder.simple("${header.cheese}").evaluate(exchange, String.class));
  }
Esempio n. 2
0
  public void testFormatExpressionWithResultType() throws Exception {
    exchange.getIn().setHeader("head", "200");

    assertEquals(
        200,
        SimpleBuilder.simpleF("${header.%s}", Integer.class, "head")
            .evaluate(exchange, Object.class));
  }
Esempio n. 3
0
  public void testResultType() throws Exception {
    exchange.getIn().setBody("foo");
    exchange.getIn().setHeader("cool", true);

    assertEquals(
        "foo", SimpleBuilder.simple("${body}", String.class).evaluate(exchange, Object.class));
    try {
      // error during conversion
      SimpleBuilder.simple("${body}", int.class).evaluate(exchange, Object.class);
      fail("Should have thrown exception");
    } catch (TypeConversionException e) {
      assertIsInstanceOf(NumberFormatException.class, e.getCause().getCause());
    }

    assertEquals(
        true,
        SimpleBuilder.simple("${header.cool}", boolean.class).evaluate(exchange, Object.class));
    assertEquals(
        "true",
        SimpleBuilder.simple("${header.cool}", String.class).evaluate(exchange, Object.class));
    // not possible
    assertEquals(
        null, SimpleBuilder.simple("${header.cool}", int.class).evaluate(exchange, Object.class));

    assertEquals(
        true,
        SimpleBuilder.simple("${header.cool}")
            .resultType(Boolean.class)
            .evaluate(exchange, Object.class));
    assertEquals(
        "true",
        SimpleBuilder.simple("${header.cool}")
            .resultType(String.class)
            .evaluate(exchange, Object.class));
    // not possible
    assertEquals(
        null,
        SimpleBuilder.simple("${header.cool}")
            .resultType(int.class)
            .evaluate(exchange, Object.class));

    // should be convertable to integers
    assertEquals(11, SimpleBuilder.simple("11", int.class).evaluate(exchange, Object.class));
  }
Esempio n. 4
0
  public void testRegexAllWithPlaceHolders() {
    exchange.getIn().setHeader("activateUrl", "http://some/rest/api/(id)/activate");
    assertEquals(
        "http://some/rest/api/12/activate",
        SimpleBuilder.simple("${header.activateUrl.replaceAll(\"\\(id\\)\",\"12\")}")
            .evaluate(exchange, String.class));

    // passes when contains { only
    exchange.getIn().setHeader("activateUrl", "http://some/rest/api/{id/activate");
    assertEquals(
        "http://some/rest/api/12/activate",
        SimpleBuilder.simple("${header.activateUrl.replaceAll(\"\\{id\",\"12\")}")
            .evaluate(exchange, String.class));

    String replaced = "http://some/rest/api/{id}/activate".replaceAll("\\{id\\}", "12");
    assertEquals("http://some/rest/api/12/activate", replaced);

    // passes when contains { }
    exchange.getIn().setHeader("activateUrl", "http://some/rest/api/{id}/activate");
    assertEquals(
        "http://some/rest/api/12/activate",
        SimpleBuilder.simple("${header.activateUrl.replaceAll(\"\\{id\\}\",\"12\")}")
            .evaluate(exchange, String.class));

    // passes when contains { } and another ${body} function
    exchange.getIn().setBody("12");
    assertEquals(
        "http://some/rest/api/12/activate",
        SimpleBuilder.simple("${header.activateUrl.replaceAll(\"\\{id\\}\",\"${body}\")}")
            .evaluate(exchange, String.class));

    // passes when } is escaped with \}
    assertEquals(
        "http://some/rest/api/{}/activate",
        SimpleBuilder.simple("${header.activateUrl.replaceAll(\"\\{id\\}\",\"{\\}\")}")
            .evaluate(exchange, String.class));
  }
Esempio n. 5
0
  public void testExpression() throws Exception {
    exchange.getIn().setBody("foo");

    assertEquals("foo", SimpleBuilder.simple("${body}").evaluate(exchange, String.class));
    assertNull(SimpleBuilder.simple("${header.cheese}").evaluate(exchange, String.class));
  }
Esempio n. 6
0
  public void testPredicate() throws Exception {
    exchange.getIn().setBody("foo");

    assertTrue(SimpleBuilder.simple("${body} == 'foo'").matches(exchange));
    assertFalse(SimpleBuilder.simple("${body} == 'bar'").matches(exchange));
  }
 public void setSimplePredicate(String expression) {
   this.predicate = SimpleBuilder.simple(expression, Boolean.class);
 }
Esempio n. 8
0
 public static SimpleBuilder simple(String text, Class<?> resultType) {
   SimpleBuilder answer = simple(text);
   answer.setResultType(resultType);
   return answer;
 }