public class TestResource {
@Test
public void testResource() throws NoSuchMethodException, SecurityException {
IndexController controller = new IndexController();
Resource resource = new Resource("utf-8");
ControllerMetaInfo cm = new ControllerMetaInfo(controller,
IndexController.class.getMethod("index4", HttpServletRequest.class, HttpServletResponse.class));
resource.add("/user/id-?-?", cm);
resource.add("/user/id-?-?/?", cm);
resource.add("/user/add", cm);
resource.add("/document/_?/?", cm);
resource.add("/shop/fruit/apple/?", cm);
resource.add("/shop/fruit/banana", cm);
resource.add("/file/info.txt", cm);
Result ret = resource.match("/user/id-3344-2222/55555");
Assert.assertThat(ret.getParams().length, is(3));
Assert.assertThat(ret.getParams()[1], is("2222"));
Assert.assertThat(ret.getParams()[2], is("55555"));
ret = resource.match("/shop/fruit/banana");
Assert.assertThat(ret.getParams(), nullValue());
ret = resource.match("/hello");
Assert.assertThat(ret, nullValue());
ret = resource.match("/file/info.txt");
Assert.assertThat(ret, notNullValue());
ret = resource.match("/document/_pengpeng");
Assert.assertThat(ret, nullValue());
Assert.assertThat(resource.getEncoding(), is("utf-8"));
}