public void test_invokePaging_threePageCurrent_countLater_just() {
    // ## Arrange ##
    final List<String> selectedList = new ArrayList<String>();
    fillList(selectedList, 20);
    final SimplePagingBean pagingBean =
        new SimplePagingBean() {
          @Override
          public boolean canPagingCountLater() {
            return true;
          }
        };
    pagingBean.getSqlClause().registerOrderBy("aaa", true, new MockColumnInfo());
    pagingBean.fetchFirst(20);
    pagingBean.fetchPage(3);
    PagingInvoker<String> tgt = createTarget();

    // ## Act ##
    final List<String> markList = new ArrayList<String>();
    PagingResultBean<String> rb =
        tgt.invokePaging(
            new PagingHandler<String>() {
              public PagingBean getPagingBean() {
                return pagingBean;
              }

              public int count() {
                markList.add("count");
                return 60;
              }

              public List<String> paging() {
                markList.add("paging");
                return selectedList;
              }
            });

    // ## Assert ##
    assertEquals(20, rb.size());
    assertEquals(60, rb.getAllRecordCount());
    assertEquals(3, rb.getAllPageCount());
    assertEquals(1, rb.getOrderByClause().getOrderByList().size());
    assertEquals("paging", markList.get(0));
    assertEquals("count", markList.get(1));
  }
  // ===================================================================================
  //                                                                      invokePaging()
  //                                                                      ==============
  public void test_invokePaging_emtpy() {
    // ## Arrange ##
    final List<String> selectedList = new ArrayList<String>();
    final SimplePagingBean pagingBean = new SimplePagingBean();
    pagingBean.getSqlClause().registerOrderBy("aaa", true, new MockColumnInfo());
    pagingBean.fetchFirst(20);
    PagingInvoker<String> tgt = createTarget();

    // ## Act ##
    final List<String> markList = new ArrayList<String>();
    PagingResultBean<String> rb =
        tgt.invokePaging(
            new PagingHandler<String>() {
              public PagingBean getPagingBean() {
                return pagingBean;
              }

              public int count() {
                markList.add("count");
                return 0;
              }

              public List<String> paging() {
                markList.add("paging");
                return selectedList;
              }
            });

    // ## Assert ##
    assertEquals(0, rb.size());
    assertEquals(0, rb.getAllRecordCount());
    assertEquals(1, rb.getAllPageCount());
    assertEquals(1, rb.getOrderByClause().getOrderByList().size());
    assertEquals("count", markList.get(0));
    assertEquals(1, markList.size());
  }