Esempio n. 1
0
  @Test
  public void testExpressionWithNestedGroupAndTwoVars2() throws Exception {
    URITemplate uriTemplate = new URITemplate("/foo/{bar}{resource:(/format/[^/]+?)?}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/foo/1/format", values));
    assertEquals("1", values.getFirst("bar"));
    assertEquals("/format", values.getFirst("resource"));
    String finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/", finalPath);
    values.clear();

    assertTrue(uriTemplate.match("/foo/1/format/2", values));
    assertEquals("1", values.getFirst("bar"));
    assertEquals("/format/2", values.getFirst("resource"));
    finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/", finalPath);
    values.clear();

    assertTrue(uriTemplate.match("/foo/1", values));
    assertEquals("1", values.getFirst("bar"));
    assertNull(values.getFirst("resource"));
    finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/", finalPath);
  }
Esempio n. 2
0
  @Test
  public void testExpressionWithTwoVars() throws Exception {
    URITemplate uriTemplate = new URITemplate("/{tenant : [^/]*}/resource/{id}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();
    boolean match = uriTemplate.match("/t1/resource/1", values);
    assertTrue(match);
    String tenant = values.getFirst("tenant");
    assertEquals("t1", tenant);
    String id = values.getFirst("id");
    assertEquals("1", id);
    String finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/", finalPath);

    values.clear();
    match = uriTemplate.match("//resource/1", values);
    assertTrue(match);
    tenant = values.getFirst("tenant");
    assertEquals("", tenant);
    id = values.getFirst("id");
    assertEquals("1", id);
    finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/", finalPath);

    values.clear();
    match = uriTemplate.match("/t1/resource/1/sub", values);
    assertTrue(match);
    tenant = values.getFirst("tenant");
    assertEquals("t1", tenant);
    id = values.getFirst("id");
    assertEquals("1", id);
    finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/sub", finalPath);
  }
Esempio n. 3
0
  @Test
  public void testEncodedSpace() throws Exception {
    URITemplate uriTemplate = new URITemplate("/1 2/%203");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/1%202/%203", values));
    assertFalse(uriTemplate.match("/1 2/%203", values));
  }
Esempio n. 4
0
 @Test
 public void testBaseTail1() {
   URITemplate uriTemplate = new URITemplate("/{base:base.+}/{tail}");
   MultivaluedMap<String, String> values = new MetadataMap<String, String>();
   assertFalse(uriTemplate.match("/base/tails", values));
   assertTrue(uriTemplate.match("/base1/tails", values));
   assertEquals("base1", values.getFirst("base"));
   assertEquals("tails", values.getFirst("tail"));
 }
Esempio n. 5
0
  @Test
  public void testEscapingWildCard() throws Exception {
    URITemplate uriTemplate = new URITemplate("/books/a*");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/books/a*", values));
    assertFalse(uriTemplate.match("/books/a", values));
    assertFalse(uriTemplate.match("/books/ac", values));
  }
Esempio n. 6
0
  @Test
  public void testValueWithLiteralPlus() throws Exception {
    URITemplate uriTemplate = new URITemplate("/books/ab+");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/books/ab+", values));
    assertFalse(uriTemplate.match("/books/abb", values));
    assertFalse(uriTemplate.match("/books/ab", values));
    assertFalse(uriTemplate.match("/books/a", values));
  }
Esempio n. 7
0
  @Test
  public void testBasicCustomExpression4() throws Exception {
    URITemplate uriTemplate = new URITemplate("/books/{bookId:...\\.}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/books/123.", values));
    assertEquals("123.", values.getFirst("bookId"));
    values.clear();
    assertTrue(uriTemplate.match("/books/abc.", values));
    assertEquals("abc.", values.getFirst("bookId"));
    assertFalse(uriTemplate.match("/books/abcd", values));
    assertFalse(uriTemplate.match("/books/abc", values));
  }
Esempio n. 8
0
  @Test
  public void testMatchWithMatrixOnClearPath4() throws Exception {
    URITemplate uriTemplate = new URITemplate("/customers");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/customers;123456/123/orders;456/3", values));
  }
Esempio n. 9
0
  @Test
  public void testFailCustomExpression() throws Exception {
    URITemplate uriTemplate = new URITemplate("/books/{bookId:124}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/books/123/chapter/1", values);
    assertFalse(match);
  }
Esempio n. 10
0
  @Test
  public void testMatchWithMatrixOnClearPath5() throws Exception {
    URITemplate uriTemplate = new URITemplate("/customers");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/customers;a=b", values));
    String finalGroup = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/", finalGroup);
  }
