public void validRequest() {
    LOG.debug("Checking the valid request information ...");
    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);

    assertEquals(service.getStartRow(), VALID_START_ROW);
    assertEquals(service.getPageSize(), VALID_PAGE_SIZE);
  }
  public void withOrderSingleString() {
    LOG.debug("Checking order parameters ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE).orderBy("name");

    assertNotNull(service.getOrder());
    assertFalse(service.getOrder().isEmpty());
    assertEquals(service.getOrder().get(0), new CRUDOrder("name", CRUDOrder.ASCENDING));
  }
  public void withMultipleOrders() {
    LOG.debug("Checking multiple sort orders ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE).orderBy("name").orderBy("age");

    assertNotNull(service.getOrder());
    assertEquals(service.getOrder().size(), 2);

    assertEquals(service.getOrder().get(0), new CRUDOrder("name", CRUDOrder.ASCENDING));
    assertEquals(service.getOrder().get(1), new CRUDOrder("age", CRUDOrder.ASCENDING));
  }
  public void checkToString() {
    LOG.debug("Checking toString() ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);

    assertEquals(
        service.toString().substring(0, service.toString().indexOf('@')),
        "de.kaiserpfalzEdv.jee.persistence.impl.PageRequestImpl");
    assertEquals(
        service.toString().substring(service.toString().indexOf('[')),
        "[startRow=" + VALID_START_ROW + ",pageSize=" + VALID_PAGE_SIZE + "]");
  }
  @Test(
      expectedExceptions = IllegalArgumentException.class,
      expectedExceptionsMessageRegExp = ".* is an invalid field name for a sorting order.")
  public void withOrderEmpty() {
    LOG.debug("Checking with single invalid ORDER parameter ...");

    new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE).orderBy("");

    assertNotNull(service.getOrder());
    assertFalse(service.getOrder().isEmpty());
    assertEquals(service.getOrder().get(0), new CRUDOrder("name", CRUDOrder.ASCENDING));
  }
  public void checkToStringOrdered() {
    LOG.debug("Checking toString() with ordered request ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE).orderBy("name");

    assertEquals(
        service.toString().substring(0, service.toString().indexOf('@')),
        "de.kaiserpfalzEdv.jee.persistence.impl.PageRequestImpl");
    assertEquals(
        service.toString().substring(service.toString().indexOf('[')),
        "[startRow="
            + VALID_START_ROW
            + ",pageSize="
            + VALID_PAGE_SIZE
            + ",ordered=[CRUDOrder[name|ASCENDING]]]");
  }
  public void equalsSame() {
    LOG.debug("Checking equals(same object) ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);

    assertTrue(service.equals(service));
  }
  public void checkHashCode() {
    LOG.debug("Checking hashCode() ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);

    assertEquals(service.hashCode(), 10L);
  }
  public void equalsOtherPageSize() {
    LOG.debug("Checking equals(other data page size) ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);
    PageRequestImpl other = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE + 1);

    assertFalse(service.equals(other));
  }
  public void equalsSameParameters() {
    LOG.debug("Checking equals(same data) ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);
    PageRequestImpl other = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);

    assertTrue(service.equals(other));
  }
  public void equalsOtherType() {
    LOG.debug("Checking equals(other type) ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);

    //noinspection EqualsBetweenInconvertibleTypes
    assertFalse(service.equals(this));
  }
  public void equalsOtherStartRow() {
    LOG.debug("Checking equals(other data start row) ...");

    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE);
    //noinspection PointlessArithmeticExpression
    PageRequestImpl other = new PageRequestImpl(VALID_START_ROW + 1, VALID_PAGE_SIZE);

    assertFalse(service.equals(other));
  }
  public void withOrderEmptyArray() {
    service = new PageRequestImpl(VALID_START_ROW, VALID_PAGE_SIZE).orderBy(new CRUDOrder[0]);

    assertNotNull(service.getOrder());
    assertTrue(service.getOrder().isEmpty());
  }