diff --git a/README.md b/README.md index bd8b5439616cad052e383ce188f85b849e6e7867..9cd1bed66ee5eb90bb6c6e825dbc7364001a5cb5 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,10 @@ This repository contains the code base of a sample project that will be used in the XCS subject inside the DGSS itinerary. ## 1. Deployment Environment -The environment is based on Java 8, Maven 3.3+, Git 1.9+, MySQL 8+, -WildFly 10.1.0 and Eclipse for JavaEE. +The environment is based on Java 8, Maven 3.3+, Git 1.9+, MySQL 8+, WildFly 10.1.0 and Eclipse IDE for Enterprise Java and Web Developers. ### 1.1. Java JDK 8 -Download and install Java JDK 8, preferably the Oracle version (the commands -`java` and `javac` must be available). +Download and install Java JDK 8 (the commands `java` and `javac` must be available). You can test your Java installation with the commands: @@ -19,9 +17,7 @@ javac -version ``` ### 1.2. Maven 3.3+ -Install Maven 3 in your system, if it was not installed (the `mvn` command must -be available). If you are in a Debian-based OS, install the `maven` package -(**don't install `maven2` package!!**): +Install Maven 3 in your system, if it was not installed (the `mvn` command must be available). If you are in a Debian-based OS, install the `maven` package (**don't install `maven2` package!!**): ``` sudo apt-get install maven @@ -34,10 +30,7 @@ mvn --version ``` ### 1.3. Git 1.9+ -Firstly, install Git in your system if it was not installed (the `git` command -must be available). We will work with Git to get updates of these sample. -Concretely, we will work with a Git repository inside -[our Gitlab server](https://www.sing-group.org/dt/gitlab). +Firstly, install Git in your system if it was not installed (the `git` command must be available). We will work with Git to get updates of these sample. Concretely, we will work with a Git repository inside [our Gitlab server](https://www.sing-group.org/dt/gitlab). You can tests your Git installation with the command: @@ -52,17 +45,13 @@ git clone http://sing-group.org/dt/gitlab/dgss-2324/xcs-sample.git ``` ### 1.4. MySQL 8+ -In order to run the tests with the `wildfly-embedded-mysql` profile (more about -this in the **Sample 2** section) and to run the application, we need a MySQL -server. +In order to run the tests with the `wildfly-embedded-mysql` profile (more about this in the **Sample 2** section) and to run the application, we need a MySQL server. The server can be installed as usual, but it must contain two databases: * The `xcs` database for running the application. * The `xcssampletest` database for testing the appliaction. -In both cases, the user `xcs` identified by `xcs` password should have all -privileges on this database. You can do this by executing the following -commands: +In both cases, the user `xcs` identified by `xcs` password should have all privileges on this database. You can do this by executing the following commands: ```sql CREATE DATABASE xcs; @@ -75,9 +64,7 @@ GRANT ALL PRIVILEGES ON xcssampletest.* TO xcs@'%'; FLUSH PRIVILEGES; ``` -If you want to add some data to the `xcs` database to run the application (data -will be automatically inserted to the `xcssampletest` database during the -tests) you can also execute: +If you want to add some data to the `xcs` database to run the application (data will be automatically inserted to the `xcssampletest` database during the tests) you can also execute: ```sql DROP TABLE IF EXISTS `User`; @@ -117,49 +104,28 @@ VALUES ('CAT','2000-01-01 01:01:01','Pepecat','pepe'), ('BIRD','2000-01-01 01:01:01','Anabird','ana'); ``` -You can find the `xcs-sample-mysql.sql` and `xcs-sample-test-mysql.sql` scripts -with these queries stored in the `additional-material/db` project folder. +You can find the `xcs-sample-mysql.sql` and `xcs-sample-test-mysql.sql` scripts with these queries stored in the `additional-material/db` project folder. ### 1.5. Eclipse for Java EE -Open Eclipse for Java EE and import your Maven project with -`File -> Import -> Maven -> Existing Maven Projects`. In the dialog opened you -have to select as `Root directory` the directory of the project that you have -just cloned (it should contain a `pom.xml` file). - -Eclipse should then import a parent project (`xcs-sample`) and 6 child projects -(`tests`, `domain`, `service`, `rest`, `jsf` and `ear`). If any project is -disabled for import it is probably because you already have another project in -your workspace with the same name. To avoid this problem you can open the -advanced settings of the dialog and use a custom `Name template` (for example, -`xcs-sample-[artifactId]`). - -If you want, you can use any other IDE, such as IntelliJ IDEA or NetBeans, as -long as they are compatible with Maven projects, but we recommend using Eclipse -for Java EE. +Open Eclipse for Java EE and import your Maven project with `File -> Import -> Maven -> Existing Maven Projects`. In the dialog opened you have to select as `Root directory` the directory of the project that you have just cloned (it should contain a `pom.xml` file). + +Eclipse should then import a parent project (`xcs-sample`) and 6 child projects (`tests`, `domain`, `service`, `rest`, `jsf` and `ear`). If any project is disabled for import it is probably because you already have another project in your workspace with the same name. To avoid this problem you can open the advanced settings of the dialog and use a custom `Name template` (for example, `xcs-sample-[artifactId]`). + +If you want, you can use any other IDE, such as IntelliJ IDEA or NetBeans, as long as they are compatible with Maven projects, but we recommend using Eclipse for Java EE. ### 1.6 WildFly 10.1.0 -If you want to run the project you need a Java EE server. In this section you -can find how to configure a local WildFly server to execute the project. -Basically, we need to configure the WildFly server to include the datasource and -the security configuration needed by the application. - -In the following sections you can find an explanation of how you can configure -the WildFly server by editing the `standalone.xml`. However, the -`additional-material/wildfly` directory of the project already includes a -`standalone.xml` ready to be used with the 10.1.0 version, that you can -just copy directly into your WildFly server (replacing the original +If you want to run the project you need a Java EE server. In this section you can find how to configure a local WildFly server to execute the project. Basically, we need to configure the WildFly server to include the datasource and the security configuration needed by the application. + +In the following sections you can find an explanation of how you can configure the WildFly server by editing the `standalone.xml`. However, the `additional-material/wildfly` directory of the project already includes a `standalone.xml` ready to be used with the 10.1.0 version, that you can just copy directly into your WildFly server (replacing the original `standalone/configuration/standalone.xml` file). #### 1.6.1. Datasource configuration -There are several ways to add a datasource to a WildFly server. We are going to -add it by editing the `standalone/configuration/standalone.xml` configuration -file of the server. To do so, you have to edit this file and add the following -content to the `` element: +There are several ways to add a datasource to a WildFly server. We are going to add it by editing the `standalone/configuration/standalone.xml` configuration file of the server. To do so, you have to edit this file and add the following content to the `` element: ```xml jdbc:mysql://localhost:3306/xcs?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Europe%2FMadrid - mysql-connector-java-8.0.21.jar + mysql-connector-java-8.1.0.jar xcs xcs @@ -167,14 +133,11 @@ content to the `` element: ``` -In addition, you also have to add the MySQL driver to the deployments folder -(`standalone/deployments`). You can download it form [here](http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21.jar) -to the deployments (`standalone/deployments`) directory and WildFly will +In addition, you also have to add the MySQL driver to the deployments folder (`standalone/deployments`). You can download it form [here] (https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.1.0/mysql-connector-j-8.1.0.jar) to the deployments (`standalone/deployments`) directory and WildFly will automatically deploy it on startup. #### 1.6.2. Security configuration -All the WildFly security configuration is done in the -`standalone/configuration/standalone.xml` file of the server. +All the WildFly security configuration is done in the `standalone/configuration/standalone.xml` file of the server. Inside the `` element you have to add a new security realm: @@ -186,8 +149,7 @@ Inside the `` element you have to add a new security realm: ``` -Then, inside the `` element you have to add the following -security domains: +Then, inside the `` element you have to add the following security domains: ```xml @@ -212,48 +174,30 @@ security domains: ``` #### 1.6.3. Deploying the application manually -When the `package` goal is run in the `xcs-sample` project, an EAR file is -generated inside the `target` folder of the `ear` project. +When the `package` goal is run in the `xcs-sample` project, an EAR file is generated inside the `target` folder of the `ear` project. -The EAR file contains all the elements of the project (JARs and WARs) and, -therefore, you only have to deploy this file in the WildFly container to deploy -the entire application. To do so, you can copy this file to the -`standalone/deployments` folder of WidlFly. +The EAR file contains all the elements of the project (JARs and WARs) and, therefore, you only have to deploy this file in the WildFly container to deploy the entire application. To do so, you can copy this file to the `standalone/deployments` folder of WidlFly. -Once this is done, you can run the WildFly server executing the -`bin/standalone.sh` script. The application should be running in -http://localhost:8080/xcs-sample. If you want to access through the web -interface, you can open the http://localhost:8080/xcs-sample/jsf URL. +Once this is done, you can run the WildFly server executing the `bin/standalone.sh` script. The application should be running in http://localhost:8080/xcs-sample. If you want to access through the web interface, you can open the http://localhost:8080/xcs-sample/jsf URL. #### 1.6.4 Deploying the application from Maven -Maven configuration is prepared to deploy the generated EAR file to a running -WildFly. Doing so is as easy as launching the `wildfly:deploy` goal: +Maven configuration is prepared to deploy the generated EAR file to a running WildFly. Doing so is as easy as launching the `wildfly:deploy` goal: ```bash mvn wildfly:deploy ``` -This will launch the construction of the project and, at the end, the EAR will -be deployed. Remember that, if you want a fast deployment, you can avoid the -test execution with the parameter `-DskipTests=true`. +This will launch the construction of the project and, at the end, the EAR will be deployed. Remember that, if you want a fast deployment, you can avoid the test execution with the parameter `-DskipTests=true`. #### 1.7. Running the application from Maven (Recommended) -This project includes the Maven WildFly plugin, which allows the execution of -the application without needing an external WildFly server. To run the -application with the running MySQL database (`xcs`) you just have execute the -following command: +This project includes the Maven WildFly plugin, which allows the execution of the application without needing an external WildFly server. To run the application with the running MySQL database (`xcs`) you just have execute the following command: ```bash mvn install -P wildfly-mysql-run,-wildfly-embedded-h2 ``` -This will launch the complete construction cycle without running the tests, -start a WildFly server and deploy the application. Once the application is -running you can access it in the URL http://localhost:8080/xcs-sample/jsf. +This will launch the complete construction cycle without running the tests, start a WildFly server and deploy the application. Once the application is running you can access it in the URL http://localhost:8080/xcs-sample/jsf. -**Important**: You shouldn't have a local WildFly instance running or Maven will -not be able to start its own WildFly and will try to deploy the application in -the running instance. This will cause changes to the WildFly configuration that -may leave it in an unstable state. +**Important**: You shouldn't have a local WildFly instance running or Maven will not be able to start its own WildFly and will try to deploy the application in the running instance. This will cause changes to the WildFly configuration that may leave it in an unstable state. To stop the WildFly launched you can execute the following command: @@ -263,62 +207,38 @@ mvn wildfly:shutdown ## 2. Samples ## 2.1. Sample 1: Testing entities -Using JUnit and Hamcrest, we will see how to test JPA entities or any other -Java class. This libraries are the base for every test done in the application. +Using JUnit and Hamcrest, we will see how to test JPA entities or any other Java class. This libraries are the base for every test done in the application. ## 2.2. Sample 2: Testing EJBs -Using Arquillian and Arquillian Persistence, the EJBs are tested. We wouldn't do -unit testing in this layer, as we don't want to mock the `EntityManager`. +Using Arquillian and Arquillian Persistence, the EJBs are tested. We wouldn't do unit testing in this layer, as we don't want to mock the `EntityManager`. -In this layer we will use some workarounds to set the desired role and principal -in the tests. +In this layer we will use some workarounds to set the desired role and principal in the tests. ### 2.2.1. How to run tests with Arquillian? This project is configured to use two Maven profiles: -* `wildfly-embedded-h2`: this profile uses WildFly in embedded mode with a H2 -database, whose driver is included by default in WilFly. +* `wildfly-embedded-h2`: this profile uses WildFly in embedded mode with a H2 database, whose driver is included by default in WilFly. * `wildfly-embedded-mysql`: same as before, but it uses a MySQL database. -In both profiles, the WildFly server is automatically downloaded using the -`maven-dependency-plugin`, that extracts it in the `target/wildfly-` -folder (`target/wildfly-10.1.0.Final` currently). In the MySQL profile, the -MySQL driver is also downloaded using this plugin and added to the -`target/wildfly-/standalone/deployments` folder, to make it available -in the WildFly server. +In both profiles, the WildFly server is automatically downloaded using the `maven-dependency-plugin`, that extracts it in the `target/wildfly-` folder (`target/wildfly-10.1.0.Final` currently). In the MySQL profile, the MySQL driver is also downloaded using this plugin and added to the `target/wildfly-/standalone/deployments` folder, to make it available in the WildFly server. -For each profile, Maven is configured to use the files stored in -`src/test/resources-` as resources when running tests, in addition -to the stored in the `src/test/resources` folder, as usual. Inside this folder, -the projects using Arquillian must include a `standalone.xml` file, that will be -replace the default `standalone.xml` file of the WildFly server. This is -specially useful to configure the security constraints and datasources. +For each profile, Maven is configured to use the files stored in `src/test/resources-` as resources when running tests, in addition to the stored in the `src/test/resources` folder, as usual. Inside this folder, the projects using Arquillian must include a `standalone.xml` file, that will be replace the default `standalone.xml` file of the WildFly server. This is specially useful to configure the security constraints and datasources. -In order to avoid port collising with other WildFly instances, the WildFly used -by the test have a port offset of 10000. This means that the HTTP port is -displaced from the default 8080 port to the 18080 port, and the management port -is displaced from the default 9990 port to the 19990 port. +In order to avoid port collising with other WildFly instances, the WildFly used by the test have a port offset of 10000. This means that the HTTP port is displaced from the default 8080 port to the 18080 port, and the management port is displaced from the default 9990 port to the 19990 port. -Therefore, when running Maven tests (e.g. `mvn test`), they will run without any -external requirement. +Therefore, when running Maven tests (e.g. `mvn test`), they will run without any external requirement. #### 2.2.1.1 Arquillian tests in Eclipse -To run Arquillian tests in Eclipse (or in any non-Maven enviroment) a further -step is needed. You must configure the following system properties: +To run Arquillian tests in Eclipse (or in any non-Maven enviroment) a further step is needed. You must configure the following system properties: * `arquillian.launch`: the launch configuration that arquillian should use. -* `wildfly.version`: the version of the WildFly server stored in `target`. -The current version is `10.1.0.Final`. +* `wildfly.version`: the version of the WildFly server stored in `target`. The current version is `10.1.0.Final`. * `wildfly.jbossHome`: the location of the WildFly server. * `wildfly.modulePath`: the location of the module of the WildFly server. -* `java.util.logging.manager`: the logger to be used by the standard Java -logger. Commonly, the value `org.jboss.logmanager.LogManager` is used. -* `jboss.socket.binding.port-offset`: this is an optional parameter that -can be used to move the WildFly default ports. +* `java.util.logging.manager`: the logger to be used by the standard Java logger. Commonly, the value `org.jboss.logmanager.LogManager` is used. +* `jboss.socket.binding.port-offset`: this is an optional parameter that can be used to move the WildFly default ports. * `wildfly.http.port`: HTTP of the WildFly server. * `wildfly.management.port`: management port of the WildFly server. -In Eclipse, this system properties can be added to the run configuration in the -`VM arguments` field of the `Arguments` tab. For example, the following -configuration will work for the current configuration: +In Eclipse, this system properties can be added to the run configuration in the `VM arguments` field of the `Arguments` tab. For example, the following configuration will work for the current configuration: ``` -Darquillian.launch=wildfly-embedded @@ -331,17 +251,14 @@ configuration will work for the current configuration: -Dwildfly.management.port=19990 ``` -This configuration will run with the **H2** database. If you wish to run the -tests with the **MySQL** database, you have to add to additional system -configuration: -* `mysql.version`: The version of the MySQL driver (currently, `8.0.21`). +This configuration will run with the **H2** database. If you wish to run the tests with the **MySQL** database, you have to add to additional system configuration: +* `mysql.version`: The version of the MySQL driver (currently, `8.1.0`) -Therefore, the `VM arguments` configuration for running the tests in Eclipse -using the MySQL database is: +Therefore, the `VM arguments` configuration for running the tests in Eclipse using the MySQL database is: ``` -Darquillian.launch=wildfly-embedded --Dmysql.version=8.0.21 +-Dmysql.version=8.1.0 -Dwildfly.version=10.1.0.Final -Dwildfly.jbossHome=target/wildfly-10.1.0.Final -Dwildfly.modulePath=target/wildfly-10.1.0.Final/modules @@ -352,12 +269,10 @@ using the MySQL database is: ``` ## 2.3. Sample 3: Testing with test doubles -Using EasyMock, we will mock the EJBs to test the REST classes isolated from the -underlying layer. +Using EasyMock, we will mock the EJBs to test the REST classes isolated from the underlying layer. ## 2.4. Sample 4: Testing JAX-RS -Using Arquillian REST Client, we will test the REST API accessing it as real -HTTP clients. +Using Arquillian REST Client, we will test the REST API accessing it as real HTTP clients. Tests can be run using the same configuration as explained in *Sample 2*. @@ -366,20 +281,17 @@ When executed, the REST resources can be found in: * Pets: http://localhost:8080/xcs-sample/rest/api/pet ## 2.5. Sample 5: Testing JSF -Using Arquillian Drone, Arquillian Graphene and Selenium, we will test the JSF -web interface accessing it as real Web clients. +Using Arquillian Drone, Arquillian Graphene and Selenium, we will test the JSF web interface accessing it as real Web clients. Tests can be run using the same configuration as explained in *Sample 2*. -When executed, the REST resources can be found in -http://localhost:8080/xcs-sample/jsf/faces/index.html. +When executed, the REST resources can be found in http://localhost:8080/xcs-sample/jsf/faces/index.html. + +Warning: JSF test have been disabled due to a [known connection issue](https://firefox-source-docs.mozilla.org/testing/geckodriver/Usage.html#Running-Firefox-in-an-container-based-package) between the Firefox driver and the Firefox installed by default in Ubuntu +22.04. ## 2.6. Sample 6: Additional Testing Tools ### Test coverage with JaCoCo -Test coverage is a very useful tool that shows the parts of the source code that -are covered by the tests. The coverage analysis is done during the tests -execution, making it very precise. +Test coverage is a very useful tool that shows the parts of the source code that are covered by the tests. The coverage analysis is done during the tests execution, making it very precise. -The JaCoCo plugin is now part or the project, analyzing the test execution. This -plugin generates a HTML report in the `target/site/jacoco` folder. This report -is very useful to check if some part of the code is missing some tests. +The JaCoCo plugin is now part or the project, analyzing the test execution. This plugin generates a HTML report in the `target/site/jacoco` folder. This report is very useful to check if some part of the code is missing some tests. diff --git a/domain/pom.xml b/domain/pom.xml index be0c3121036cf60b809ca3de2ab8416337c78e78..6147fbea7623010442aeb297d9606956b68686ca 100644 --- a/domain/pom.xml +++ b/domain/pom.xml @@ -32,11 +32,11 @@ org.hamcrest - java-hamcrest + hamcrest test - + diff --git a/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/OwnerTest.java b/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/OwnerTest.java index 928bae278ee614944988bd0d1cca274600bec4c2..90c499a56e44f5879b2d366033a13265b2643c49 100644 --- a/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/OwnerTest.java +++ b/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/OwnerTest.java @@ -8,7 +8,7 @@ import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.collection.IsEmptyIterable.emptyIterable; import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder; import static org.hamcrest.collection.IsIterableContainingInOrder.contains; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.util.Date; diff --git a/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/PetTest.java b/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/PetTest.java index c5b4ea2495a59d26e5f9f64ec8ad5174b626e9e3..879edae22aa7a76f849769325e9534b8d5744595 100644 --- a/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/PetTest.java +++ b/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/PetTest.java @@ -4,7 +4,7 @@ import static org.apache.commons.lang3.StringUtils.repeat; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.util.Date; diff --git a/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/UserTest.java b/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/UserTest.java index 3455bf2ef282bd9157120c35fb5b9c4086d3d959..0c1e50ae5f166e5c3f2bc5667e2609cd49d83966 100644 --- a/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/UserTest.java +++ b/domain/src/test/java/es/uvigo/esei/xcs/domain/entities/UserTest.java @@ -3,7 +3,7 @@ package es.uvigo.esei.xcs.domain.entities; import static org.apache.commons.lang3.StringUtils.repeat; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import org.junit.Before; import org.junit.Test; diff --git a/jsf/pom.xml b/jsf/pom.xml index 23108fd0d9511fd61d077d066d3ba120cf27f5d6..90c38e238fcc5c204a66f5d3270189159cd4d9dc 100644 --- a/jsf/pom.xml +++ b/jsf/pom.xml @@ -42,7 +42,7 @@ org.hamcrest - java-hamcrest + hamcrest test @@ -66,6 +66,11 @@ pom test + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven + test + @@ -100,12 +105,12 @@ download-geckodriver process-test-resources - + - + run @@ -140,12 +145,12 @@ download-geckodriver process-test-resources - + - + run @@ -248,12 +253,12 @@ download-geckodriver process-test-resources - + - + run diff --git a/jsf/src/main/webapp/WEB-INF/template.xhtml b/jsf/src/main/webapp/WEB-INF/template.xhtml index 50854f763546ace33e59518ad9cbd5214871cc4a..85c07dd026bd3892493f474a6f77bb4324733bc6 100644 --- a/jsf/src/main/webapp/WEB-INF/template.xhtml +++ b/jsf/src/main/webapp/WEB-INF/template.xhtml @@ -5,7 +5,7 @@ Pet Store - +
@@ -42,6 +42,6 @@
- +
\ No newline at end of file diff --git a/jsf/src/test/java/es/uvigo/esei/xcs/jsf/OwnerJsfTest.java b/jsf/src/test/java/es/uvigo/esei/xcs/jsf/OwnerJsfTest.java index 5246c2dedf6f5202315085679e04258a09a8976d..fd53ad7bcf5e42f988045113612b315bd4228f38 100644 --- a/jsf/src/test/java/es/uvigo/esei/xcs/jsf/OwnerJsfTest.java +++ b/jsf/src/test/java/es/uvigo/esei/xcs/jsf/OwnerJsfTest.java @@ -11,7 +11,7 @@ import static es.uvigo.esei.xcs.domain.entities.OwnersDataset.owners; import static es.uvigo.esei.xcs.domain.entities.OwnersDataset.ownersAnd; import static es.uvigo.esei.xcs.domain.entities.OwnersDataset.ownersWithout; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.nio.file.Path; import java.nio.file.Paths; diff --git a/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/LoginPage.java b/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/LoginPage.java index c49d2e7f4f764d745069520400667abc8aa6416d..b19dce56db24f96ea1d9cb22a26c2d750d75ed4c 100644 --- a/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/LoginPage.java +++ b/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/LoginPage.java @@ -1,7 +1,7 @@ package es.uvigo.esei.xcs.jsf.pages; import static org.hamcrest.core.StringContains.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import org.jboss.arquillian.drone.api.annotation.Drone; import org.jboss.arquillian.graphene.page.Location; diff --git a/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/OwnersPage.java b/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/OwnersPage.java index 44070667c27ec3ac7c96b63753a18f90e4f0fb99..a314da58c638c97151f9ae8471b88fb33aac7ec2 100644 --- a/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/OwnersPage.java +++ b/jsf/src/test/java/es/uvigo/esei/xcs/jsf/pages/OwnersPage.java @@ -2,7 +2,7 @@ package es.uvigo.esei.xcs.jsf.pages; import static java.util.Arrays.stream; import static org.hamcrest.core.StringContains.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import org.jboss.arquillian.drone.api.annotation.Drone; import org.jboss.arquillian.graphene.GrapheneElement; diff --git a/pom.xml b/pom.xml index b6da356924746d7e8d758d2e686d4cd5a8c51839..db6042bced8c016d32e92a0b638c05e0b6d4b26c 100644 --- a/pom.xml +++ b/pom.xml @@ -38,42 +38,42 @@ 7.0 - 1.1.13.Final + 1.7.1.Final 1.0.0.Alpha4 - 3.4.0 + 3.13.0 3.0.0-beta-2 10.1.0.Final 3.4 - 3.3.7-1 + 3.4.1 - 1.0.0.Alpha9 + 1.1.0 1.0.0.Alpha7 3.0.3.Final 2.1.0.Final - 3.4 + 5.2.0 v0.33.0 - 2.3.1 - 2.0.0.0 - 0.7.9 - 4.12 - 8.0.21 - 3.0.24.Final + 2.5.4 + 2.2 + 0.8.10 + 4.13.2 + 8.1.0 + 3.15.6.Final 1.5.10 - 1.8 - 3.6.1 + 3.1.0 + 3.11.0 2.10.1 - 2.10.4 - 2.10 - 2.8.2 - 3.0.2 - 3.0.1 - 2.20 - 1.2.0.Final + 3.6.0 + 3.6.0 + 3.1.1 + 3.3.1 + 3.3.0 + 3.1.2 + 1.2.2.Final @@ -91,6 +91,13 @@ pom import + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-bom + ${shrinkwrap.resolver.bom.version} + pom + import + org.jboss.arquillian.selenium selenium-bom @@ -147,7 +154,7 @@ org.hamcrest - java-hamcrest + hamcrest ${hamcrest.version} @@ -188,8 +195,8 @@ ${jacoco.version} - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${mysql.connector.java.version} @@ -589,8 +596,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j jar false ${project.build.directory}/wildfly-${wildfly.version}/standalone/deployments @@ -607,8 +614,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j jar false ${project.build.directory} @@ -690,8 +697,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j jar false ${project.build.directory}/wildfly-${wildfly.version}/standalone/deployments @@ -708,8 +715,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j jar false ${project.build.directory} diff --git a/rest/pom.xml b/rest/pom.xml index 307dfd77a995f238b66aef8cd3abdfe78bc67441..34c97b305b2a02abbaf3a36c34363ebc389a7ee6 100644 --- a/rest/pom.xml +++ b/rest/pom.xml @@ -38,7 +38,7 @@ org.hamcrest - java-hamcrest + hamcrest test @@ -67,7 +67,7 @@ test - + diff --git a/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceRestTest.java b/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceRestTest.java index 1c77e70de8826e68599ab68724de95165be37ed7..9247c59e2b61205a780b5766ed58e6fdf56451a7 100644 --- a/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceRestTest.java +++ b/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceRestTest.java @@ -18,7 +18,7 @@ import static es.uvigo.esei.xcs.http.util.HasHttpStatus.hasMethodNotAllowedStatu import static es.uvigo.esei.xcs.http.util.HasHttpStatus.hasOkStatus; import static javax.ws.rs.client.Entity.json; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.util.List; diff --git a/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceUnitTest.java b/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceUnitTest.java index 446d177da044829e1faa4611b1a17a225fcf9af6..c034afc749729882675dc756c8d8bd23b01d01d1 100644 --- a/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceUnitTest.java +++ b/rest/src/test/java/es/uvigo/esei/xcs/rest/OwnerResourceUnitTest.java @@ -20,7 +20,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.collection.IsEmptyCollection.empty; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.net.URI; import java.util.List; diff --git a/service/pom.xml b/service/pom.xml index 1479b2b1c0c34fe86ec8381608479641284053c0..98b5bb1d1e561aca90eaa078639ed726e21a1d02 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -37,7 +37,7 @@ org.hamcrest - java-hamcrest + hamcrest test @@ -56,7 +56,7 @@ test - + diff --git a/service/src/test/java/es/uvigo/esei/xcs/service/OwnerServiceIntegrationTest.java b/service/src/test/java/es/uvigo/esei/xcs/service/OwnerServiceIntegrationTest.java index d13da1e41cff8e33d04c5a840b71305fb6cbccee..07acf251b1685dac3a6759f66d7cc58c040be805 100644 --- a/service/src/test/java/es/uvigo/esei/xcs/service/OwnerServiceIntegrationTest.java +++ b/service/src/test/java/es/uvigo/esei/xcs/service/OwnerServiceIntegrationTest.java @@ -20,7 +20,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.hamcrest.collection.IsEmptyCollection.empty; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.util.Collection; import java.util.List; diff --git a/service/src/test/java/es/uvigo/esei/xcs/service/PetServiceIntegrationTest.java b/service/src/test/java/es/uvigo/esei/xcs/service/PetServiceIntegrationTest.java index 45707e87799e2a6ddbceafc8f311a662abf49720..b8b6c3dc92c26a6e287acd5ddce1d9060b57fcce 100644 --- a/service/src/test/java/es/uvigo/esei/xcs/service/PetServiceIntegrationTest.java +++ b/service/src/test/java/es/uvigo/esei/xcs/service/PetServiceIntegrationTest.java @@ -14,7 +14,7 @@ import static es.uvigo.esei.xcs.domain.entities.OwnersDataset.petWithId; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.collection.IsEmptyCollection.empty; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.util.Date; import java.util.List; diff --git a/service/src/test/java/es/uvigo/esei/xcs/service/UserServiceIllegalAccessIntegrationTest.java b/service/src/test/java/es/uvigo/esei/xcs/service/UserServiceIllegalAccessIntegrationTest.java index 83bec3d0b67fc5a7cd1728e1371714b75bfbfb44..805e37074257688e970c890e976681974fbe6e6a 100644 --- a/service/src/test/java/es/uvigo/esei/xcs/service/UserServiceIllegalAccessIntegrationTest.java +++ b/service/src/test/java/es/uvigo/esei/xcs/service/UserServiceIllegalAccessIntegrationTest.java @@ -4,7 +4,7 @@ import static es.uvigo.esei.xcs.domain.entities.IsEqualToUser.equalToUser; import static es.uvigo.esei.xcs.domain.entities.OwnersDataset.existentOwner; import static es.uvigo.esei.xcs.domain.entities.UsersDataset.existentAdmin; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import javax.ejb.EJB; import javax.inject.Inject; @@ -21,10 +21,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import es.uvigo.esei.xcs.domain.entities.Owner; -import es.uvigo.esei.xcs.domain.entities.OwnersDataset; import es.uvigo.esei.xcs.domain.entities.Pet; import es.uvigo.esei.xcs.domain.entities.User; -import es.uvigo.esei.xcs.domain.entities.UsersDataset; import es.uvigo.esei.xcs.service.util.security.RoleCaller; import es.uvigo.esei.xcs.service.util.security.TestPrincipal; diff --git a/tests/pom.xml b/tests/pom.xml index b34c7e358fb617476df5044e04c04aab78ef5a39..d605111626b1f26f3795647ee46acf87296dd383 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -30,7 +30,7 @@ org.hamcrest - java-hamcrest + hamcrest compile diff --git a/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToOwner.java b/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToOwner.java index 848ca78ada5aaf322fed1408f3d704bd41df8b17..0c1673ec3762c622388912e3bcb205c8d0afe053 100644 --- a/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToOwner.java +++ b/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToOwner.java @@ -1,6 +1,5 @@ package es.uvigo.esei.xcs.domain.entities; -import org.hamcrest.Factory; import org.hamcrest.Matcher; public class IsEqualToOwner extends IsEqualToEntity { @@ -25,32 +24,26 @@ public class IsEqualToOwner extends IsEqualToEntity { } } - @Factory public static IsEqualToOwner equalToOwner(Owner owner) { return new IsEqualToOwner(owner, true); } - @Factory public static IsEqualToOwner equalToOwnerWithoutRelations(Owner owner) { return new IsEqualToOwner(owner, false); } - @Factory public static Matcher> containsOwnersInAnyOrder(Owner ... owners) { return containsEntityInAnyOrder(IsEqualToOwner::equalToOwner, owners); } - @Factory public static Matcher> containsOwnersWithoutRelationsInAnyOrder(Owner ... owners) { return containsEntityInAnyOrder(IsEqualToOwner::equalToOwnerWithoutRelations, owners); } - @Factory public static Matcher> containsOwnersInAnyOrder(Iterable owners) { return containsEntityInAnyOrder(IsEqualToOwner::equalToOwner, owners); } - @Factory public static Matcher> containsOwnersWithoutRelationsInAnyOrder(Iterable owners) { return containsEntityInAnyOrder(IsEqualToOwner::equalToOwnerWithoutRelations, owners); } diff --git a/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToPet.java b/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToPet.java index 554034c93a8706912374d9a7d7f30b77ec4c7b15..90c5b8c3f50fbb440fe1f4fe4b62f13b5e89c3e3 100644 --- a/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToPet.java +++ b/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToPet.java @@ -1,6 +1,5 @@ package es.uvigo.esei.xcs.domain.entities; -import org.hamcrest.Factory; import org.hamcrest.Matcher; public class IsEqualToPet extends IsEqualToEntity { @@ -26,32 +25,26 @@ public class IsEqualToPet extends IsEqualToEntity { } } - @Factory public static IsEqualToPet equalToPet(Pet pet) { return new IsEqualToPet(pet, true); } - @Factory public static IsEqualToPet equalToPetWithoutRelations(Pet pet) { return new IsEqualToPet(pet, false); } - @Factory public static Matcher> containsPetsInAnyOrder(Pet ... pets) { return containsEntityInAnyOrder(IsEqualToPet::equalToPet, pets); } - @Factory public static Matcher> containsPetsWithoutRelationsInAnyOrder(Pet ... pets) { return containsEntityInAnyOrder(IsEqualToPet::equalToPetWithoutRelations, pets); } - @Factory public static Matcher> containsPetsInAnyOrder(Iterable pets) { return containsEntityInAnyOrder(IsEqualToPet::equalToPet, pets); } - @Factory public static Matcher> containsPetsWithoutRelationsInAnyOrder(Iterable pets) { return containsEntityInAnyOrder(IsEqualToPet::equalToPetWithoutRelations, pets); } diff --git a/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToUser.java b/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToUser.java index 7359d22ef1361c46479aa3bdadd89105fac90dda..87aafe55d746f0543568747658965e429d1038bd 100644 --- a/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToUser.java +++ b/tests/src/main/java/es/uvigo/esei/xcs/domain/entities/IsEqualToUser.java @@ -1,6 +1,5 @@ package es.uvigo.esei.xcs.domain.entities; -import org.hamcrest.Factory; import org.hamcrest.Matcher; public class IsEqualToUser extends IsEqualToEntity { @@ -21,17 +20,14 @@ public class IsEqualToUser extends IsEqualToEntity { } } - @Factory public static IsEqualToUser equalToUser(User user) { return new IsEqualToUser(user); } - @Factory public static Matcher> containsUsersInAnyOrder(User ... users) { return containsEntityInAnyOrder(IsEqualToUser::equalToUser, users); } - @Factory public static Matcher> containsUsersInAnyOrder(Iterable users) { return containsEntityInAnyOrder(IsEqualToUser::equalToUser, users); } diff --git a/tests/src/main/java/es/uvigo/esei/xcs/http/util/HasHttpStatus.java b/tests/src/main/java/es/uvigo/esei/xcs/http/util/HasHttpStatus.java index fe4af53e45f70ac59bd0ee72cee944621043fb9c..46bfcb8d18bdb9cadb50885ff68ce1156c610bee 100644 --- a/tests/src/main/java/es/uvigo/esei/xcs/http/util/HasHttpStatus.java +++ b/tests/src/main/java/es/uvigo/esei/xcs/http/util/HasHttpStatus.java @@ -4,7 +4,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.StatusType; import org.hamcrest.Description; -import org.hamcrest.Factory; import org.hamcrest.TypeSafeMatcher; import static javax.ws.rs.core.Response.Status.BAD_REQUEST; @@ -33,32 +32,26 @@ public class HasHttpStatus extends TypeSafeMatcher { return this.status.getStatusCode() == item.getStatus(); } - @Factory public static HasHttpStatus hasHttpStatus(int statusCode) { return new HasHttpStatus(statusCode); } - @Factory public static HasHttpStatus hasHttpStatus(StatusType status) { return new HasHttpStatus(status); } - @Factory public static HasHttpStatus hasOkStatus() { return new HasHttpStatus(OK); } - @Factory public static HasHttpStatus hasCreatedStatus() { return new HasHttpStatus(CREATED); } - @Factory public static HasHttpStatus hasMethodNotAllowedStatus() { return new HasHttpStatus(METHOD_NOT_ALLOWED); } - @Factory public static HasHttpStatus hasBadRequestStatus() { return new HasHttpStatus(BAD_REQUEST); }