diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts
index aa9bc00e938a15f30d9b306192ffcbc19055b5e1..a91c75abfd1edbb442f123dafa5734870d2108f6 100644
--- a/backend/build.gradle.kts
+++ b/backend/build.gradle.kts
@@ -10,9 +10,9 @@ buildscript {
 plugins {
     java
     jacoco
-    id("org.springframework.boot") version "2.1.2.RELEASE"
+    id("org.springframework.boot") version "2.5.4"
     id("com.gorylenko.gradle-git-properties") version "2.3.1"
-    id("io.spring.dependency-management") version "1.0.6.RELEASE"
+    id("io.spring.dependency-management") version "1.0.11.RELEASE"
     id("org.sonarqube")
     id("org.owasp.dependencycheck") version "6.0.3"
 }
@@ -25,8 +25,6 @@ repositories {
     mavenCentral()
 }
 
-val snippetsDir = file("build/generated-snippets")
-
 tasks {
 
     withType(JavaCompile::class.java) {
@@ -36,12 +34,6 @@ tasks {
         options.compilerArgs.add("-parameters")
     }
 
-    processResources {
-        inputs.property("app", "gnpis")
-
-        filesMatching("bootstrap.yml") {}
-    }
-
     // this task is always out-of-date because it generates a properties file with the build time inside
     // so the bootJar task is also always out of date, too, since it depends on it
     // but it's better to do that than using the bootInfo() method of the springBoot closure, because that
@@ -52,7 +44,7 @@ tasks {
     }
 
     bootJar {
-        archiveName = "${rootProject.name}.jar"
+        archiveFileName.set("${rootProject.name}.jar")
         dependsOn(buildInfo)
         dependsOn(":web:assemble")
 
@@ -89,27 +81,29 @@ tasks {
         testLogging {
             exceptionFormat = TestExceptionFormat.FULL
         }
-        outputs.dir(snippetsDir)
     }
 
     jacocoTestReport {
         reports {
-            xml.setEnabled(true)
-            html.setEnabled(true)
+            xml.required.set(true)
+            html.required.set(true)
         }
     }
 }
 
+extra["springCloudVersion"] = "2020.0.3"
 dependencyManagement {
     imports {
-        mavenBom("org.springframework.cloud:spring-cloud-dependencies:Finchley.SR1")
+        mavenBom("org.springframework.cloud:spring-cloud-dependencies:${property("springCloudVersion")}")
     }
 }
 
 dependencies {
     // Spring
     annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
+
     implementation("org.springframework.boot:spring-boot-starter-web")
+    implementation("org.springframework.boot:spring-boot-starter-validation")
     implementation("org.springframework.boot:spring-boot-starter-actuator")
     implementation("org.springframework.boot:spring-boot-starter-security")
     implementation("org.springframework.cloud:spring-cloud-starter-config")
@@ -129,14 +123,6 @@ dependencies {
     implementation("com.opencsv:opencsv:4.4")
 
     // Test dependencies
-    testImplementation("org.springframework.boot:spring-boot-starter-test") {
-        exclude(module = "junit")
-    }
-    testImplementation("org.junit.jupiter:junit-jupiter-api")
-    testImplementation("org.junit.jupiter:junit-jupiter-params")
-    testImplementation("org.mockito:mockito-junit-jupiter:2.23.0")
-    testImplementation("org.junit-pioneer:junit-pioneer:0.3.0")
+    testImplementation("org.springframework.boot:spring-boot-starter-test")
     testImplementation("org.jsoup:jsoup:1.14.2")
-
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
 }
diff --git a/backend/src/main/java/fr/inra/urgi/faidare/config/ElasticSearchConfig.java b/backend/src/main/java/fr/inra/urgi/faidare/config/ElasticSearchConfig.java
index 8d4901f956946b6e21a6b74d978d5b44e72557ca..eee4827dca3792b60e65899368bff6232a46304b 100644
--- a/backend/src/main/java/fr/inra/urgi/faidare/config/ElasticSearchConfig.java
+++ b/backend/src/main/java/fr/inra/urgi/faidare/config/ElasticSearchConfig.java
@@ -6,7 +6,7 @@ import org.elasticsearch.client.NodeSelector;
 import org.elasticsearch.client.RestClient;
 import org.elasticsearch.client.RestClientBuilder;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.elasticsearch.rest.RestClientAutoConfiguration;
+import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -20,7 +20,7 @@ public class ElasticSearchConfig {
     private Integer esPort;
 
     /**
-     * Provides builder for {@link RestClientAutoConfiguration}
+     * Provides builder for {@link ElasticsearchRestClientAutoConfiguration}
      */
     @Bean
     public RestClientBuilder restClientBuilder() {
diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml
index 206012ca02782c52dbdf1b27b80ac0897f351bf2..8a14dabc7c937b66f11118467eb523667c82994e 100644
--- a/backend/src/main/resources/application.yml
+++ b/backend/src/main/resources/application.yml
@@ -1,3 +1,12 @@
+spring:
+  config:
+    import: 'optional:configserver:'
+    name: faidare
+
+  cloud:
+    config:
+      uri: ${SPRING_CONFIG_URI:http://localhost:8888}
+
 data:
   elasticsearch:
     host: 127.0.0.1
@@ -12,12 +21,13 @@ management:
       exposure:
         include: '*'
 
-logging.level:
-  root: ERROR
-  org.springframework:
-    boot.web.embedded.tomcat.TomcatWebServer: INFO
-    web.client.RestTemplate: DEBUG
-  fr.inra: DEBUG
+logging:
+  level:
+    root: ERROR
+    org.springframework:
+      boot.web.embedded.tomcat.TomcatWebServer: INFO
+      web.client.RestTemplate: DEBUG
+    fr.inra: DEBUG
 
 faidare:
   elasticsearch-indexing-template:
@@ -93,9 +103,12 @@ server:
 
 ---
 spring:
-  profiles:
-    dev
-  resources:
-    static-locations:
-      - classpath:/static/
-      - file:./web/build/dist/
+  config:
+    activate:
+      on-profile:
+        dev
+  web:
+    resources:
+      static-locations:
+        - classpath:/static/
+        - file:./web/build/dist/
diff --git a/backend/src/main/resources/bootstrap.yml b/backend/src/main/resources/bootstrap.yml
deleted file mode 100644
index 3be3a00c606b53b0df359c502f7a0c5d1929f417..0000000000000000000000000000000000000000
--- a/backend/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-spring:
-  application.name: faidare
-  cloud:
-    config:
-      uri: ${SPRING_CONFIG_URI:http://localhost:8888}
-      # label: feat(_)configure_openstack_ci
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/BrapiExceptionHandlerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/BrapiExceptionHandlerTest.java
index d395c9d015d77d639b806c1d2cd3ec0fa39580d3..e606f6979efd60e22d61b002a2f029fe19132a72 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/BrapiExceptionHandlerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/BrapiExceptionHandlerTest.java
@@ -33,8 +33,7 @@ class BrapiExceptionHandlerTest {
 
     @Test
     void should_Throw_Pagination_Max_Size_Exception() throws Exception {
-        mockMvc.perform(get("/brapi/v1/germplasm?pageSize=99999")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm?pageSize=99999"))
             .andExpect(status().isBadRequest())
             .andExpect(content().json("{\n" +
                 "  \"metadata\": {\n" +
@@ -61,8 +60,7 @@ class BrapiExceptionHandlerTest {
 
     @Test
     void should_Throw_Pagination_Min_Size_Exception() throws Exception {
-        mockMvc.perform(get("/brapi/v1/germplasm?pageSize=-1")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm?pageSize=-1"))
             .andExpect(status().isBadRequest())
             .andExpect(content().json("{\n" +
                 "  \"metadata\": {\n" +
@@ -85,8 +83,7 @@ class BrapiExceptionHandlerTest {
 
     @Test
     void should_Throw_Pagination_Min_Page_Exception() throws Exception {
-        mockMvc.perform(get("/brapi/v1/germplasm?page=-1")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm?page=-1"))
             .andExpect(status().isBadRequest())
             .andExpect(content().json("{\n" +
                 "  \"metadata\": {\n" +
@@ -108,8 +105,7 @@ class BrapiExceptionHandlerTest {
 
     @Test
     void should_Throw_Invalid_Param_Value_Exception() throws Exception {
-        mockMvc.perform(get("/brapi/v1/germplasm?page=foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm?page=foo"))
             .andExpect(status().isBadRequest())
             .andExpect(content().json("{\n" +
                 "  \"metadata\": {\n" +
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/CallsControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/CallsControllerTest.java
index 9bceca30daaf8da241f439d0585e37d3e3eacebc..73c08d4acd51a331c6dd49d1c49601462da233f3 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/CallsControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/CallsControllerTest.java
@@ -28,8 +28,7 @@ class CallsControllerTest {
     @Test
     void should_Get_Page_Size() throws Exception {
         int pageSize = 3;
-        mockMvc.perform(get("/brapi/v1/calls?pageSize=" + pageSize)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/calls?pageSize=" + pageSize))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.metadata.status", hasSize(0)))
             .andExpect(jsonPath("$.result.data", hasSize(pageSize)));
@@ -37,8 +36,7 @@ class CallsControllerTest {
 
     @Test
     void should_Fail_Page_Overflow() throws Exception {
-        mockMvc.perform(get("/brapi/v1/calls?pageSize=100&page=2")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/calls?pageSize=100&page=2"))
             .andExpect(status().isBadRequest())
             .andExpect(content().json("{" +
                 "\"metadata\":{" +
@@ -56,8 +54,7 @@ class CallsControllerTest {
 
     @Test
     void should_Get_All() throws Exception {
-        mockMvc.perform(get("/brapi/v1/calls?pageSize=1000")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/calls?pageSize=1000"))
             .andExpect(status().isOk())
             .andExpect(content().json("{\n" +
                 "  \"metadata\": {\n" +
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/GermplasmControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/GermplasmControllerTest.java
index 3a0011514394260fe8e2310743087d43fdf90ebe..ec28b1a29d5b8b1c41bd8cd72fb0e3d2ab73bc5c 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/GermplasmControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/GermplasmControllerTest.java
@@ -54,8 +54,7 @@ class GermplasmControllerTest {
     void should_Not_Show_JSON_LD_Fields_By_Default() throws Exception {
         when(service.getById(anyString())).thenReturn(GERMPLASM);
 
-        mockMvc.perform(get("/brapi/v1/germplasm/" + GERMPLASM.getGermplasmDbId())
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm/" + GERMPLASM.getGermplasmDbId()))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id").doesNotExist());
     }
@@ -65,8 +64,7 @@ class GermplasmControllerTest {
         when(service.getById(anyString())).thenReturn(GERMPLASM);
 
         mockMvc.perform(get("/brapi/v1/germplasm/"+GERMPLASM.getGermplasmDbId())
-            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+                            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id", is(GERMPLASM.getUri())));
     }
@@ -76,8 +74,7 @@ class GermplasmControllerTest {
         ProgenyVO progeny = new ProgenyVO();
         when(service.getProgeny(anyString())).thenReturn(progeny);
 
-        mockMvc.perform(get("/brapi/v1/germplasm/Z25waXNfcHVpOnVua25vd246UmljZToxNjc4MzEw/progeny")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm/Z25waXNfcHVpOnVua25vd246UmljZToxNjc4MzEw/progeny"))
             .andExpect(status().isOk());
     }
 
@@ -86,8 +83,7 @@ class GermplasmControllerTest {
         GermplasmVO germplasm = new GermplasmVO();
         when(service.getById(anyString())).thenReturn(germplasm);
 
-        mockMvc.perform(get("/brapi/v1/germplasm/Z25waXNfcHVpOnVua25vd246UmljZToxNjc4MzEw")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm/Z25waXNfcHVpOnVua25vd246UmljZToxNjc4MzEw"))
             .andExpect(status().isOk());
     }
 
@@ -95,8 +91,7 @@ class GermplasmControllerTest {
     void should_Return_Not_Found() throws Exception {
         when(service.getById(anyString())).thenReturn(null);
 
-        mockMvc.perform(get("/brapi/v1/germplasm/foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm/foo"))
             .andExpect(status().isNotFound())
             .andExpect(jsonPath("$.metadata.status", hasSize(1)))
             .andExpect(jsonPath("$.metadata.status[0].code", is("404")));
@@ -122,9 +117,7 @@ class GermplasmControllerTest {
 
         when(service.getById(anyString())).thenReturn(germplasm);
 
-        mockMvc.perform(get("/brapi/v1/germplasm/foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
-
+        mockMvc.perform(get("/brapi/v1/germplasm/foo"))
             // Should not have private fields
             .andExpect(jsonPath("$.result", not(hasProperty("groupId"))))
             .andExpect(jsonPath("$.result", not(hasProperty("speciesGroup"))))
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/LocationControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/LocationControllerTest.java
index 256292d8c8d1d63b959b0b7c36fb8f838d739a3f..3f41729253c114cb26823ca7bf609c80d68ea4c2 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/LocationControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/LocationControllerTest.java
@@ -45,8 +45,7 @@ class LocationControllerTest {
     void should_Not_Show_JSON_LD_Fields_By_Default() throws Exception {
         when(repository.getById(LOCATION.getLocationDbId())).thenReturn(LOCATION);
 
-        mockMvc.perform(get("/brapi/v1/locations/" + LOCATION.getLocationDbId())
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/locations/" + LOCATION.getLocationDbId()))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id").doesNotExist());
     }
@@ -56,8 +55,7 @@ class LocationControllerTest {
         when(repository.getById(LOCATION.getLocationDbId())).thenReturn(LOCATION);
 
         mockMvc.perform(get("/brapi/v1/locations/"+LOCATION.getLocationDbId())
-            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+                            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id", is(LOCATION.getUri())));
     }
@@ -69,8 +67,7 @@ class LocationControllerTest {
         LocationVO location = new LocationVO();
         when(repository.getById(identifier)).thenReturn(location);
 
-        mockMvc.perform(get("/brapi/v1/locations/" + identifier)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/locations/" + identifier))
             .andExpect(status().isOk());
     }
 
@@ -78,8 +75,7 @@ class LocationControllerTest {
     void should_Return_Not_Found() throws Exception {
         when(repository.getById("foo")).thenReturn(null);
 
-        mockMvc.perform(get("/brapi/v1/locations/foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/locations/foo"))
             .andExpect(status().isNotFound())
             .andExpect(jsonPath("$.metadata.status", hasSize(1)))
             .andExpect(jsonPath("$.metadata.status[0].code", is("404")));
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ObservationVariableControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ObservationVariableControllerTest.java
index bec00d617cb13a836d8a097e401300acf19f6f9c..5a7863aaa6bd7527a4ee1eacefa27ecae1103079 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ObservationVariableControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ObservationVariableControllerTest.java
@@ -43,8 +43,7 @@ class ObservationVariableControllerTest {
     @Test
     void should_Not_Show_JSON_LD_Fields_By_Default() throws Exception {
         when(repository.getVariableById(VARIABLE.getObservationVariableDbId())).thenReturn(VARIABLE);
-        mockMvc.perform(get("/brapi/v1/variables/" + VARIABLE.getObservationVariableDbId())
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/variables/" + VARIABLE.getObservationVariableDbId()))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id").doesNotExist());
     }
@@ -54,8 +53,7 @@ class ObservationVariableControllerTest {
         when(repository.getVariableById(VARIABLE.getObservationVariableDbId())).thenReturn(VARIABLE);
 
         mockMvc.perform(get("/brapi/v1/variables/"+ VARIABLE.getObservationVariableDbId())
-            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+                            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id", is(VARIABLE.getUri())));
     }
@@ -67,8 +65,7 @@ class ObservationVariableControllerTest {
         ObservationVariableVO variable = new ObservationVariableVO();
         when(repository.getVariableById(identifier)).thenReturn(variable);
 
-        mockMvc.perform(get("/brapi/v1/variables/" + identifier)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/variables/" + identifier))
             .andExpect(status().isOk());
     }
 
@@ -76,8 +73,7 @@ class ObservationVariableControllerTest {
     void should_Return_Not_Found() throws Exception {
         when(repository.getVariableById("foo")).thenReturn(null);
 
-        mockMvc.perform(get("/brapi/v1/variables/foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/variables/foo"))
             .andExpect(status().isNotFound())
             .andExpect(jsonPath("$.metadata.status", hasSize(1)))
             .andExpect(jsonPath("$.metadata.status[0].code", is("404")));
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ProgramControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ProgramControllerTest.java
index e609dc275e07f37db3a8748a3744a5f1f5b2924a..d05bb8a36085701feb5814a0dce3c84b812ab82a 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ProgramControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/ProgramControllerTest.java
@@ -43,8 +43,7 @@ class ProgramControllerTest {
     @Test
     void should_Not_Show_JSON_LD_Fields_By_Default() throws Exception {
         when(repository.getById(PROGRAM.getProgramDbId())).thenReturn(PROGRAM);
-        mockMvc.perform(get("/brapi/v1/programs/" + PROGRAM.getProgramDbId())
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/programs/" + PROGRAM.getProgramDbId()))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id").doesNotExist());
     }
@@ -54,8 +53,7 @@ class ProgramControllerTest {
         when(repository.getById(PROGRAM.getProgramDbId())).thenReturn(PROGRAM);
 
         mockMvc.perform(get("/brapi/v1/programs/"+ PROGRAM.getProgramDbId())
-            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+                            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id", is(PROGRAM.getUri())));
     }
@@ -67,8 +65,7 @@ class ProgramControllerTest {
         ProgramVO program = new ProgramVO();
         when(repository.getById(identifier)).thenReturn(program);
 
-        mockMvc.perform(get("/brapi/v1/programs/" + identifier)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/programs/" + identifier))
             .andExpect(status().isOk());
     }
 
@@ -76,8 +73,7 @@ class ProgramControllerTest {
     void should_Return_Not_Found() throws Exception {
         when(repository.getById("foo")).thenReturn(null);
 
-        mockMvc.perform(get("/brapi/v1/programs/foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/programs/foo"))
             .andExpect(status().isNotFound())
             .andExpect(jsonPath("$.metadata.status", hasSize(1)))
             .andExpect(jsonPath("$.metadata.status[0].code", is("404")));
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/StudyControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/StudyControllerTest.java
index d6acb3df6e4a86f8ddff5c1bafdd840c262c6764..253c4a0dca2cb03ee3ecc6765560c84decf52cdd 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/StudyControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/brapi/v1/StudyControllerTest.java
@@ -63,8 +63,7 @@ class StudyControllerTest {
     @Test
     void should_Not_Show_JSON_LD_Fields_By_Default() throws Exception {
         when(repository.getById(STUDY.getStudyDbId())).thenReturn(STUDY);
-        mockMvc.perform(get("/brapi/v1/studies/" + STUDY.getStudyDbId())
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/studies/" + STUDY.getStudyDbId()))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id").doesNotExist());
     }
@@ -74,8 +73,7 @@ class StudyControllerTest {
         when(repository.getById(STUDY.getStudyDbId())).thenReturn(STUDY);
 
         mockMvc.perform(get("/brapi/v1/studies/"+ STUDY.getStudyDbId())
-            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+                            .accept(BrapiJSONViewHandler.APPLICATION_LD_JSON))
             .andExpect(status().isOk())
             .andExpect(jsonPath("$.result.@id", is(STUDY.getUri())));
     }
@@ -87,8 +85,7 @@ class StudyControllerTest {
         StudyDetailVO study = new StudyDetailVO();
         when(repository.getById(identifier)).thenReturn(study);
 
-        mockMvc.perform(get("/brapi/v1/studies/" + identifier)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/studies/" + identifier))
             .andExpect(status().isOk());
     }
 
@@ -96,8 +93,7 @@ class StudyControllerTest {
     void should_Return_Not_Found() throws Exception {
         when(repository.getById("foo")).thenReturn(null);
 
-        mockMvc.perform(get("/brapi/v1/studies/foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/studies/foo"))
             .andExpect(status().isNotFound())
             .andExpect(jsonPath("$.metadata.status", hasSize(1)))
             .andExpect(jsonPath("$.metadata.status[0].code", is("404")));
@@ -113,8 +109,7 @@ class StudyControllerTest {
         PaginatedList<ObservationUnitVO> observationUnits = new PaginatedList<>(pagination, new ArrayList<>());
         when(observationUnitRepository.find(any())).thenReturn(observationUnits);
 
-        mockMvc.perform(get("/brapi/v1/studies/{id}/observationUnits?page={page}&pageSize={pageSize}", studyDbId, page, pageSize)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/studies/{id}/observationUnits?page={page}&pageSize={pageSize}", studyDbId, page, pageSize))
             .andExpect(jsonPath("$.metadata.pagination.currentPage", is(page)))
             .andExpect(jsonPath("$.metadata.pagination.pageSize", is(pageSize)));
     }
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/api/faidare/v1/GnpISGermplasmControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/api/faidare/v1/GnpISGermplasmControllerTest.java
index ad6f539d096dddb194038ec133c9bb97688c0140..03edbd78f736b99ae574bb069a1238b24175d9ca 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/api/faidare/v1/GnpISGermplasmControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/api/faidare/v1/GnpISGermplasmControllerTest.java
@@ -47,8 +47,7 @@ class GnpISGermplasmControllerTest {
         String id = "foo";
         when(service.getById(id)).thenReturn(null);
 
-        mockMvc.perform(get("/brapi/v1/germplasm?id=" + id)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm?id=" + id))
             .andExpect(status().isNotFound());
     }
 
@@ -57,8 +56,7 @@ class GnpISGermplasmControllerTest {
         when(service.find(any(GermplasmSearchCriteria.class))).thenReturn(null);
 
         String pui = "foo";
-        mockMvc.perform(get("/brapi/v1/germplasm?pui=" + pui)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/brapi/v1/germplasm?pui=" + pui))
             .andExpect(status().isNotFound());
     }
 
@@ -71,8 +69,7 @@ class GnpISGermplasmControllerTest {
         when(service.find(criteriaCaptor.capture())).thenReturn(germplasmPage);
 
         String pui = "doi:10.15454/1.4921786234137117E12";
-        mockMvc.perform(get("/faidare/v1/germplasm?pui=" + pui)
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/faidare/v1/germplasm?pui=" + pui))
             .andExpect(status().isOk());
 
         GermplasmSearchCriteria value = criteriaCaptor.getValue();
@@ -85,8 +82,7 @@ class GnpISGermplasmControllerTest {
 
     @Test
     void should_Return_Bad_Request_With_No_Param() throws Exception {
-        mockMvc.perform(get("/faidare/v1/germplasm")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
+        mockMvc.perform(get("/faidare/v1/germplasm"))
             .andExpect(status().isBadRequest());
     }
 
@@ -112,9 +108,7 @@ class GnpISGermplasmControllerTest {
 
         when(service.find(any(GermplasmSearchCriteria.class))).thenReturn(germplasmPage);
 
-        mockMvc.perform(get("/faidare/v1/germplasm?pui=foo")
-            .contentType(MediaType.APPLICATION_JSON_UTF8))
-
+        mockMvc.perform(get("/faidare/v1/germplasm?pui=foo"))
             // Should not have private fields
             .andExpect(jsonPath("$", not(hasProperty("groupId"))))
             .andExpect(jsonPath("$", not(hasProperty("speciesGroup"))))
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/elasticsearch/ESResponseParserTest.java b/backend/src/test/java/fr/inra/urgi/faidare/elasticsearch/ESResponseParserTest.java
index ad44814021f823ad695e53feacf2a586860d9041..dc757ee986e8ea325665b28420ae087d2796846e 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/elasticsearch/ESResponseParserTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/elasticsearch/ESResponseParserTest.java
@@ -107,7 +107,7 @@ class ESResponseParserTest {
 
         assertThat(actualDocumentObject)
             .isNotNull().isNotEmpty()
-            .containsOnlyElementsOf(expectedDocumentObjects);
+            .hasSameElementsAs(expectedDocumentObjects);
     }
 
     private SearchHit mockSearchHit(DocumentObject object) throws IOException {
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/DataDiscoveryRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/DataDiscoveryRepositoryTest.java
index cf33ca07e1e9946e1d116bad061d79560f37a247..8d9d75556db6028cfddb4e72e3e6fdc9cb1f4155 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/DataDiscoveryRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/DataDiscoveryRepositoryTest.java
@@ -114,7 +114,7 @@ class DataDiscoveryRepositoryTest {
         criteria.setTypes(types);
         DataDiscoveryResponse result = repository.find(criteria);
         assertThat(result.getResult().getData()).isNotNull().hasSize(2)
-            .flatExtracting("type").containsOnlyElementsOf(types);
+            .flatExtracting("type").isSubsetOf(types);
     }
 
     @Test
@@ -124,7 +124,7 @@ class DataDiscoveryRepositoryTest {
         criteria.setSources(sources);
         DataDiscoveryResponse result = repository.find(criteria);
         assertThat(result.getResult().getData()).isNotNull().hasSize(2)
-            .extracting("sourceUri").containsOnlyElementsOf(sources);
+            .extracting("sourceUri").isSubsetOf(sources);
     }
 
     @Test
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmAttributeRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmAttributeRepositoryTest.java
index 9a7929b1874167a3b4aedd5a240f04d10532228e..af19b3c50396a576221d006bffe3e10b21770e1c 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmAttributeRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmAttributeRepositoryTest.java
@@ -101,6 +101,6 @@ class GermplasmAttributeRepositoryTest {
         assertThat(data).isNotNull().isNotEmpty().hasSize(2);
         assertThat(data)
             .extracting("attributeDbId")
-            .containsOnlyElementsOf(expectedAttributes);
+            .isSubsetOf(expectedAttributes);
     }
 }
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmRepositoryTest.java
index 7705ab8afdb15a5c4ca4474a56bccb150d62073a..930cbbe92bf6f58456bacae4109f42ef5ce2c931 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/GermplasmRepositoryTest.java
@@ -118,7 +118,7 @@ class GermplasmRepositoryTest {
     void should_Scroll_All() {
         GermplasmPOSTSearchCriteria criteria = new GermplasmPOSTSearchCriteria();
         Iterator<GermplasmVO> list = repository.scrollAll(criteria);
-        assertThat(list).isNotNull().hasSize(14);
+        assertThat(list).isNotNull().toIterable().hasSize(14);
     }
 
     @Test
@@ -126,13 +126,14 @@ class GermplasmRepositoryTest {
         GermplasmPOSTSearchCriteria criteria = new GermplasmPOSTSearchCriteria();
         criteria.setAccessionNumbers(Collections.singletonList("FOOOO"));
         Iterator<GermplasmVO> list = repository.scrollAll(criteria);
-        assertThat(list).isNotNull().hasSize(0);
+        assertThat(list).isNotNull().toIterable().hasSize(0);
     }
 
     @Test
     void shouldScrollAllForSitemap() {
         Iterator<GermplasmSitemapVO> list = repository.scrollAllForSitemap(100);
-        assertThat(list).isNotEmpty()
+        assertThat(list).toIterable()
+                        .isNotEmpty()
                         .allMatch(vo -> !vo.getGermplasmDbId().isEmpty());
     }
 
@@ -144,8 +145,10 @@ class GermplasmRepositoryTest {
         criteria.setAccessionNumbers(Collections.singletonList(accessionNumber));
 
         Iterator<GermplasmVO> list = repository.scrollAll(criteria);
-        assertThat(list).isNotNull().hasSize(1)
-            .extracting("accessionNumber").containsOnly(accessionNumber);
+        assertThat(list).isNotNull()
+                        .toIterable()
+                        .hasSize(1)
+                        .extracting("accessionNumber").containsOnly(accessionNumber);
     }
 
     @Test
@@ -154,8 +157,10 @@ class GermplasmRepositoryTest {
         String accessionNumber = "2360";
         criteria.setAccessionNumbers(Collections.singletonList(accessionNumber));
         Iterator<GermplasmVO> list = repository.scrollAll(criteria);
-        assertThat(list).isNotNull().hasSize(1)
-            .extracting("accessionNumber").containsOnly(accessionNumber);
+        assertThat(list).isNotNull()
+                        .toIterable()
+                        .hasSize(1)
+                        .extracting("accessionNumber").containsOnly(accessionNumber);
     }
 
     @Test
@@ -164,7 +169,10 @@ class GermplasmRepositoryTest {
         String species = "vinifera";
         criteria.setGermplasmSpecies(Lists.newArrayList(species));
         Iterator<GermplasmVO> result = repository.scrollAll(criteria);
-        assertThat(result).isNotNull().isNotEmpty().extracting("species").containsOnly(species);
+        assertThat(result).isNotNull()
+                          .toIterable()
+                          .isNotEmpty()
+                          .extracting("species").containsOnly(species);
     }
 
     @Test
@@ -173,8 +181,10 @@ class GermplasmRepositoryTest {
         String genus = "Solanum";
         criteria.setGermplasmGenus(Lists.newArrayList(genus));
         Iterator<GermplasmVO> g = repository.scrollAll(criteria);
-        assertThat(g).isNotNull().hasSize(2)
-            .extracting("genus").containsOnly(genus);
+        assertThat(g).isNotNull()
+                     .toIterable()
+                     .hasSize(2)
+                     .extracting("genus").containsOnly(genus);
     }
 
     @Test
@@ -306,7 +316,7 @@ class GermplasmRepositoryTest {
         criteria.setGermplasmSpecies(Lists.newArrayList(species));
 
         Iterator<GermplasmVO> scroll = repository.scrollAll(criteria);
-        assertThat(scroll).isNotNull().hasSize(numberOfAestivum);
+        assertThat(scroll).isNotNull().toIterable().hasSize(numberOfAestivum);
 
         PaginatedList<GermplasmVO> pager = repository.find(criteria);
         assertThat(pager).isNotNull().isNotEmpty();
@@ -348,11 +358,11 @@ class GermplasmRepositoryTest {
         PaginatedList<GermplasmVO> vos = repository.find(criteria);
         assertThat(vos).isNotNull().isNotEmpty();
 
-        assertThat(vos).extracting("accessionNumber").containsOnlyElementsOf(accessionNumbers);
-        assertThat(vos).extracting("germplasmDbId").containsOnlyElementsOf(germplasmDbIds);
-        assertThat(vos).extracting("germplasmName").containsOnlyElementsOf(germplasmNames);
-        assertThat(vos).extracting("genus").containsOnlyElementsOf(germplasmGenus);
-        assertThat(vos).extracting("species").containsOnlyElementsOf(germplasmSpecies);
+        assertThat(vos).extracting("accessionNumber").isSubsetOf(accessionNumbers);
+        assertThat(vos).extracting("germplasmDbId").isSubsetOf(germplasmDbIds);
+        assertThat(vos).extracting("germplasmName").isSubsetOf(germplasmNames);
+        assertThat(vos).extracting("genus").isSubsetOf(germplasmGenus);
+        assertThat(vos).extracting("species").isSubsetOf(germplasmSpecies);
     }
 
     @Test
@@ -369,8 +379,8 @@ class GermplasmRepositoryTest {
         PaginatedList<GermplasmVO> vos = repository.find(criteria);
         assertThat(vos).isNotNull().isNotEmpty();
 
-        assertThat(vos).extracting("germplasmDbId").containsOnlyElementsOf(germplasmDbIds);
-        assertThat(vos).extracting("germplasmName").containsOnlyElementsOf(germplasmNames);
+        assertThat(vos).extracting("germplasmDbId").isSubsetOf(germplasmDbIds);
+        assertThat(vos).extracting("germplasmName").isSubsetOf(germplasmNames);
     }
 
     @Test
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/LocationRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/LocationRepositoryTest.java
index d7700556221825480c36b8ef8c3ce78f2338eb51..4bf6186663d41d17b821d39cb2b1181e001af180 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/LocationRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/LocationRepositoryTest.java
@@ -46,7 +46,7 @@ class LocationRepositoryTest {
         String expectedId = "805";
         LocationVO result = repository.getById(expectedId);
         assertThat(result).isNotNull();
-        assertThat(result).extracting("locationDbId").containsOnly(expectedId);
+        assertThat(result.getLocationDbId()).isEqualTo(expectedId);
     }
 
     @Test
@@ -115,13 +115,14 @@ class LocationRepositoryTest {
         PaginatedList<LocationVO> locations = repository.find(criteria);
 
         assertThat(locations).isNotNull().hasSize(3);
-        assertThat(locations).extracting("locationType").containsOnlyElementsOf(expectedTypes);
+        assertThat(locations).extracting("locationType").hasSameElementsAs(expectedTypes);
     }
 
     @Test
     void shouldScrollAllForSitemap() {
         Iterator<LocationSitemapVO> list = repository.scrollAllForSitemap(100);
-        assertThat(list).isNotEmpty()
+        assertThat(list).toIterable()
+                        .isNotEmpty()
                         .allMatch(vo -> !vo.getLocationDbId().isEmpty());
     }
 
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ObservationUnitRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ObservationUnitRepositoryTest.java
index 783b475780600f89a4821a4da74340f1735b07c6..e30c1f8f980fa2e0b5359ab6c4f1c38c7f0d9775 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ObservationUnitRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ObservationUnitRepositoryTest.java
@@ -132,7 +132,7 @@ class ObservationUnitRepositoryTest {
         assertThat(result)
             .flatExtracting("observations")
             .extracting("observationVariableDbId")
-            .containsOnlyElementsOf(variableIds);
+            .hasSameElementsAs(variableIds);
     }
 
     @Test
@@ -158,7 +158,7 @@ class ObservationUnitRepositoryTest {
         assertThat(result)
             .flatExtracting("observations")
             .extracting("observationVariableDbId")
-            .containsOnlyElementsOf(variableIds);
+            .hasSameElementsAs(variableIds);
 
         assertThat(result)
             .flatExtracting("observations")
@@ -220,7 +220,7 @@ class ObservationUnitRepositoryTest {
 
         assertThat(result)
             .extracting("studyDbId")
-            .containsOnlyElementsOf(studyIds);
+            .hasSameElementsAs(studyIds);
 
         assertThat(result)
             .extracting("observationLevel")
@@ -228,21 +228,21 @@ class ObservationUnitRepositoryTest {
 
         assertThat(result)
             .extracting("studyLocationDbId")
-            .containsOnlyElementsOf(locationIds);
+            .hasSameElementsAs(locationIds);
 
         assertThat(result)
             .extracting("germplasmDbId")
-            .containsOnlyElementsOf(germplasmIds);
+            .hasSameElementsAs(germplasmIds);
 
         assertThat(result)
             .flatExtracting("observations")
             .extracting("season")
-            .containsOnlyElementsOf(seasons);
+            .hasSameElementsAs(seasons);
 
         assertThat(result)
             .flatExtracting("observations")
             .extracting("observationVariableDbId")
-            .containsOnlyElementsOf(variableIds);
+            .hasSameElementsAs(variableIds);
 
         assertThat(result)
             .flatExtracting("observations")
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ProgramRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ProgramRepositoryTest.java
index ddc86daae6cc8c61751c854839880b7e4e48020a..252e412ecf85e226a43624ef5fa978f98c501913 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ProgramRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/ProgramRepositoryTest.java
@@ -40,7 +40,7 @@ class ProgramRepositoryTest {
         String expectedId = "P1";
         ProgramVO result = repository.getById(expectedId);
         assertThat(result).isNotNull();
-        assertThat(result).extracting("programDbId").containsOnly(expectedId);
+        assertThat(result.getProgramDbId()).isEqualTo(expectedId);
     }
 
     @Test
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/StudyRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/StudyRepositoryTest.java
index fc73d3f6515d43e9f7c0e09bc7db1b4d27c31b06..af5cfa85677e4db56ff6bc973fabb6340f4a7629 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/StudyRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/StudyRepositoryTest.java
@@ -52,8 +52,8 @@ class StudyRepositoryTest {
         String expectedId = "BTH_Orgeval_2008_SetA2";
         StudyDetailVO result = repository.getById(expectedId);
         assertThat(result).isNotNull();
-        assertThat(result).extracting("studyDbId").containsOnly(expectedId);
-        assertThat(result).extracting("location").isNotEmpty();
+        assertThat(result.getStudyDbId()).isEqualTo(expectedId);
+        assertThat(result.getLocation()).isNotNull();
     }
 
 
@@ -96,7 +96,7 @@ class StudyRepositoryTest {
 
         assertThat(result).isNotNull().hasSize(3);
         assertThat(result).extracting("locationName")
-            .containsOnlyElementsOf(expectedLocations);
+            .hasSameElementsAs(expectedLocations);
     }
 
     @Test
@@ -109,7 +109,7 @@ class StudyRepositoryTest {
 
         assertThat(result).isNotNull().isNotEmpty();
         assertThat(result).extracting("name")
-            .containsOnlyElementsOf(expectedNames);
+            .hasSameElementsAs(expectedNames);
     }
 
     @Test
@@ -137,9 +137,9 @@ class StudyRepositoryTest {
         PaginatedList<StudySummaryVO> result = repository.find(criteria);
 
         assertThat(result).isNotNull().isNotEmpty();
-        assertThat(result).extracting("name").containsOnlyElementsOf(names);
-        assertThat(result).extracting("locationName").containsOnlyElementsOf(locations);
-        assertThat(result).extracting("programName").containsOnlyElementsOf(programs);
+        assertThat(result).extracting("name").hasSameElementsAs(names);
+        assertThat(result).extracting("locationName").hasSameElementsAs(locations);
+        assertThat(result).extracting("programName").hasSameElementsAs(programs);
         assertThat(result).extracting("active").containsOnly(active);
         assertThat(result).flatExtracting("seasons").contains(season);
         assertThat(result).extracting("studyType").containsOnly(type);
@@ -163,8 +163,9 @@ class StudyRepositoryTest {
     @Test
     void shouldScrollAllForSitemap() {
         Iterator<StudySitemapVO> list = repository.scrollAllForSitemap(100);
-        Assertions.assertThat(list).isNotEmpty()
-                  .allMatch(vo -> !vo.getStudyDbId().isEmpty());
+        assertThat(list).toIterable()
+                        .isNotEmpty()
+                        .allMatch(vo -> !vo.getStudyDbId().isEmpty());
     }
 
     private class DescendingOrder implements Comparator<Object> {
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/TrialRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/TrialRepositoryTest.java
index 1c7416b8e867f8a06e799c11ec1b47560214f328..660fa8abf376cfd73954b208fb196dab5fc12d8e 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/repository/es/TrialRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/repository/es/TrialRepositoryTest.java
@@ -42,7 +42,7 @@ class TrialRepositoryTest {
         String expectedId = "T1";
         TrialVO result = repository.getById(expectedId);
         assertThat(result).isNotNull();
-        assertThat(result).extracting("trialDbId").containsOnly(expectedId);
+        assertThat(result.getTrialDbId()).isEqualTo(expectedId);
     }
 
     @Test
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/service/es/GermplasmServiceTest.java b/backend/src/test/java/fr/inra/urgi/faidare/service/es/GermplasmServiceTest.java
index 13e6e8e6385da0e074edeb1c3e6594c7ebb230e3..253abe39a3a10b7697338a32c5d02ad820e88f57 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/service/es/GermplasmServiceTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/service/es/GermplasmServiceTest.java
@@ -42,7 +42,7 @@ public class GermplasmServiceTest {
         File csvFile = germplasmService.exportCSV(criteria);
 
         CSVReader strings = new CSVReader(new FileReader(csvFile));
-        assertThat(strings.iterator()).hasSize(4);
+        assertThat(strings.iterator()).toIterable().hasSize(4);
         //TODO: Add more validation with mock data
     }
 
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/web/germplasm/GermplasmControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/web/germplasm/GermplasmControllerTest.java
index 6e2f10790b0a90f35019aecbd6cd5904da74d985..1fbe843db8013edb9b88e9418674891ca68fa3f6 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/web/germplasm/GermplasmControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/web/germplasm/GermplasmControllerTest.java
@@ -45,7 +45,6 @@ import org.springframework.test.web.servlet.MvcResult;
  * @author JB Nizet
  */
 @WebMvcTest(GermplasmController.class)
-@Import({CoordinatesDialect.class, FaidareDialect.class})
 public class GermplasmControllerTest {
 
     @Autowired
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/web/site/SiteControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/web/site/SiteControllerTest.java
index 26c21f08eecd9825cda474c9a3bf319f3bfd0b3c..4874b602dd899ee384526ab45cb28c4593076756 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/web/site/SiteControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/web/site/SiteControllerTest.java
@@ -38,7 +38,6 @@ import org.springframework.test.web.servlet.MvcResult;
  * @author JB Nizet
  */
 @WebMvcTest(SiteController.class)
-@Import({CoordinatesDialect.class, FaidareDialect.class})
 public class SiteControllerTest {
     @Autowired
     private MockMvc mockMvc;
diff --git a/backend/src/test/java/fr/inra/urgi/faidare/web/study/StudyControllerTest.java b/backend/src/test/java/fr/inra/urgi/faidare/web/study/StudyControllerTest.java
index 48ff20caf7c63b31185adbbd93c4f7ac8e696b2a..a05ee9583fea4514c2b0e9b54265c371cd83812d 100644
--- a/backend/src/test/java/fr/inra/urgi/faidare/web/study/StudyControllerTest.java
+++ b/backend/src/test/java/fr/inra/urgi/faidare/web/study/StudyControllerTest.java
@@ -51,7 +51,6 @@ import org.springframework.test.web.servlet.MvcResult;
  * @author JB Nizet
  */
 @WebMvcTest(StudyController.class)
-@Import({CoordinatesDialect.class, FaidareDialect.class})
 public class StudyControllerTest {
     @Autowired
     private MockMvc mockMvc;
diff --git a/backend/src/test/resources/test.properties b/backend/src/test/resources/test.properties
index a82442ba931e528774043a0ed48bbb38de4efa70..fae763c68b5272818217300769fb71ec32205506 100644
--- a/backend/src/test/resources/test.properties
+++ b/backend/src/test/resources/test.properties
@@ -1,5 +1,2 @@
-spring.data.elasticsearch.host=localhost
-spring.data.elasticsearch.port=9200
-
 faidare.elasticsearch-alias-template=gnpis_{source}_{documentType}-group{groupId}
 faidare.elasticsearch-xref-index-name=urgi_xref_test