Esempio n. 11
0
  @Test
  public void testMatchWithMatrixOnClearPath2() throws Exception {
    URITemplate uriTemplate = new URITemplate("/customers/{id}/orders/{order}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/customers;123456/123/orders;456/3", values));
    assertEquals("123", values.getFirst("id"));
    assertEquals("3", values.getFirst("order"));
  }
Esempio n. 12
0
  @Test
  public void testLiteralExpression() throws Exception {
    URITemplate uriTemplate = new URITemplate("/bar");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/bar/baz", values));
    String finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/baz", finalPath);
  }
Esempio n. 13
0
  @Test
  public void testMatchWithMatrixOnClearPath1() throws Exception {
    URITemplate uriTemplate = new URITemplate("/customers/{id}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/customers;123456/123/", values);
    assertTrue(match);
    String value = values.getFirst("id");
    assertEquals("123", value);
  }
Esempio n. 14
0
  @Test
  public void testMatchWithMatrixWithEmptyPath2() throws Exception {
    URITemplate uriTemplate = new URITemplate("/");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/;a=b/b/c", values);
    assertTrue(match);
    String finalGroup = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/b/c", finalGroup);
  }
Esempio n. 15
0
  @Test
  public void testExpressionWithNestedGroup2() throws Exception {
    URITemplate uriTemplate = new URITemplate("/{resource:.+\\.(js|css|gif|png)}/bar");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(uriTemplate.match("/script.js/bar/baz", values));
    assertEquals("script.js", values.getFirst("resource"));
    String finalPath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/baz", finalPath);
  }
Esempio n. 16
0
  @Test
  public void testURITemplateWithSubResourceVariation4() throws Exception {
    URITemplate uriTemplate = new URITemplate("/");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/books/123/chapter/1", values);
    assertTrue(match);
    String subResourcePath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/books/123/chapter/1", subResourcePath);
  }
Esempio n. 17
0
  private void doTestBasicCustomExpression(String expression) {
    URITemplate uriTemplate = new URITemplate(expression);
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/books/123/chapter/1", values);
    assertTrue(match);
    assertEquals("123", values.getFirst("bookId"));
    String subResourcePath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/chapter/1", subResourcePath);
  }
Esempio n. 18
0
  @Test
  public void testURITemplateWithSubResourceVariation2() throws Exception {
    // So "/customers" is the URITemplate for the root resource class
    URITemplate uriTemplate = new URITemplate("/customers");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/customers/name/john/dep/CS", values);
    assertTrue(match);
    String subResourcePath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/name/john/dep/CS", subResourcePath);
  }
Esempio n. 19
0
  @Test
  public void testBasicCustomExpression3() throws Exception {
    URITemplate uriTemplate = new URITemplate("/books/{bookId:\\d\\d\\d}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/books/123/chapter/1", values);
    assertTrue(match);
    assertEquals("123", values.getFirst("bookId"));
    String subResourcePath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/chapter/1", subResourcePath);
  }
Esempio n. 20
0
  @Test
  public void testMatchBasicTwoParametersVariation2() throws Exception {
    URITemplate uriTemplate = new URITemplate("/customers/name/{name}/dep/{department}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/customers/name/john/dep/CS", values);
    assertTrue(match);
    String name = values.getFirst("name");
    String department = values.getFirst("department");
    assertEquals("john", name);
    assertEquals("CS", department);
  }
Esempio n. 21
0
  @Test
  public void testMatchWithMultipleMatrixParams() throws Exception {
    URITemplate uriTemplate =
        new URITemplate(
            "renderwidget/id/{id}/type/{type}/size/{size}/locale/{locale}/{properties}");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    assertTrue(
        uriTemplate.match(
            "renderwidget/id/1007/type/1/size/1/locale/en_US/properties;a=b", values));
    assertEquals("1007", values.getFirst("id"));
  }
Esempio n. 22
0
  @Test
  /*
   * Test a sub-resource locator method like this @HttpMethod("GET") @UriTemplate("/books/{bookId}/") public
   * Book getBook(@UriParam("bookId") String id)
   */
  public void testURITemplateWithSubResourceVariation3() throws Exception {
    URITemplate uriTemplate = new URITemplate("/books/{bookId}/");
    MultivaluedMap<String, String> values = new MetadataMap<String, String>();

    boolean match = uriTemplate.match("/books/123/chapter/1", values);
    assertTrue(match);
    String subResourcePath = values.getFirst(URITemplate.FINAL_MATCH_GROUP);
    assertEquals("/chapter/1", subResourcePath);
  }