You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2015/11/16 23:52:30 UTC
cayenne git commit: adding ashwood tests
Repository: cayenne
Updated Branches:
refs/heads/master ce0a34d07 -> 1c7fd384b
adding ashwood tests
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/1c7fd384
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/1c7fd384
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/1c7fd384
Branch: refs/heads/master
Commit: 1c7fd384b632c6cf22535c8c159eb0f5838fefcc
Parents: ce0a34d
Author: aadamchik <aa...@apache.org>
Authored: Mon Nov 16 17:51:47 2015 -0500
Committer: aadamchik <aa...@apache.org>
Committed: Mon Nov 16 17:51:47 2015 -0500
----------------------------------------------------------------------
.../cayenne/ashwood/AshwoodEntitySorterIT.java | 87 ++++++++++---------
.../AshwoodEntitySorter_RelationshipsIT.java | 88 ++++++++++++++++++++
2 files changed, 130 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/1c7fd384/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
index 0e74d66..46eed1a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
@@ -16,71 +16,68 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-
package org.apache.cayenne.ashwood;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.testdo.relationships.ReflexiveAndToOne;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.unit.di.server.CayenneProjects;
import org.apache.cayenne.unit.di.server.ServerCase;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
import org.junit.Before;
import org.junit.Test;
-import java.sql.Types;
-import java.util.Collections;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
public class AshwoodEntitySorterIT extends ServerCase {
- @Inject
- protected DBHelper dbHelper;
-
- @Inject
- protected ObjectContext context;
+ @Inject
+ protected ObjectContext context;
- protected TableHelper tRelationshipHelper;
- protected TableHelper tReflexiveAndToOne;
+ private EntityResolver resolver;
+ private AshwoodEntitySorter sorter;
- @Before
- public void setUp() throws Exception {
- tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER");
- tRelationshipHelper.setColumns("RELATIONSHIP_HELPER_ID", "NAME");
+ private DbEntity artist;
+ private DbEntity artistExhibit;
+ private DbEntity exhibit;
+ private DbEntity gallery;
+ private DbEntity painting;
+ private DbEntity paintingInfo;
- tReflexiveAndToOne = new TableHelper(dbHelper, "REFLEXIVE_AND_TO_ONE");
- tReflexiveAndToOne.setColumns("REFLEXIVE_AND_TO_ONE_ID", "PARENT_ID", "RELATIONSHIP_HELPER_ID", "NAME")
- .setColumnTypes(Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.VARCHAR);
- }
+ @Before
+ public void before() {
- @Test
- public void testSortObjectsForEntityReflexiveWithFaults() throws Exception {
+ this.resolver = context.getEntityResolver();
+ this.sorter = new AshwoodEntitySorter();
+ sorter.setEntityResolver(resolver);
- tRelationshipHelper.insert(1, "rh1");
- tReflexiveAndToOne.insert(1, null, 1, "r1");
- tReflexiveAndToOne.insert(2, 1, 1, "r2");
- tReflexiveAndToOne.insert(3, 2, 1, "r3");
+ this.artist = resolver.getDbEntity("ARTIST");
+ this.artistExhibit = resolver.getDbEntity("ARTIST_EXHIBIT");
+ this.exhibit = resolver.getDbEntity("EXHIBIT");
+ this.gallery = resolver.getDbEntity("GALLERY");
+ this.painting = resolver.getDbEntity("PAINTING");
+ this.paintingInfo = resolver.getDbEntity("PAINTING_INFO");
+ }
- AshwoodEntitySorter sorter = new AshwoodEntitySorter();
- sorter.setEntityResolver(context.getEntityResolver());
+ @Test
+ public void testSortDbEntities() {
- ObjEntity entity = context.getEntityResolver().getObjEntity(ReflexiveAndToOne.class);
+ List<DbEntity> entities = Arrays.asList(artist, artistExhibit, exhibit, gallery, painting, paintingInfo);
+ Collections.shuffle(entities);
- List<?> objects = context.performQuery(new SelectQuery<>(ReflexiveAndToOne.class));
- Collections.shuffle(objects);
- assertEquals(3, objects.size());
+ sorter.sortDbEntities(entities, false);
- sorter.sortObjectsForEntity(entity, objects, true);
+ assertTrue(entities.indexOf(artist) < entities.indexOf(artistExhibit));
+ assertTrue(entities.indexOf(artist) < entities.indexOf(painting));
+ assertTrue(entities.indexOf(gallery) < entities.indexOf(exhibit));
+ assertTrue(entities.indexOf(exhibit) < entities.indexOf(artistExhibit));
+ assertTrue(entities.indexOf(painting) < entities.indexOf(paintingInfo));
+ }
- assertEquals("r3", ((ReflexiveAndToOne) objects.get(0)).getName());
- assertEquals("r2", ((ReflexiveAndToOne) objects.get(1)).getName());
- assertEquals("r1", ((ReflexiveAndToOne) objects.get(2)).getName());
- }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/1c7fd384/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorter_RelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorter_RelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorter_RelationshipsIT.java
new file mode 100644
index 0000000..56d3020
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorter_RelationshipsIT.java
@@ -0,0 +1,88 @@
+/*****************************************************************
+ * 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.cayenne.ashwood;
+
+import static org.junit.Assert.assertEquals;
+
+import java.sql.Types;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.testdo.relationships.ReflexiveAndToOne;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
+import org.junit.Test;
+
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
+public class AshwoodEntitySorter_RelationshipsIT extends ServerCase {
+
+ @Inject
+ protected DBHelper dbHelper;
+
+ @Inject
+ protected ObjectContext context;
+
+ private TableHelper tRelationshipHelper;
+ private TableHelper tReflexiveAndToOne;
+
+ private AshwoodEntitySorter sorter;
+
+ @Before
+ public void setUp() throws Exception {
+ this.sorter = new AshwoodEntitySorter();
+ sorter.setEntityResolver(context.getEntityResolver());
+
+ tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER");
+ tRelationshipHelper.setColumns("RELATIONSHIP_HELPER_ID", "NAME");
+
+ tReflexiveAndToOne = new TableHelper(dbHelper, "REFLEXIVE_AND_TO_ONE");
+ tReflexiveAndToOne.setColumns("REFLEXIVE_AND_TO_ONE_ID", "PARENT_ID", "RELATIONSHIP_HELPER_ID", "NAME")
+ .setColumnTypes(Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.VARCHAR);
+ }
+
+ @Test
+ public void testSortObjectsForEntityReflexiveWithFaults() throws Exception {
+
+ tRelationshipHelper.insert(1, "rh1");
+ tReflexiveAndToOne.insert(1, null, 1, "r1");
+ tReflexiveAndToOne.insert(2, 1, 1, "r2");
+ tReflexiveAndToOne.insert(3, 2, 1, "r3");
+
+ ObjEntity entity = context.getEntityResolver().getObjEntity(ReflexiveAndToOne.class);
+
+ List<?> objects = context.performQuery(new SelectQuery<>(ReflexiveAndToOne.class));
+ Collections.shuffle(objects);
+ assertEquals(3, objects.size());
+
+ sorter.sortObjectsForEntity(entity, objects, true);
+
+ assertEquals("r3", ((ReflexiveAndToOne) objects.get(0)).getName());
+ assertEquals("r2", ((ReflexiveAndToOne) objects.get(1)).getName());
+ assertEquals("r1", ((ReflexiveAndToOne) objects.get(2)).getName());
+ }
+}