Ejemplo n.º 1
0
 @Test
 public void testSubstituteMapSameVars() throws Exception {
   URITemplate ut = new URITemplate("/foo/{a}/{a}/{a}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("a", "bar");
   assertEquals("Wrong substitution", "/foo/bar/bar/bar", ut.substitute(map));
 }
Ejemplo n.º 2
0
 @Test
 public void testSubstituteMapSameVarWithPattern() throws Exception {
   URITemplate ut = new URITemplate("/foo/{a}/{a:\\d}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("a", "0");
   assertEquals("Wrong substitution", "/foo/0/0", ut.substitute(map));
 }
Ejemplo n.º 3
0
 @Test(expected = IllegalArgumentException.class)
 public void testSubstituteMapIncomplete() throws Exception {
   URITemplate ut = new URITemplate("/foo/{a}/{b}/{a:\\d}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("b", "bar");
   ut.substitute(map);
 }
Ejemplo n.º 4
0
 @Test
 public void testNestedCurlyBraces() {
   URITemplate ut = new URITemplate("/foo/{hex:[0-9a-fA-F]{2}}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("hex", "FF");
   assertEquals("Wrong substitution", "/foo/FF", ut.substitute(map));
 }
Ejemplo n.º 5
0
 @Test(expected = IllegalArgumentException.class)
 public void testSubstituteMapSameVarWithPatternFail() throws Exception {
   URITemplate ut = new URITemplate("/foo/{a}/{a:\\d}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("a", "not-a-digit");
   ut.substitute(map);
 }
Ejemplo n.º 6
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));
  }
Ejemplo n.º 7
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);
  }
Ejemplo n.º 8
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);
  }
Ejemplo n.º 9
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));
  }
Ejemplo n.º 10
0
 @Test
 public void testCompareRegExTemplates() {
   URITemplate t1 = new URITemplate("{entitySetName}{optionalParens: (\\(\\))?}");
   URITemplate t2 = new URITemplate("{entitySetName}{id: \\(.+?\\)}");
   assertTrue(URITemplate.compareTemplates(t1, t2) < 0);
   assertTrue(URITemplate.compareTemplates(t2, t1) > 0);
   assertEquals(0, URITemplate.compareTemplates(t2, t2));
 }
Ejemplo n.º 11
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);
  }
Ejemplo n.º 12
0
 @Test
 public void testSubstituteMapExceeding() throws Exception {
   URITemplate ut = new URITemplate("/foo/{a}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("b", "baz");
   map.put("a", "blah");
   assertEquals("Wrong substitution", "/foo/blah", ut.substitute(map));
 }
Ejemplo n.º 13
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));
  }
Ejemplo n.º 14
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);
  }
Ejemplo n.º 15
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"));
  }
Ejemplo n.º 16
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"));
 }
Ejemplo n.º 17
0
 @Test
 public void testSubstituteMap() throws Exception {
   URITemplate ut = new URITemplate("/foo/{a}/{b:\\d\\d}/{c}");
   Map<String, String> map = new HashMap<String, String>();
   map.put("c", "foo");
   map.put("b", "11");
   map.put("a", "bar");
   assertEquals("Wrong substitution", "/foo/bar/11/foo", ut.substitute(map));
 }
Ejemplo n.º 18
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);
  }
Ejemplo n.º 19
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);
  }
Ejemplo n.º 20
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);
  }
Ejemplo n.º 21
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);
  }
Ejemplo n.º 22
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);
  }
Ejemplo n.º 23
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));
  }
Ejemplo n.º 24
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);
  }
Ejemplo n.º 25
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);
  }
Ejemplo n.º 26
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);
  }
Ejemplo n.º 27
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);
  }
Ejemplo n.º 28
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"));
  }
Ejemplo n.º 29
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));
  }
Ejemplo n.º 30
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);
  }