You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2015/04/29 15:47:47 UTC

cayenne git commit: CAY-1999 | Add some unit tests

Repository: cayenne
Updated Branches:
  refs/heads/master 412cf30f2 -> 7ca6164bb


CAY-1999 | Add some unit tests


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/7ca6164b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/7ca6164b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/7ca6164b

Branch: refs/heads/master
Commit: 7ca6164bb6553435d676cf4fcb1a54184e54fd78
Parents: 412cf30
Author: Savva Kolbachev <s....@gmail.com>
Authored: Wed Apr 29 16:47:04 2015 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Wed Apr 29 16:47:04 2015 +0300

----------------------------------------------------------------------
 .../apache/cayenne/gen/ClassGenerationCase.java | 59 ++++++++++++++
 .../gen/ClientSuperClassGenerationTest.java     | 86 ++++++++++++++++++++
 .../cayenne/gen/SingleClassGenerationTest.java  | 86 ++++++++++++++++++++
 .../cayenne/gen/SuperClassGenerationTest.java   | 86 ++++++++++++++++++++
 4 files changed, 317 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/7ca6164b/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java b/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
new file mode 100644
index 0000000..44b709d
--- /dev/null
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
@@ -0,0 +1,59 @@
+/*****************************************************************
+ *   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.gen;
+
+import org.apache.velocity.Template;
+import org.apache.velocity.app.VelocityEngine;
+import org.apache.velocity.context.Context;
+import org.apache.velocity.runtime.RuntimeConstants;
+import org.apache.velocity.runtime.log.NullLogSystem;
+import org.junit.Before;
+
+import java.io.StringWriter;
+import java.util.Properties;
+
+public class ClassGenerationCase {
+
+    private VelocityEngine velocityEngine;
+
+    @Before
+    public void setUp() throws Exception {
+        Properties props = new Properties();
+
+        // null logger that will prevent velocity.log from being generated
+        props.put(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, NullLogSystem.class.getName());
+        props.put("resource.loader", "cayenne");
+        props.put("cayenne.resource.loader.class", ClassGeneratorResourceLoader.class.getName());
+        props.put("cayenne.resource.loader.cache", "false");
+
+        this.velocityEngine = new VelocityEngine();
+        this.velocityEngine.init(props);
+    }
+
+    protected String renderTemplate(String templateName, Context context) throws Exception {
+        StringWriter writer = new StringWriter();
+
+        Template template = velocityEngine.getTemplate(templateName);
+        template.merge(context, writer);
+
+        return writer.toString();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7ca6164b/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java
new file mode 100644
index 0000000..b690367
--- /dev/null
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClientSuperClassGenerationTest.java
@@ -0,0 +1,86 @@
+/*****************************************************************
+ *   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.gen;
+
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
+import org.apache.velocity.VelocityContext;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class ClientSuperClassGenerationTest extends ClassGenerationCase {
+
+    @Test
+    public void testNotContainsPropertyImport() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertFalse(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImportForAttributes() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjAttribute attr = new ObjAttribute("attr");
+        objEntity.addAttribute(attr);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImportForRelationships() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjRelationship rel = new ObjRelationship("rel");
+        objEntity.addRelationship(rel);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImport() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjAttribute attr = new ObjAttribute("attr");
+        ObjRelationship rel = new ObjRelationship("rel");
+
+        objEntity.addAttribute(attr);
+        objEntity.addRelationship(rel);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7ca6164b/cayenne-tools/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java
new file mode 100644
index 0000000..0bbe9e9
--- /dev/null
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/gen/SingleClassGenerationTest.java
@@ -0,0 +1,86 @@
+/*****************************************************************
+ *   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.gen;
+
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
+import org.apache.velocity.VelocityContext;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class SingleClassGenerationTest extends ClassGenerationCase {
+
+    @Test
+    public void testNotContainsPropertyImport() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
+        assertFalse(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImportForAttributes() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjAttribute attr = new ObjAttribute("attr");
+        objEntity.addAttribute(attr);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImportForRelationships() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjRelationship rel = new ObjRelationship("rel");
+        objEntity.addRelationship(rel);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImport() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjAttribute attr = new ObjAttribute("attr");
+        ObjRelationship rel = new ObjRelationship("rel");
+
+        objEntity.addAttribute(attr);
+        objEntity.addRelationship(rel);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7ca6164b/cayenne-tools/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java
new file mode 100644
index 0000000..0a47d63
--- /dev/null
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/gen/SuperClassGenerationTest.java
@@ -0,0 +1,86 @@
+/*****************************************************************
+ *   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.gen;
+
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
+import org.apache.velocity.VelocityContext;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class SuperClassGenerationTest extends ClassGenerationCase {
+
+    @Test
+    public void testNotContainsPropertyImport() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertFalse(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImportForAttributes() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjAttribute attr = new ObjAttribute("attr");
+        objEntity.addAttribute(attr);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImportForRelationships() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjRelationship rel = new ObjRelationship("rel");
+        objEntity.addRelationship(rel);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+    @Test
+    public void testContainsPropertyImport() throws Exception {
+        ObjEntity objEntity = new ObjEntity("TEST1");
+        ObjAttribute attr = new ObjAttribute("attr");
+        ObjRelationship rel = new ObjRelationship("rel");
+
+        objEntity.addAttribute(attr);
+        objEntity.addRelationship(rel);
+
+        VelocityContext context = new VelocityContext();
+        context.put(Artifact.OBJECT_KEY, objEntity);
+
+        String res = renderTemplate(ClassGenerationAction.SUPERCLASS_TEMPLATE, context);
+        assertTrue(res.contains("org.apache.cayenne.exp.Property"));
+    }
+
+}