I'm using JUnit 4.11 to run integration tests on my SpringBoot application. I have the following test case :
@Test
public void testClassementMarcheActeTranche() throws IOException, PlanDeClassementException {
NodeRef nodeRefRepertoireSasGda = servicePlanDeClassementMarche.getSpace(SpaceUtil.SAS_GED_MARCHE.name());
NodeRef nodeRefPiece = setUpCreateActe(nodeRefRepertoireSasGda, "1 (Tranche 1 Marché 2019-19M0059001) (Tranche 1 Marché 2019-19M58785858)", "Courrier de reconduction");
classementDocumentsActionJobExecuter.executeImpl(null, nodeRefPiece);
String siteName = serviceRegistry.getSiteService().getSite(nodeRefPiece).getShortName();
QName typePiece = serviceRegistry.getNodeService().getType(nodeRefPiece);
assertThat(typePiece, equalTo(TYPE_PIECE.getQName()));
NodeRef parentFolder = serviceRegistry.getNodeService().getPrimaryParent(nodeRefPiece).getParentRef();
String parentFolderName = serviceRegistry.getFileFolderService().getFileInfo(parentFolder).getName();
NodeRef marcheFolder = serviceRegistry.getNodeService().getPrimaryParent(parentFolder).getParentRef();
QName typeMarche = serviceRegistry.getNodeService().getType(marcheFolder);
assertThat(typeMarche, equalTo(TYPE_MARCHE.getQName()));
String marcheFolderName = serviceRegistry.getFileFolderService().getFileInfo(marcheFolder).getName();
NodeRef millesimeFolder = serviceRegistry.getNodeService().getPrimaryParent(marcheFolder).getParentRef();
String millesimeFolderName = serviceRegistry.getFileFolderService().getFileInfo(millesimeFolder).getName();
NodeRef cdrFolder = serviceRegistry.getNodeService().getPrimaryParent(millesimeFolder).getParentRef();
String cdrFolderName = serviceRegistry.getFileFolderService().getFileInfo(cdrFolder).getName();
String numeroMarche = (String)nodeService.getProperty(nodeRefPiece, PROP_NUMERO_DU_MARCHE.getQName());
String dateModificationnMarche = nodeService.getProperty(nodeRefPiece, PROP_DATE_DE_NOTIFICATION_DU_MARCHE.getQName()).toString();
String categorieMarche = (String)nodeService.getProperty(nodeRefPiece, PROP_CATEGORIE_DU_MARCHE.getQName());
String etatMarche = (String)nodeService.getProperty(nodeRefPiece, PROP_ETAT_DU_MARCHE.getQName());
List<String> codeTitulaire = (ArrayList<String>)nodeService.getProperty(nodeRefPiece, PROP_CODE_TITULAIRE.getQName());
List<String> titulaireMarche = (ArrayList<String>)nodeService.getProperty(nodeRefPiece, PROP_NOM_TITULAIRE.getQName());
List<String> codeSousTraitant = (ArrayList<String>)nodeService.getProperty(nodeRefPiece, PROP_CODE_SOUS_TRAITANTS.getQName());
List<String> nomSousTraitant = (ArrayList<String>)nodeService.getProperty(nodeRefPiece, PROP_NOM_SOUS_TRAITANTS.getQName());
String typeDeProcedureMarche = (String)nodeService.getProperty(nodeRefPiece, PROP_TYPE_DE_PROCEDURE.getQName());
String objetMarche = (String)nodeService.getProperty(nodeRefPiece, PROP_OBJET_DU_MARCHE.getQName());
List<String> axe = (ArrayList<String>)nodeService.getProperty(marcheFolder, PROP_AXE_OPERATION_ORYSON_MARCHE.getQName());
List<String> libEtablissement = (ArrayList<String>)nodeService.getProperty(marcheFolder, PROP_LIBELLE_ETABLISSEMENT_ENSEIGNEMENT_MARCHE.getQName());
List<String> codeEtablissement = (ArrayList<String>)nodeService.getProperty(marcheFolder, PROP_CODE_ETABLISSEMENT_ENSEIGNEMENT_MARCHE.getQName());
List<String> cdrMarche = (ArrayList<String>)nodeService.getProperty(marcheFolder, PROP_CDR_MARCHE.getQName());
assertThat(marcheFolderName, equalTo("2019-19M58785858 - Lot 1 - Chantier des collections");
nodeService.deleteNode(marcheFolder);
}
And the following error message :
java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
at fr.package.alfresco.marche.actions.ClassementActeActionJobIT.testClassementMarcheActeTranche(ClassementActeActionJobIT.java:203)
I have followed the answers in this question : Getting "NoSuchMethodError: org.hamcrest.Matcher.describeMismatch" when running test in IntelliJ 10.5 So I ended up having this pom file :
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<exclusions>
<exclusion>
<artifactId>hamcrest-core</artifactId>
<groupId>org.hamcrest</groupId>
</exclusion>
</exclusions>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<exclusions>
<exclusion>
<artifactId>hamcrest-core</artifactId>
<groupId>org.hamcrest</groupId>
</exclusion>
</exclusions>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jdbi</groupId>
<artifactId>jdbi</artifactId>
<version>2.78</version>
</dependency>
</dependencies>
Although this haven't fixed the problem, anyone has an idea of how this persisting problem would be fixed ?