You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2014/10/09 17:06:19 UTC

[12/19] line ending issue again

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderDeltaTest.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderDeltaTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderDeltaTest.java
index f16cbc6..947ed54 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderDeltaTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderDeltaTest.java
@@ -1,357 +1,357 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.access.data;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.odata2.jpa.processor.core.access.data.JPAPage.JPAPageBuilder;
-import org.junit.Test;
-
-public class JPAPageBuilderDeltaTest {
-
-  private static final int PAGE_SIZE = 10;
-
-  @Test
-  public void testBuildDefaultDelta() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .build();
-
-    assertEquals(20, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(10, page.getPagedEntities().size());
-
-    List<Object> pagedEntities = page.getPagedEntities();
-
-    assertEquals("9", pagedEntities.get(0));
-    assertEquals("18", pagedEntities.get(9));
-  }
-
-  @Test
-  public void testBuildWithNoSkipTokenDelta() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("0")
-        .build();
-
-    assertEquals(10, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertEquals(10, pagedEntities.size());
-    assertEquals("0", pagedEntities.get(0));
-    assertEquals("9", pagedEntities.get(9));
-  }
-
-  @Test
-  public void testBuildDefaultZeroPageDelta() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(0)
-        .skipToken("10")
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(0, page.getPagedEntities().size());
-
-  }
-
-  @Test
-  public void testBuildWithNullSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken(null)
-        .build();
-
-    assertEquals(10, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-    assertEquals("0", pagedEntities.get(0));
-    assertEquals("9", pagedEntities.get(9));
-  }
-
-  @Test
-  public void testBuildWithInvalidSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    try {
-      pageBuilder.entities(mockEntities())
-          .skipToken("AB");
-    } catch (NumberFormatException e) {
-      return;
-    }
-    fail("Exception Expected");
-  }
-
-  @Test
-  public void testBuildWithTop() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("20")
-        .top(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(20, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-    assertEquals(5, pagedEntities.size());
-    assertEquals("19", pagedEntities.get(0));
-    assertEquals("23", pagedEntities.get(4));
-  }
-
-  @Test
-  public void testBuildWithTopZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(0)
-        .skipToken("10")
-        .top(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(5, page.getPagedEntities().size());
-  }
-
-  @Test
-  public void testBuildWithSkipZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(0)
-        .skipToken("10")
-        .skip(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(0, page.getPagedEntities().size());
-  }
-
-  @Test
-  public void testBuildWithTopSkipZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(0)
-        .skipToken("10")
-        .skip(5)
-        .top(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(5, page.getPagedEntities().size());
-  }
-
-  @Test
-  public void testBuildWithTopExceeds() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(15)
-        .build();
-
-    assertEquals(20, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-    assertEquals(10, pagedEntities.size());
-    assertEquals("9", pagedEntities.get(0));
-    assertEquals("18", pagedEntities.get(9));
-  }
-
-  @Test
-  public void testBuildWithTopSkipExceeds() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(5)
-        .skip(10)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertEquals(0, pagedEntities.size());
-
-  }
-
-  @Test
-  public void testBuildWithTopSkipMore() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(5)
-        .skip(9)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-
-    assertEquals("18", pagedEntities.get(0));
-    assertEquals(1, pagedEntities.size());
-  }
-
-  @Test
-  public void testBuildWithTopMoreSkip() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(15)
-        .skip(9)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-
-    assertEquals("18", pagedEntities.get(0));
-    assertEquals(1, pagedEntities.size());
-  }
-
-  @Test
-  public void testBuildWithTopXSkipX() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(15)
-        .skip(15)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-
-    assertEquals(0, pagedEntities.size());
-  }
-
-  @Test
-  public void testBuildWithNegativeTop() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(-5)
-        .build();
-
-    assertEquals(20, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-
-    assertEquals("9", pagedEntities.get(0));
-    assertEquals(10, pagedEntities.size());
-  }
-
-  @Test
-  public void testBuildWithNegativeTopSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("-10")
-        .top(-5)
-        .skip(-1)
-        .build();
-
-    assertEquals(10, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-
-    assertEquals(10, pagedEntities.size());
-
-  }
-
-  @Test
-  public void testBuildWithNoRecords() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    JPAPage page = pageBuilder.entities(mockEntities())
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(1)
-        .skip(1)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    List<Object> pagedEntities = page.getPagedEntities();
-    assertNotNull(pagedEntities);
-
-    assertEquals(1, pagedEntities.size());
-    assertEquals("10", pagedEntities.get(0));
-  }
-
-  private List<Object> mockEntities() {
-    List<Object> entities = new ArrayList<Object>();
-    for (int i = 0; i < 30; i++) {
-      entities.add(String.valueOf(i));
-    }
-    return entities;
-  }
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.access.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.odata2.jpa.processor.core.access.data.JPAPage.JPAPageBuilder;
+import org.junit.Test;
+
+public class JPAPageBuilderDeltaTest {
+
+  private static final int PAGE_SIZE = 10;
+
+  @Test
+  public void testBuildDefaultDelta() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .build();
+
+    assertEquals(20, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(10, page.getPagedEntities().size());
+
+    List<Object> pagedEntities = page.getPagedEntities();
+
+    assertEquals("9", pagedEntities.get(0));
+    assertEquals("18", pagedEntities.get(9));
+  }
+
+  @Test
+  public void testBuildWithNoSkipTokenDelta() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("0")
+        .build();
+
+    assertEquals(10, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertEquals(10, pagedEntities.size());
+    assertEquals("0", pagedEntities.get(0));
+    assertEquals("9", pagedEntities.get(9));
+  }
+
+  @Test
+  public void testBuildDefaultZeroPageDelta() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(0)
+        .skipToken("10")
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(0, page.getPagedEntities().size());
+
+  }
+
+  @Test
+  public void testBuildWithNullSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken(null)
+        .build();
+
+    assertEquals(10, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+    assertEquals("0", pagedEntities.get(0));
+    assertEquals("9", pagedEntities.get(9));
+  }
+
+  @Test
+  public void testBuildWithInvalidSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    try {
+      pageBuilder.entities(mockEntities())
+          .skipToken("AB");
+    } catch (NumberFormatException e) {
+      return;
+    }
+    fail("Exception Expected");
+  }
+
+  @Test
+  public void testBuildWithTop() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("20")
+        .top(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(20, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+    assertEquals(5, pagedEntities.size());
+    assertEquals("19", pagedEntities.get(0));
+    assertEquals("23", pagedEntities.get(4));
+  }
+
+  @Test
+  public void testBuildWithTopZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(0)
+        .skipToken("10")
+        .top(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(5, page.getPagedEntities().size());
+  }
+
+  @Test
+  public void testBuildWithSkipZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(0)
+        .skipToken("10")
+        .skip(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(0, page.getPagedEntities().size());
+  }
+
+  @Test
+  public void testBuildWithTopSkipZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(0)
+        .skipToken("10")
+        .skip(5)
+        .top(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(5, page.getPagedEntities().size());
+  }
+
+  @Test
+  public void testBuildWithTopExceeds() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(15)
+        .build();
+
+    assertEquals(20, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+    assertEquals(10, pagedEntities.size());
+    assertEquals("9", pagedEntities.get(0));
+    assertEquals("18", pagedEntities.get(9));
+  }
+
+  @Test
+  public void testBuildWithTopSkipExceeds() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(5)
+        .skip(10)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertEquals(0, pagedEntities.size());
+
+  }
+
+  @Test
+  public void testBuildWithTopSkipMore() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(5)
+        .skip(9)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+
+    assertEquals("18", pagedEntities.get(0));
+    assertEquals(1, pagedEntities.size());
+  }
+
+  @Test
+  public void testBuildWithTopMoreSkip() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(15)
+        .skip(9)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+
+    assertEquals("18", pagedEntities.get(0));
+    assertEquals(1, pagedEntities.size());
+  }
+
+  @Test
+  public void testBuildWithTopXSkipX() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(15)
+        .skip(15)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+
+    assertEquals(0, pagedEntities.size());
+  }
+
+  @Test
+  public void testBuildWithNegativeTop() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(-5)
+        .build();
+
+    assertEquals(20, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+
+    assertEquals("9", pagedEntities.get(0));
+    assertEquals(10, pagedEntities.size());
+  }
+
+  @Test
+  public void testBuildWithNegativeTopSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("-10")
+        .top(-5)
+        .skip(-1)
+        .build();
+
+    assertEquals(10, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+
+    assertEquals(10, pagedEntities.size());
+
+  }
+
+  @Test
+  public void testBuildWithNoRecords() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    JPAPage page = pageBuilder.entities(mockEntities())
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(1)
+        .skip(1)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    List<Object> pagedEntities = page.getPagedEntities();
+    assertNotNull(pagedEntities);
+
+    assertEquals(1, pagedEntities.size());
+    assertEquals("10", pagedEntities.get(0));
+  }
+
+  private List<Object> mockEntities() {
+    List<Object> entities = new ArrayList<Object>();
+    for (int i = 0; i < 30; i++) {
+      entities.add(String.valueOf(i));
+    }
+    return entities;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderTest.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderTest.java
index 0232163..326c39f 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAPageBuilderTest.java
@@ -1,560 +1,560 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.access.data;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.persistence.FlushModeType;
-import javax.persistence.LockModeType;
-import javax.persistence.Parameter;
-import javax.persistence.Query;
-import javax.persistence.TemporalType;
-
-import org.apache.olingo.odata2.jpa.processor.core.access.data.JPAPage.JPAPageBuilder;
-import org.junit.Test;
-
-public class JPAPageBuilderTest {
-
-  private static final int PAGE_SIZE = 10;
-
-  @Test
-  public void testBuildDefault() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(1, page.getPagedEntities().size());
-
-    assertEquals(10, query.getFirstResult());
-    assertEquals(10, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildDefaultZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(0)
-        .skipToken("10")
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(0, page.getPagedEntities().size());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(0, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithNoSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("0")
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-    assertEquals(1, page.getPagedEntities().size());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(10, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithNullSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken(null)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(10, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithInvalidSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    try {
-      pageBuilder.query(query)
-          .skipToken("AB");
-    } catch (NumberFormatException e) {
-      return;
-    }
-    fail("Exception Expected");
-  }
-
-  @Test
-  public void testBuildWithTop() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(10, query.getFirstResult());
-    assertEquals(5, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(0)
-        .skipToken("10")
-        .top(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(5, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithSkipZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(0)
-        .skipToken("10")
-        .skip(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(5, query.getFirstResult());
-    assertEquals(0, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopSkipZeroPage() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(0)
-        .skipToken("10")
-        .skip(5)
-        .top(5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(0, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(5, query.getFirstResult());
-    assertEquals(5, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopExceeds() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(15)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(10, query.getFirstResult());
-    assertEquals(10, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopSkipExceeds() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(5)
-        .skip(10)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertEquals(0, page.getPagedEntities().size());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(0, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopSkipMore() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(5)
-        .skip(9)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(19, query.getFirstResult());
-    assertEquals(1, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopMoreSkip() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(15)
-        .skip(9)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(19, query.getFirstResult());
-    assertEquals(1, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithTopXSkipX() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(15)
-        .skip(15)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(0, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithNegativeTop() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(-5)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(10, query.getFirstResult());
-    assertEquals(10, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithNegativeTopSkipToken() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(false);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("-10")
-        .top(-5)
-        .skip(-1)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(0, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(0, query.getFirstResult());
-    assertEquals(10, query.getMaxResults());
-  }
-
-  @Test
-  public void testBuildWithNoRecords() {
-    JPAPageBuilder pageBuilder = new JPAPageBuilder();
-    Query query = mockQuery(true);
-
-    JPAPage page = pageBuilder.query(query)
-        .pageSize(PAGE_SIZE)
-        .skipToken("10")
-        .top(1)
-        .skip(1)
-        .build();
-
-    assertEquals(0, page.getNextPage());
-    assertEquals(10, page.getStartPage());
-    assertEquals(PAGE_SIZE, page.getPageSize());
-    assertNotNull(page.getPagedEntities());
-
-    assertEquals(11, query.getFirstResult());
-    assertEquals(1, query.getMaxResults());
-  }
-
-  private Query mockQuery(final boolean setNoRecords) {
-
-    return new Query() {
-
-      private int maxResults;
-      private int firstResult;
-
-      @Override
-      public Query setFirstResult(final int arg0) {
-        firstResult = arg0;
-        return this;
-      }
-
-      @Override
-      public Query setMaxResults(final int arg0) {
-        maxResults = arg0;
-        return this;
-      }
-
-      @Override
-      public int getMaxResults() {
-        return maxResults;
-      }
-
-      @Override
-      public int getFirstResult() {
-        return firstResult;
-      }
-
-      @Override
-      public List<Object> getResultList() {
-        List<Object> list = new ArrayList<Object>();
-        if (maxResults > 0 && setNoRecords == false) {
-          list.add(new Integer(1));
-        }
-        return list;
-      }
-
-      @Override
-      public <T> T unwrap(final Class<T> arg0) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final int arg0, final Date arg1, final TemporalType arg2) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final int arg0, final Calendar arg1, final TemporalType arg2) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final String arg0, final Date arg1, final TemporalType arg2) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final String arg0, final Calendar arg1, final TemporalType arg2) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final Parameter<Date> arg0, final Date arg1, final TemporalType arg2) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final Parameter<Calendar> arg0, final Calendar arg1, final TemporalType arg2) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final int arg0, final Object arg1) {
-        return null;
-      }
-
-      @Override
-      public Query setParameter(final String arg0, final Object arg1) {
-        return null;
-      }
-
-      @Override
-      public <T> Query setParameter(final Parameter<T> arg0, final T arg1) {
-        return null;
-      }
-
-      @Override
-      public Query setLockMode(final LockModeType arg0) {
-        return null;
-      }
-
-      @Override
-      public Query setHint(final String arg0, final Object arg1) {
-        return null;
-      }
-
-      @Override
-      public Query setFlushMode(final FlushModeType arg0) {
-        return null;
-      }
-
-      @Override
-      public boolean isBound(final Parameter<?> arg0) {
-        return false;
-      }
-
-      @Override
-      public Object getSingleResult() {
-        return null;
-      }
-
-      @Override
-      public Set<Parameter<?>> getParameters() {
-        return null;
-      }
-
-      @Override
-      public Object getParameterValue(final int arg0) {
-        return null;
-      }
-
-      @Override
-      public Object getParameterValue(final String arg0) {
-        return null;
-      }
-
-      @Override
-      public <T> T getParameterValue(final Parameter<T> arg0) {
-        return null;
-      }
-
-      @Override
-      public <T> Parameter<T> getParameter(final int arg0, final Class<T> arg1) {
-        return null;
-      }
-
-      @Override
-      public <T> Parameter<T> getParameter(final String arg0, final Class<T> arg1) {
-        return null;
-      }
-
-      @Override
-      public Parameter<?> getParameter(final int arg0) {
-        return null;
-      }
-
-      @Override
-      public Parameter<?> getParameter(final String arg0) {
-        return null;
-      }
-
-      @Override
-      public LockModeType getLockMode() {
-        return null;
-      }
-
-      @Override
-      public Map<String, Object> getHints() {
-        return null;
-      }
-
-      @Override
-      public FlushModeType getFlushMode() {
-        return null;
-      }
-
-      @Override
-      public int executeUpdate() {
-        return 0;
-      }
-    };
-  }
-
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.access.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.persistence.FlushModeType;
+import javax.persistence.LockModeType;
+import javax.persistence.Parameter;
+import javax.persistence.Query;
+import javax.persistence.TemporalType;
+
+import org.apache.olingo.odata2.jpa.processor.core.access.data.JPAPage.JPAPageBuilder;
+import org.junit.Test;
+
+public class JPAPageBuilderTest {
+
+  private static final int PAGE_SIZE = 10;
+
+  @Test
+  public void testBuildDefault() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(1, page.getPagedEntities().size());
+
+    assertEquals(10, query.getFirstResult());
+    assertEquals(10, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildDefaultZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(0)
+        .skipToken("10")
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(0, page.getPagedEntities().size());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(0, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithNoSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("0")
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+    assertEquals(1, page.getPagedEntities().size());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(10, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithNullSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken(null)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(10, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithInvalidSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    try {
+      pageBuilder.query(query)
+          .skipToken("AB");
+    } catch (NumberFormatException e) {
+      return;
+    }
+    fail("Exception Expected");
+  }
+
+  @Test
+  public void testBuildWithTop() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(10, query.getFirstResult());
+    assertEquals(5, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(0)
+        .skipToken("10")
+        .top(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(5, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithSkipZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(0)
+        .skipToken("10")
+        .skip(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(5, query.getFirstResult());
+    assertEquals(0, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopSkipZeroPage() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(0)
+        .skipToken("10")
+        .skip(5)
+        .top(5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(0, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(5, query.getFirstResult());
+    assertEquals(5, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopExceeds() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(15)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(10, query.getFirstResult());
+    assertEquals(10, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopSkipExceeds() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(5)
+        .skip(10)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertEquals(0, page.getPagedEntities().size());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(0, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopSkipMore() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(5)
+        .skip(9)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(19, query.getFirstResult());
+    assertEquals(1, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopMoreSkip() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(15)
+        .skip(9)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(19, query.getFirstResult());
+    assertEquals(1, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithTopXSkipX() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(15)
+        .skip(15)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(0, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithNegativeTop() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(-5)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(10, query.getFirstResult());
+    assertEquals(10, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithNegativeTopSkipToken() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(false);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("-10")
+        .top(-5)
+        .skip(-1)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(0, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(0, query.getFirstResult());
+    assertEquals(10, query.getMaxResults());
+  }
+
+  @Test
+  public void testBuildWithNoRecords() {
+    JPAPageBuilder pageBuilder = new JPAPageBuilder();
+    Query query = mockQuery(true);
+
+    JPAPage page = pageBuilder.query(query)
+        .pageSize(PAGE_SIZE)
+        .skipToken("10")
+        .top(1)
+        .skip(1)
+        .build();
+
+    assertEquals(0, page.getNextPage());
+    assertEquals(10, page.getStartPage());
+    assertEquals(PAGE_SIZE, page.getPageSize());
+    assertNotNull(page.getPagedEntities());
+
+    assertEquals(11, query.getFirstResult());
+    assertEquals(1, query.getMaxResults());
+  }
+
+  private Query mockQuery(final boolean setNoRecords) {
+
+    return new Query() {
+
+      private int maxResults;
+      private int firstResult;
+
+      @Override
+      public Query setFirstResult(final int arg0) {
+        firstResult = arg0;
+        return this;
+      }
+
+      @Override
+      public Query setMaxResults(final int arg0) {
+        maxResults = arg0;
+        return this;
+      }
+
+      @Override
+      public int getMaxResults() {
+        return maxResults;
+      }
+
+      @Override
+      public int getFirstResult() {
+        return firstResult;
+      }
+
+      @Override
+      public List<Object> getResultList() {
+        List<Object> list = new ArrayList<Object>();
+        if (maxResults > 0 && setNoRecords == false) {
+          list.add(new Integer(1));
+        }
+        return list;
+      }
+
+      @Override
+      public <T> T unwrap(final Class<T> arg0) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final int arg0, final Date arg1, final TemporalType arg2) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final int arg0, final Calendar arg1, final TemporalType arg2) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final String arg0, final Date arg1, final TemporalType arg2) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final String arg0, final Calendar arg1, final TemporalType arg2) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final Parameter<Date> arg0, final Date arg1, final TemporalType arg2) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final Parameter<Calendar> arg0, final Calendar arg1, final TemporalType arg2) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final int arg0, final Object arg1) {
+        return null;
+      }
+
+      @Override
+      public Query setParameter(final String arg0, final Object arg1) {
+        return null;
+      }
+
+      @Override
+      public <T> Query setParameter(final Parameter<T> arg0, final T arg1) {
+        return null;
+      }
+
+      @Override
+      public Query setLockMode(final LockModeType arg0) {
+        return null;
+      }
+
+      @Override
+      public Query setHint(final String arg0, final Object arg1) {
+        return null;
+      }
+
+      @Override
+      public Query setFlushMode(final FlushModeType arg0) {
+        return null;
+      }
+
+      @Override
+      public boolean isBound(final Parameter<?> arg0) {
+        return false;
+      }
+
+      @Override
+      public Object getSingleResult() {
+        return null;
+      }
+
+      @Override
+      public Set<Parameter<?>> getParameters() {
+        return null;
+      }
+
+      @Override
+      public Object getParameterValue(final int arg0) {
+        return null;
+      }
+
+      @Override
+      public Object getParameterValue(final String arg0) {
+        return null;
+      }
+
+      @Override
+      public <T> T getParameterValue(final Parameter<T> arg0) {
+        return null;
+      }
+
+      @Override
+      public <T> Parameter<T> getParameter(final int arg0, final Class<T> arg1) {
+        return null;
+      }
+
+      @Override
+      public <T> Parameter<T> getParameter(final String arg0, final Class<T> arg1) {
+        return null;
+      }
+
+      @Override
+      public Parameter<?> getParameter(final int arg0) {
+        return null;
+      }
+
+      @Override
+      public Parameter<?> getParameter(final String arg0) {
+        return null;
+      }
+
+      @Override
+      public LockModeType getLockMode() {
+        return null;
+      }
+
+      @Override
+      public Map<String, Object> getHints() {
+        return null;
+      }
+
+      @Override
+      public FlushModeType getFlushMode() {
+        return null;
+      }
+
+      @Override
+      public int executeUpdate() {
+        return 0;
+      }
+    };
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
index 3bc3f14..e39d3af 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
@@ -1,62 +1,62 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.mock;
-
-import org.apache.olingo.odata2.api.ODataService;
-import org.apache.olingo.odata2.api.exception.ODataException;
-import org.apache.olingo.odata2.api.processor.ODataContext;
-import org.apache.olingo.odata2.api.uri.PathInfo;
-import org.easymock.EasyMock;
-
-public class ODataContextMock {
-
-  private ODataService odataService;
-  private PathInfo pathInfo;
-
-  public void setODataService(final ODataService service) {
-    odataService = service;
-  }
-
-  public void setPathInfo(final PathInfo pathInfo) {
-    this.pathInfo = pathInfo;
-  }
-
-  public ODataContext mock() throws ODataException {
-    ODataContext context = EasyMock.createMock(ODataContext.class);
-    EasyMock.expect(context.getService()).andReturn(odataService).anyTimes();
-    EasyMock.expect(context.getPathInfo()).andReturn(pathInfo).anyTimes();
-    ODataJPAServiceFactoryMock mockServiceFactory = new ODataJPAServiceFactoryMock(context);
-    mockServiceFactory.initializeODataJPAContext();
-    EasyMock.expect(context.getServiceFactory()).andReturn(mockServiceFactory).anyTimes();
-    EasyMock.replay(context);
-    return context;
-  }
-
-  public ODataContext mockWithoutOnJPAWriteContent() throws ODataException {
-    ODataContext context = EasyMock.createMock(ODataContext.class);
-    EasyMock.expect(context.getService()).andReturn(odataService).anyTimes();
-    EasyMock.expect(context.getPathInfo()).andReturn(pathInfo).anyTimes();
-    ODataJPAServiceFactoryMock mockServiceFactory = new ODataJPAServiceFactoryMock(context);
-    mockServiceFactory.initializeODataJPAContextX();
-    EasyMock.expect(context.getServiceFactory()).andReturn(mockServiceFactory).anyTimes();
-    EasyMock.replay(context);
-    return context;
-  }
-
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.mock;
+
+import org.apache.olingo.odata2.api.ODataService;
+import org.apache.olingo.odata2.api.exception.ODataException;
+import org.apache.olingo.odata2.api.processor.ODataContext;
+import org.apache.olingo.odata2.api.uri.PathInfo;
+import org.easymock.EasyMock;
+
+public class ODataContextMock {
+
+  private ODataService odataService;
+  private PathInfo pathInfo;
+
+  public void setODataService(final ODataService service) {
+    odataService = service;
+  }
+
+  public void setPathInfo(final PathInfo pathInfo) {
+    this.pathInfo = pathInfo;
+  }
+
+  public ODataContext mock() throws ODataException {
+    ODataContext context = EasyMock.createMock(ODataContext.class);
+    EasyMock.expect(context.getService()).andReturn(odataService).anyTimes();
+    EasyMock.expect(context.getPathInfo()).andReturn(pathInfo).anyTimes();
+    ODataJPAServiceFactoryMock mockServiceFactory = new ODataJPAServiceFactoryMock(context);
+    mockServiceFactory.initializeODataJPAContext();
+    EasyMock.expect(context.getServiceFactory()).andReturn(mockServiceFactory).anyTimes();
+    EasyMock.replay(context);
+    return context;
+  }
+
+  public ODataContext mockWithoutOnJPAWriteContent() throws ODataException {
+    ODataContext context = EasyMock.createMock(ODataContext.class);
+    EasyMock.expect(context.getService()).andReturn(odataService).anyTimes();
+    EasyMock.expect(context.getPathInfo()).andReturn(pathInfo).anyTimes();
+    ODataJPAServiceFactoryMock mockServiceFactory = new ODataJPAServiceFactoryMock(context);
+    mockServiceFactory.initializeODataJPAContextX();
+    EasyMock.expect(context.getServiceFactory()).andReturn(mockServiceFactory).anyTimes();
+    EasyMock.replay(context);
+    return context;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataJPAServiceFactoryMock.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataJPAServiceFactoryMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataJPAServiceFactoryMock.java
index 5fdeece..d7dfc2d 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataJPAServiceFactoryMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataJPAServiceFactoryMock.java
@@ -1,47 +1,47 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.mock;
-
-import org.apache.olingo.odata2.api.processor.ODataContext;
-import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext;
-import org.apache.olingo.odata2.jpa.processor.api.ODataJPAServiceFactory;
-import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
-
-public class ODataJPAServiceFactoryMock extends ODataJPAServiceFactory {
-  private ODataContext context = null;
-
-  public ODataJPAServiceFactoryMock(final ODataContext context) {
-    this.context = context;
-  }
-
-  @Override
-  public ODataJPAContext initializeODataJPAContext() throws ODataJPARuntimeException {
-    ODataJPAContext oDataJPAContext = null;
-    oDataJPAContext = ODataJPAContextMock.mockODataJPAContext(context);
-    setOnWriteJPAContent(new OnJPAWriteContentMock());
-    return oDataJPAContext;
-  }
-
-  public ODataJPAContext initializeODataJPAContextX() throws ODataJPARuntimeException {
-    ODataJPAContext oDataJPAContext = null;
-    oDataJPAContext = ODataJPAContextMock.mockODataJPAContext(context);
-    setOnWriteJPAContent(null);
-    return oDataJPAContext;
-  }
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.mock;
+
+import org.apache.olingo.odata2.api.processor.ODataContext;
+import org.apache.olingo.odata2.jpa.processor.api.ODataJPAContext;
+import org.apache.olingo.odata2.jpa.processor.api.ODataJPAServiceFactory;
+import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
+
+public class ODataJPAServiceFactoryMock extends ODataJPAServiceFactory {
+  private ODataContext context = null;
+
+  public ODataJPAServiceFactoryMock(final ODataContext context) {
+    this.context = context;
+  }
+
+  @Override
+  public ODataJPAContext initializeODataJPAContext() throws ODataJPARuntimeException {
+    ODataJPAContext oDataJPAContext = null;
+    oDataJPAContext = ODataJPAContextMock.mockODataJPAContext(context);
+    setOnWriteJPAContent(new OnJPAWriteContentMock());
+    return oDataJPAContext;
+  }
+
+  public ODataJPAContext initializeODataJPAContextX() throws ODataJPARuntimeException {
+    ODataJPAContext oDataJPAContext = null;
+    oDataJPAContext = ODataJPAContextMock.mockODataJPAContext(context);
+    setOnWriteJPAContent(null);
+    return oDataJPAContext;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataServiceMock.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataServiceMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataServiceMock.java
index c5478db..dfaa329 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataServiceMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataServiceMock.java
@@ -1,106 +1,106 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.mock;
-
-import java.util.List;
-
-import org.apache.olingo.odata2.api.ODataService;
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.edm.EdmAssociation;
-import org.apache.olingo.odata2.api.edm.EdmComplexType;
-import org.apache.olingo.odata2.api.edm.EdmEntityContainer;
-import org.apache.olingo.odata2.api.edm.EdmEntitySet;
-import org.apache.olingo.odata2.api.edm.EdmEntityType;
-import org.apache.olingo.odata2.api.edm.EdmException;
-import org.apache.olingo.odata2.api.edm.EdmFunctionImport;
-import org.apache.olingo.odata2.api.edm.EdmServiceMetadata;
-import org.apache.olingo.odata2.api.exception.ODataException;
-import org.apache.olingo.odata2.jpa.processor.core.mock.data.EdmMockUtilV2;
-import org.easymock.EasyMock;
-
-public class ODataServiceMock {
-
-  private Edm edmMock = null;
-  public static final String SERVICE_ROOT = "http://apache.odata.org/OData.svc/";
-
-  public ODataService mock() throws ODataException {
-    ODataService odataService = EasyMock.createMock(ODataService.class);
-    EasyMock.expect(odataService.getEntityDataModel()).andReturn(mockEdm());
-    EasyMock.replay(odataService);
-    return odataService;
-
-  }
-
-  private Edm mockEdm() {
-    if (edmMock == null) {
-      edmMock = new EdmMock();
-    }
-    return edmMock;
-  }
-
-  public static class EdmMock implements Edm {
-
-    @Override
-    public EdmEntityContainer getEntityContainer(final String name) throws EdmException {
-      return EdmMockUtilV2.mockEdmEntityContainer(name);
-    }
-
-    @Override
-    public EdmEntityType getEntityType(final String namespace, final String name) throws EdmException {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public EdmComplexType getComplexType(final String namespace, final String name) throws EdmException {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public EdmAssociation getAssociation(final String namespace, final String name) throws EdmException {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public EdmServiceMetadata getServiceMetadata() {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public EdmEntityContainer getDefaultEntityContainer() throws EdmException {
-      return EdmMockUtilV2.mockEdmEntityContainer(null);
-    }
-
-    @Override
-    public List<EdmEntitySet> getEntitySets() throws EdmException {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public List<EdmFunctionImport> getFunctionImports() throws EdmException {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-  }
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.mock;
+
+import java.util.List;
+
+import org.apache.olingo.odata2.api.ODataService;
+import org.apache.olingo.odata2.api.edm.Edm;
+import org.apache.olingo.odata2.api.edm.EdmAssociation;
+import org.apache.olingo.odata2.api.edm.EdmComplexType;
+import org.apache.olingo.odata2.api.edm.EdmEntityContainer;
+import org.apache.olingo.odata2.api.edm.EdmEntitySet;
+import org.apache.olingo.odata2.api.edm.EdmEntityType;
+import org.apache.olingo.odata2.api.edm.EdmException;
+import org.apache.olingo.odata2.api.edm.EdmFunctionImport;
+import org.apache.olingo.odata2.api.edm.EdmServiceMetadata;
+import org.apache.olingo.odata2.api.exception.ODataException;
+import org.apache.olingo.odata2.jpa.processor.core.mock.data.EdmMockUtilV2;
+import org.easymock.EasyMock;
+
+public class ODataServiceMock {
+
+  private Edm edmMock = null;
+  public static final String SERVICE_ROOT = "http://apache.odata.org/OData.svc/";
+
+  public ODataService mock() throws ODataException {
+    ODataService odataService = EasyMock.createMock(ODataService.class);
+    EasyMock.expect(odataService.getEntityDataModel()).andReturn(mockEdm());
+    EasyMock.replay(odataService);
+    return odataService;
+
+  }
+
+  private Edm mockEdm() {
+    if (edmMock == null) {
+      edmMock = new EdmMock();
+    }
+    return edmMock;
+  }
+
+  public static class EdmMock implements Edm {
+
+    @Override
+    public EdmEntityContainer getEntityContainer(final String name) throws EdmException {
+      return EdmMockUtilV2.mockEdmEntityContainer(name);
+    }
+
+    @Override
+    public EdmEntityType getEntityType(final String namespace, final String name) throws EdmException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public EdmComplexType getComplexType(final String namespace, final String name) throws EdmException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public EdmAssociation getAssociation(final String namespace, final String name) throws EdmException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public EdmServiceMetadata getServiceMetadata() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public EdmEntityContainer getDefaultEntityContainer() throws EdmException {
+      return EdmMockUtilV2.mockEdmEntityContainer(null);
+    }
+
+    @Override
+    public List<EdmEntitySet> getEntitySets() throws EdmException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public List<EdmFunctionImport> getFunctionImports() throws EdmException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/OnJPAWriteContentMock.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/OnJPAWriteContentMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/OnJPAWriteContentMock.java
index e0069ce..b571b12 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/OnJPAWriteContentMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/OnJPAWriteContentMock.java
@@ -1,58 +1,58 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.mock;
-
-import java.sql.Blob;
-import java.sql.Clob;
-import java.sql.SQLException;
-
-import javax.sql.rowset.serial.SerialBlob;
-import javax.sql.rowset.serial.SerialClob;
-import javax.sql.rowset.serial.SerialException;
-
-import org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent;
-import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
-
-public class OnJPAWriteContentMock implements OnJPAWriteContent {
-
-  @Override
-  public Blob getJPABlob(final byte[] binaryData) throws ODataJPARuntimeException {
-    try {
-      return new SerialBlob(binaryData);
-    } catch (SerialException e) {
-      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
-    } catch (SQLException e) {
-      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
-    }
-    return null;
-  }
-
-  @Override
-  public Clob getJPAClob(final char[] characterData) throws ODataJPARuntimeException {
-    try {
-      return new SerialClob(characterData);
-    } catch (SerialException e) {
-      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
-    } catch (SQLException e) {
-      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
-    }
-    return null;
-  }
-
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.mock;
+
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.SQLException;
+
+import javax.sql.rowset.serial.SerialBlob;
+import javax.sql.rowset.serial.SerialClob;
+import javax.sql.rowset.serial.SerialException;
+
+import org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent;
+import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
+
+public class OnJPAWriteContentMock implements OnJPAWriteContent {
+
+  @Override
+  public Blob getJPABlob(final byte[] binaryData) throws ODataJPARuntimeException {
+    try {
+      return new SerialBlob(binaryData);
+    } catch (SerialException e) {
+      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
+    } catch (SQLException e) {
+      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
+    }
+    return null;
+  }
+
+  @Override
+  public Clob getJPAClob(final char[] characterData) throws ODataJPARuntimeException {
+    try {
+      return new SerialClob(characterData);
+    } catch (SerialException e) {
+      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
+    } catch (SQLException e) {
+      ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
+    }
+    return null;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathInfoMock.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathInfoMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathInfoMock.java
index 96a920c..b90b79c 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathInfoMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathInfoMock.java
@@ -1,51 +1,51 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.mock;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.List;
-
-import org.apache.olingo.odata2.api.uri.PathInfo;
-import org.apache.olingo.odata2.api.uri.PathSegment;
-import org.easymock.EasyMock;
-
-public class PathInfoMock {
-
-  private List<PathSegment> pathSegments;
-  private URI uri;
-
-  public void setPathSegments(final List<PathSegment> pathSegments) {
-    this.pathSegments = pathSegments;
-  }
-
-  public void setServiceRootURI(final String uriString) throws URISyntaxException {
-    uri = new URI(uriString);
-  }
-
-  public PathInfo mock() {
-    PathInfo pathInfo = EasyMock.createMock(PathInfo.class);
-    EasyMock.expect(pathInfo.getODataSegments()).andReturn(pathSegments);
-    EasyMock.expect(pathInfo.getServiceRoot()).andReturn(uri);
-
-    EasyMock.replay(pathInfo);
-    return pathInfo;
-
-  }
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.mock;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.apache.olingo.odata2.api.uri.PathInfo;
+import org.apache.olingo.odata2.api.uri.PathSegment;
+import org.easymock.EasyMock;
+
+public class PathInfoMock {
+
+  private List<PathSegment> pathSegments;
+  private URI uri;
+
+  public void setPathSegments(final List<PathSegment> pathSegments) {
+    this.pathSegments = pathSegments;
+  }
+
+  public void setServiceRootURI(final String uriString) throws URISyntaxException {
+    uri = new URI(uriString);
+  }
+
+  public PathInfo mock() {
+    PathInfo pathInfo = EasyMock.createMock(PathInfo.class);
+    EasyMock.expect(pathInfo.getODataSegments()).andReturn(pathSegments);
+    EasyMock.expect(pathInfo.getServiceRoot()).andReturn(uri);
+
+    EasyMock.replay(pathInfo);
+    return pathInfo;
+
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b155bda5/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathSegmentMock.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathSegmentMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathSegmentMock.java
index 77d1fbd..151cb9a 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathSegmentMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/PathSegmentMock.java
@@ -1,44 +1,44 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.jpa.processor.core.mock;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.olingo.odata2.api.uri.PathSegment;
-
-public class PathSegmentMock implements PathSegment {
-
-  private String path;
-
-  public void setPath(final String path) {
-    this.path = path;
-  }
-
-  @Override
-  public String getPath() {
-    return path;
-  }
-
-  @Override
-  public Map<String, List<String>> getMatrixParameters() {
-    return null;
-  }
-
-}
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata2.jpa.processor.core.mock;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.olingo.odata2.api.uri.PathSegment;
+
+public class PathSegmentMock implements PathSegment {
+
+  private String path;
+
+  public void setPath(final String path) {
+    this.path = path;
+  }
+
+  @Override
+  public String getPath() {
+    return path;
+  }
+
+  @Override
+  public Map<String, List<String>> getMatrixParameters() {
+    return null;
+  }
+
+}