From b6310ae9401cc91a2e067a398c4cd8de9f2173e6 Mon Sep 17 00:00:00 2001 From: jensp Date: Sun, 14 Jun 2015 19:04:12 +0000 Subject: [PATCH] - Moved test utility classes to separate module which can be imported by other modules (Test classes are not part of dependency resolution) - Created ccm-shortcuts module for testing build environment setup git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3481 8810af33-2d31-482b-a856-94f89814c4df --- ccm-core/pom.xml | 22 +- ccm-shortcuts/nb-configuration.xml | 18 + ccm-shortcuts/pom.xml | 327 ++++++++++++++++++ .../java/org/libreccm/shortcuts/Shortcut.java | 128 +++++++ .../shortcuts/EqualsAndHashCodeTest.java | 71 ++++ .../org/libreccm/shortcuts/ToStringTest.java | 70 ++++ ccm-testutils/pom.xml | 177 ++++++++++ .../tests/categories/IntegrationTest.java | 0 .../libreccm/tests/categories/UnitTest.java | 0 .../libreccm/testutils/DatasetsVerifier.java | 1 - .../libreccm/testutils/EqualsVerifier.java | 0 .../libreccm/testutils/ToStringVerifier.java | 2 +- pom.xml | 11 +- 13 files changed, 818 insertions(+), 9 deletions(-) create mode 100644 ccm-shortcuts/nb-configuration.xml create mode 100644 ccm-shortcuts/pom.xml create mode 100644 ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java create mode 100644 ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java create mode 100644 ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java create mode 100644 ccm-testutils/pom.xml rename {ccm-core/src/test => ccm-testutils/src/main}/java/org/libreccm/tests/categories/IntegrationTest.java (100%) rename {ccm-core/src/test => ccm-testutils/src/main}/java/org/libreccm/tests/categories/UnitTest.java (100%) rename {ccm-core/src/test => ccm-testutils/src/main}/java/org/libreccm/testutils/DatasetsVerifier.java (99%) rename {ccm-core/src/test => ccm-testutils/src/main}/java/org/libreccm/testutils/EqualsVerifier.java (100%) rename {ccm-core/src/test => ccm-testutils/src/main}/java/org/libreccm/testutils/ToStringVerifier.java (98%) diff --git a/ccm-core/pom.xml b/ccm-core/pom.xml index a10d771b2..0cf985825 100644 --- a/ccm-core/pom.xml +++ b/ccm-core/pom.xml @@ -65,6 +65,13 @@ test + + org.libreccm + ccm-testutils + 6.7.0-SNAPSHOT + test + + nl.jqno.equalsverifier equalsverifier @@ -107,6 +114,7 @@ ${project.build.directory}/generated-resources + org.apache.maven.plugins @@ -192,7 +200,18 @@ postgresql9 - de.jpdigital.webpagebuilder2.data + org.libreccm.categorization + org.libreccm.core + org.libreccm.formbuilder + org.libreccm.jpa + org.libreccm.l10n + org.libreccm.messaging + org.libreccm.notification + org.libreccm.portal + org.libreccm.runtime + org.libreccm.search.lucene + org.libreccm.web + org.libreccm.workflow true @@ -205,6 +224,7 @@ + diff --git a/ccm-shortcuts/nb-configuration.xml b/ccm-shortcuts/nb-configuration.xml new file mode 100644 index 000000000..d464f7553 --- /dev/null +++ b/ccm-shortcuts/nb-configuration.xml @@ -0,0 +1,18 @@ + + + + + + lgpl21 + + diff --git a/ccm-shortcuts/pom.xml b/ccm-shortcuts/pom.xml new file mode 100644 index 000000000..7df471208 --- /dev/null +++ b/ccm-shortcuts/pom.xml @@ -0,0 +1,327 @@ + + + 4.0.0 + + + UTF-8 + + + + org.libreccm + libreccm-parent + 3.0.0-SNAPSHOT + + + org.libreccm + ccm-shortcuts + 6.7.0-SNAPSHOT + + LibreCCM Shortcuts + + http://www.libreccm.org/modules/ccm-shortcuts + + + + Lesser GPL 2.1 + http://www.gnu.org/licenses/old-licenses/lgpl-2.1 + + + + + + javax + javaee-api + jar + provided + + + + org.libreccm + ccm-core + 6.7.0-SNAPSHOT + + + + org.hibernate + hibernate-entitymanager + + + + org.hibernate + hibernate-validator + + + + junit + junit + test + + + + org.hamcrest + hamcrest-core + test + + + org.hamcrest + hamcrest-library + test + + + + org.libreccm + ccm-testutils + 6.7.0-SNAPSHOT + test + + + + nl.jqno.equalsverifier + equalsverifier + test + + + + org.jboss.arquillian.junit + arquillian-junit-container + test + + + org.jboss.arquillian.extension + arquillian-persistence-dbunit + test + + + org.jboss.arquillian.extension + arquillian-transaction-impl-base + test + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven + test + + + + com.h2database + h2 + test + + + + + + ccm-shortcuts + + + ${project.build.directory}/generated-resources + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.7 + 1.7 + true + true + ${project.build.sourceEncoding} + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.18.1 + + org.libreccm.tests.categories.UnitTest + + + + + org.jacoco + jacoco-maven-plugin + 0.7.5.201505241946 + + + default-prepare-agent + + prepare-agent + + + + default-report + prepare-package + + report + + + + default-check + + check + + + + + BUNDLE + + + COMPLEXITY + COVEREDRATIO + 0.60 + + + + + + + + + + de.jpdigital + hibernate4-ddl-maven-plugin + + + h2 + mysql5_innodb + oracle10g + postgresql9 + + + org.libreccm.shortcuts + + true + + + + + gen-ddl + + process-classes + + + + + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.3 + + true + true + + http://docs.oracle.com/javase/7/docs/api/ + http://docs.oracle.com/javaee/7/api/ + http://docs.jboss.org/hibernate/orm/4.3/javadocs/ + + private + true + UTF-8 + UTF-8 + UTF-8 + true + true + true + true + false + org.jboss.apiviz.APIviz + + org.jboss.apiviz + apiviz + 1.3.2.GA + + true + + -sourceclasspath ${project.build.outputDirectory} + + + + + + org.apache.maven.plugins + maven-jxr-plugin + 2.5 + + + org.apache.maven.plugins + maven-surefire-report-plugin + 2.18.1 + + + org.jacoco + jacoco-maven-plugin + 0.7.5.201505241946 + + + org.codehaus.mojo + findbugs-maven-plugin + 3.0.1 + + + org.apache.maven.plugins + maven-pmd-plugin + 3.4 + + true + utf-8 + 1.7 + + /rulesets/java/basic.xml + /rulesets/java/braces.xml + /rulesets/java/clone.xml + /rulesets/java/codesize.xml + /rulesets/java/design.xml + /rulesets/java/empty.xml + /rulesets/java/finalizers.xml + /rulesets/java/imports.xml + /rulesets/java/javabeans.xml + /rulesets/java/junit.xml + /rulesets/java/naming.xml + /rulesets/java/optimizations.xml + /rulesets/java/strictexception.xml + /rulesets/java/strings.xml + /rulesets/java/sunsecure.xml + /rulesets/java/typeresolution.xml + /rulesets/java/unnecessary.xml + /rulesets/java/unusedcode.xml + + + + + org.codehaus.mojo + javancss-maven-plugin + 2.1 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.8 + + + + + license + + + + + + + + + diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java new file mode 100644 index 000000000..84f9e8002 --- /dev/null +++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2015 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.shortcuts; + +import org.hibernate.validator.constraints.NotEmpty; + +import java.io.Serializable; +import java.util.Objects; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * + * @author Jens Pelzetter + */ +@Entity +@Table(name = "shortcuts") +public class Shortcut implements Serializable { + + private static final long serialVersionUID = -5674633339633714327L; + + @Id + @Column(name = "shortcut_id") + @GeneratedValue(strategy = GenerationType.AUTO) + private long shortcutId; + + @Column(name = "url_key", length = 1024) + @NotEmpty + private String urlKey; + + @Column(name = "redirect", length = 1024) + @NotEmpty + private String redirect; + + public long getShortcutId() { + return shortcutId; + } + + public void setShortcutId(final long shortcutId) { + this.shortcutId = shortcutId; + } + + public String getUrlKey() { + return urlKey; + } + + public void setUrlKey(final String urlKey) { + this.urlKey = urlKey; + } + + public String getRedirect() { + return redirect; + } + + public void setRedirect(final String redirect) { + this.redirect = redirect; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 47 * hash + (int) (shortcutId ^ (shortcutId >>> 32)); + hash = 47 * hash + Objects.hashCode(urlKey); + hash = 47 * hash + Objects.hashCode(redirect); + return hash; + } + + @Override + public boolean equals(final Object obj) { + if (obj == null) { + return false; + } + if (!(obj instanceof Shortcut)) { + return false; + } + final Shortcut other = (Shortcut) obj; + if (!other.canEqual(this)) { + return false; + } + + if (shortcutId != other.getShortcutId()) { + return false; + } + if (!Objects.equals(urlKey, other.getUrlKey())) { + return false; + } + return Objects.equals(redirect, other.getRedirect()); + } + + public boolean canEqual(final Object obj) { + return obj instanceof Shortcut; + } + + @Override + public String toString() { + return String.format("%s{ " + + "shortcutId = %d, " + + "urlKey = %s, " + + "redirect = %s" + + " }", + super.toString(), + shortcutId, + urlKey, + redirect); + } + +} diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java new file mode 100644 index 000000000..4b3524578 --- /dev/null +++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2015 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.shortcuts; + + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.experimental.categories.Category; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import org.libreccm.tests.categories.UnitTest; +import org.libreccm.testutils.EqualsVerifier; + +import java.util.Arrays; +import java.util.Collection; + +/** + * + * @author Jens Pelzetter + */ +@RunWith(Parameterized.class) +@Category(UnitTest.class) +public class EqualsAndHashCodeTest extends EqualsVerifier { + + @Parameterized.Parameters(name = "{0}") + public static Collection> data() { + return Arrays.asList(new Class[]{ + Shortcut.class + }); + } + + public EqualsAndHashCodeTest(final Class entityClass) { + super(entityClass); + } + + @BeforeClass + public static void setUpClass() { + } + + @AfterClass + public static void tearDownClass() { + } + + @Before + public void setUp() { + } + + @After + public void tearDown() { + } + +} diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java new file mode 100644 index 000000000..7e604d59e --- /dev/null +++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2015 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.shortcuts; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.experimental.categories.Category; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.libreccm.tests.categories.UnitTest; +import org.libreccm.testutils.ToStringVerifier; + +import java.util.Arrays; +import java.util.Collection; + + +/** + * + * @author Jens Pelzetter + */ +@RunWith(Parameterized.class) +@Category(UnitTest.class) +public class ToStringTest extends ToStringVerifier { + + @Parameterized.Parameters(name = "{0}") + public static Collection> data() { + return Arrays.asList(new Class[]{ + Shortcut.class + }); + } + + public ToStringTest(final Class entityClass) { + super(entityClass); + } + + @BeforeClass + public static void setUpClass() { + } + + @AfterClass + public static void tearDownClass() { + } + + @Before + public void setUp() { + } + + @After + public void tearDown() { + } + +} diff --git a/ccm-testutils/pom.xml b/ccm-testutils/pom.xml new file mode 100644 index 000000000..770ca7456 --- /dev/null +++ b/ccm-testutils/pom.xml @@ -0,0 +1,177 @@ + + + 4.0.0 + + + UTF-8 + + + + org.libreccm + libreccm-parent + 3.0.0-SNAPSHOT + + + org.libreccm + ccm-testutils + 6.7.0-SNAPSHOT + + LibreCCM Test Utilities + http://www.libreccm.org/modules/ccm-testutils + + + + junit + junit + + + + org.hamcrest + hamcrest-core + + + org.hamcrest + hamcrest-library + + + + nl.jqno.equalsverifier + equalsverifier + + + + com.h2database + h2 + + + + org.jboss.arquillian.extension + arquillian-persistence-dbunit + + + + + + ccm-testutils + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.7 + 1.7 + true + true + ${project.build.sourceEncoding} + + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.3 + + true + true + + http://docs.oracle.com/javase/7/docs/api/ + http://docs.oracle.com/javaee/7/api/ + http://docs.jboss.org/hibernate/orm/4.3/javadocs/ + + private + true + UTF-8 + UTF-8 + UTF-8 + true + true + true + true + false + org.jboss.apiviz.APIviz + + org.jboss.apiviz + apiviz + 1.3.2.GA + + true + + -sourceclasspath ${project.build.outputDirectory} + + + + + + org.apache.maven.plugins + maven-jxr-plugin + 2.5 + + + org.codehaus.mojo + findbugs-maven-plugin + 3.0.1 + + + + org.codehaus.mojo + javancss-maven-plugin + 2.1 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.8 + + + + + license + + + + + + + + + diff --git a/ccm-core/src/test/java/org/libreccm/tests/categories/IntegrationTest.java b/ccm-testutils/src/main/java/org/libreccm/tests/categories/IntegrationTest.java similarity index 100% rename from ccm-core/src/test/java/org/libreccm/tests/categories/IntegrationTest.java rename to ccm-testutils/src/main/java/org/libreccm/tests/categories/IntegrationTest.java diff --git a/ccm-core/src/test/java/org/libreccm/tests/categories/UnitTest.java b/ccm-testutils/src/main/java/org/libreccm/tests/categories/UnitTest.java similarity index 100% rename from ccm-core/src/test/java/org/libreccm/tests/categories/UnitTest.java rename to ccm-testutils/src/main/java/org/libreccm/tests/categories/UnitTest.java diff --git a/ccm-core/src/test/java/org/libreccm/testutils/DatasetsVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/DatasetsVerifier.java similarity index 99% rename from ccm-core/src/test/java/org/libreccm/testutils/DatasetsVerifier.java rename to ccm-testutils/src/main/java/org/libreccm/testutils/DatasetsVerifier.java index 65c9cbe93..fdc9a65bc 100644 --- a/ccm-core/src/test/java/org/libreccm/testutils/DatasetsVerifier.java +++ b/ccm-testutils/src/main/java/org/libreccm/testutils/DatasetsVerifier.java @@ -25,7 +25,6 @@ import org.dbunit.dataset.DataSetException; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.xml.FlatXmlDataSet; import org.dbunit.operation.DatabaseOperation; -//import org.h2.tools.RunScript; import org.jboss.arquillian.persistence.core.data.descriptor.Format; import org.jboss.arquillian.persistence.dbunit.dataset.DataSetBuilder; import org.junit.Test; diff --git a/ccm-core/src/test/java/org/libreccm/testutils/EqualsVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java similarity index 100% rename from ccm-core/src/test/java/org/libreccm/testutils/EqualsVerifier.java rename to ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java diff --git a/ccm-core/src/test/java/org/libreccm/testutils/ToStringVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/ToStringVerifier.java similarity index 98% rename from ccm-core/src/test/java/org/libreccm/testutils/ToStringVerifier.java rename to ccm-testutils/src/main/java/org/libreccm/testutils/ToStringVerifier.java index 8812de2a7..73b3dfbc6 100644 --- a/ccm-core/src/test/java/org/libreccm/testutils/ToStringVerifier.java +++ b/ccm-testutils/src/main/java/org/libreccm/testutils/ToStringVerifier.java @@ -93,7 +93,7 @@ public class ToStringVerifier { ex.printStackTrace(writer); Assert.fail(String.format( "toString() implemention of class \"%s\" " - + "is not null safe:\n %s", + + "is not null safe:%n %s", entityClass.getName(), strWriter.toString())); diff --git a/pom.xml b/pom.xml index f0c87cfbd..a146cbb37 100644 --- a/pom.xml +++ b/pom.xml @@ -1,8 +1,5 @@ - + 4.0.0 @@ -32,7 +29,9 @@ ccm-core - + ccm-shortcuts + ccm-testutils + @@ -458,4 +457,4 @@ - + \ No newline at end of file