@Test
public void testQuery03() throws Exception {

    Person p = new Person();
    p.setName("すずき いちろう");
    p.setAge(10);
    p.setList(Arrays.asList("a", "b", "あ"));
    p.setDate(new SimpleDateFormat("yyyy-MM-dd").parse("2000-01-01"));
    String query = Functions.query(p);
    // Spec has been changed between 5.0.0 and 5.0.1
    // 5.0.0 ... list=a,b,あ
    // 5.0.1 ... list[0]=a&list[1]=b&list[2]=あ
    // Either can be populated as { "a", "b", "あ" }
    assertThat(query, is(
            "age=10&date=2000-01-01&list%5B0%5D=a&list%5B1%5D=b&list%5B2%5D=%E3%81%82&name=%E3%81%99%E3%81%9A%E3%81%8D%20%E3%81%84%E3%81%A1%E3%82%8D%E3%81%86"));
    // Spec has been changed betwee 5.0.0 and 5.0.1
    // 5.0.0 ... age=&date=&list=&name=
    // 5.0.1 ... _age=&_date=&_list=&_name=
    assertThat(Functions.query(new Person()), is(
            "_age=&_date=&_list=&_name=")); // null property should show reset parameter that start with "_"
}