Loading src/main/java/es/redmic/api/common/controller/RController.java +4 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import es.redmic.es.data.common.service.RDataESService; import es.redmic.exception.databinding.DTONotValidException; import es.redmic.models.es.common.dto.BaseDTO; import es.redmic.models.es.common.dto.ElasticSearchDTO; import es.redmic.models.es.common.dto.ElasticSearchNotNullDTO; import es.redmic.models.es.common.dto.JSONCollectionDTO; import es.redmic.models.es.common.dto.SuperDTO; import es.redmic.models.es.common.model.BaseES; Loading Loading @@ -63,8 +64,10 @@ public abstract class RController<TModel extends BaseES<?>, TDTO extends BaseDTO SimpleQueryDTO queryDTO = ESService.createSimpleQueryDTOFromTextQueryParams(fields, text, from, size, returnFields); processQuery((TQueryDTO) queryDTO); JSONCollectionDTO result = ESService.find(convertToDataQuery((TQueryDTO) queryDTO)); return new ElasticSearchDTO(result, result.getTotal()); return new ElasticSearchNotNullDTO(result, result.getTotal()); } @PostMapping(value = "/_search") Loading src/test/java/es/redmic/test/integration/administrative/ActivityControllerTest.java +53 −0 Original line number Diff line number Diff line package es.redmic.test.integration.administrative; import static org.junit.Assert.assertEquals; /*- * #%L * API Loading @@ -26,8 +28,10 @@ import static org.springframework.restdocs.operation.preprocess.Preprocessors.pr import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import java.util.Arrays; import java.util.HashMap; Loading @@ -48,7 +52,13 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import com.fasterxml.jackson.databind.ObjectMapper; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import es.redmic.ApiApplication; import es.redmic.es.administrative.repository.ActivityESRepository; import es.redmic.models.es.administrative.model.Activity; import es.redmic.models.es.common.model.DomainES; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.test.integration.ApiApplicationTest; import es.redmic.test.integration.common.IntegrationTestBase; Loading @@ -65,6 +75,9 @@ public class ActivityControllerTest extends IntegrationTestBase { @Autowired ObjectMapper mapper; @Autowired ActivityESRepository repository; private RestDocumentationResultHandler document; private final String ACTIVITIES_URL_BASE = "/activities"; Loading @@ -81,6 +94,24 @@ public class ActivityControllerTest extends IntegrationTestBase { mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).addFilters(springSecurityFilterChain) .apply(documentationConfiguration(this.restDocumentation)).alwaysDo(this.document).build(); Activity modelToIndex = new Activity(); modelToIndex.setId(3L); modelToIndex.setName("name"); DomainES accessibility = new DomainES(); accessibility.setId(1L); accessibility.setName("Libre"); accessibility.setName_en("Free"); modelToIndex.setAccessibility(accessibility); DomainES rank = new DomainES(); rank.setId(3L); rank.setName("Actividad"); rank.setName_en("Activity"); modelToIndex.setRank(rank); modelToIndex = repository.save(modelToIndex); // @formatter:on } Loading Loading @@ -128,4 +159,26 @@ public class ActivityControllerTest extends IntegrationTestBase { // @formatter:on } @Test public void getActivities_Return200_WhenSearchIsCorrect() throws Exception { // @formatter:off this.mockMvc .perform(get(ACTIVITIES_URL_BASE) .param("from", "0") .param("size", "10") .param("returnFields", "id") .param("returnFields", "name") .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.body.data", notNullValue())) .andExpect(jsonPath("$.body.data[0]", notNullValue())) .andExpect(jsonPath("$.body.data[0].id", is(3))) .andExpect(jsonPath("$.body.data[0].name", is("name"))) .andExpect(jsonPath("$.body.data.length()", is(1))); // @formatter:on } } Loading
src/main/java/es/redmic/api/common/controller/RController.java +4 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import es.redmic.es.data.common.service.RDataESService; import es.redmic.exception.databinding.DTONotValidException; import es.redmic.models.es.common.dto.BaseDTO; import es.redmic.models.es.common.dto.ElasticSearchDTO; import es.redmic.models.es.common.dto.ElasticSearchNotNullDTO; import es.redmic.models.es.common.dto.JSONCollectionDTO; import es.redmic.models.es.common.dto.SuperDTO; import es.redmic.models.es.common.model.BaseES; Loading Loading @@ -63,8 +64,10 @@ public abstract class RController<TModel extends BaseES<?>, TDTO extends BaseDTO SimpleQueryDTO queryDTO = ESService.createSimpleQueryDTOFromTextQueryParams(fields, text, from, size, returnFields); processQuery((TQueryDTO) queryDTO); JSONCollectionDTO result = ESService.find(convertToDataQuery((TQueryDTO) queryDTO)); return new ElasticSearchDTO(result, result.getTotal()); return new ElasticSearchNotNullDTO(result, result.getTotal()); } @PostMapping(value = "/_search") Loading
src/test/java/es/redmic/test/integration/administrative/ActivityControllerTest.java +53 −0 Original line number Diff line number Diff line package es.redmic.test.integration.administrative; import static org.junit.Assert.assertEquals; /*- * #%L * API Loading @@ -26,8 +28,10 @@ import static org.springframework.restdocs.operation.preprocess.Preprocessors.pr import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import java.util.Arrays; import java.util.HashMap; Loading @@ -48,7 +52,13 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import com.fasterxml.jackson.databind.ObjectMapper; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import es.redmic.ApiApplication; import es.redmic.es.administrative.repository.ActivityESRepository; import es.redmic.models.es.administrative.model.Activity; import es.redmic.models.es.common.model.DomainES; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.test.integration.ApiApplicationTest; import es.redmic.test.integration.common.IntegrationTestBase; Loading @@ -65,6 +75,9 @@ public class ActivityControllerTest extends IntegrationTestBase { @Autowired ObjectMapper mapper; @Autowired ActivityESRepository repository; private RestDocumentationResultHandler document; private final String ACTIVITIES_URL_BASE = "/activities"; Loading @@ -81,6 +94,24 @@ public class ActivityControllerTest extends IntegrationTestBase { mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).addFilters(springSecurityFilterChain) .apply(documentationConfiguration(this.restDocumentation)).alwaysDo(this.document).build(); Activity modelToIndex = new Activity(); modelToIndex.setId(3L); modelToIndex.setName("name"); DomainES accessibility = new DomainES(); accessibility.setId(1L); accessibility.setName("Libre"); accessibility.setName_en("Free"); modelToIndex.setAccessibility(accessibility); DomainES rank = new DomainES(); rank.setId(3L); rank.setName("Actividad"); rank.setName_en("Activity"); modelToIndex.setRank(rank); modelToIndex = repository.save(modelToIndex); // @formatter:on } Loading Loading @@ -128,4 +159,26 @@ public class ActivityControllerTest extends IntegrationTestBase { // @formatter:on } @Test public void getActivities_Return200_WhenSearchIsCorrect() throws Exception { // @formatter:off this.mockMvc .perform(get(ACTIVITIES_URL_BASE) .param("from", "0") .param("size", "10") .param("returnFields", "id") .param("returnFields", "name") .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.body.data", notNullValue())) .andExpect(jsonPath("$.body.data[0]", notNullValue())) .andExpect(jsonPath("$.body.data[0].id", is(3))) .andExpect(jsonPath("$.body.data[0].name", is("name"))) .andExpect(jsonPath("$.body.data.length()", is(1))); // @formatter:on } }