Loading atlas-view/src/main/java/es/redmic/atlasview/repository/layer/LayerESRepository.java +22 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,28 @@ public class LayerESRepository extends RWDataESRepository<Layer, SimpleQueryDTO> return result.getHits().getHits().get(0); } /** * Sobrescribe a la función base por incompatibilidad de query. Función que dado * un conjunto de términos, nos devuelve una query de elasticsearch. Debe estar * implementado en cada repositorio para darle una funcionalidad específica y * aquí estarán las funcionalidades que comparten todos los repositorios. * * @param terms * Map de términos pasados por la query. * @param query * QueryBuilder con la query de los términos acumulados en los * repositorios específicos. * @return query de tipo terms de elasticsearch. */ @Override public QueryBuilder getTermQuery(Map<String, Object> terms, BoolQueryBuilder query) { if (terms.containsKey("atlas")) { query.must(QueryBuilders.termQuery("atlas", Boolean.valueOf(terms.get("atlas").toString()))); } return super.getTermQuery(terms, query); } private QueryBuilder getLayerQuery() { return QueryBuilders.existsQuery(URL_SOURCE_PROPERTY); } Loading atlas-view/src/test/java/es/redmic/test/atlasview/integration/controller/LayerControllerTest.java +52 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ public class LayerControllerTest extends DocumentationViewBaseTest { try { layer = (Layer) JsonToBeanTestUtil.getBean("/data/model/layer/layer.json", Layer.class); layer.setAtlas(false); } catch (IOException e) { e.printStackTrace(); } Loading Loading @@ -166,6 +167,57 @@ public class LayerControllerTest extends DocumentationViewBaseTest { // @formatter:on } @Test public void searchLayersPost_NoReturnResult_WhenSearchLayersWithAtlasEqualToTrue() throws Exception { SimpleQueryDTO dataQuery = new SimpleQueryDTO(); dataQuery.setSize(1); dataQuery.addTerm("atlas", true); // @formatter:off this.mockMvc .perform(post(LAYER_PATH + "/_search").content(mapper.writeValueAsString(dataQuery)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.success", is(true))) .andExpect(jsonPath("$.body.data", notNullValue())) .andExpect(jsonPath("$.body.data.length()", is(0))); // @formatter:on } @Test public void searchLayersPost_ReturnResult_WhenSearchLayersWithAtlasEqualToTrue() throws Exception { SimpleQueryDTO dataQuery = new SimpleQueryDTO(); dataQuery.setSize(1); dataQuery.addTerm("atlas", true); Layer layerAtlas = (Layer) JsonToBeanTestUtil.getBean("/data/model/layer/layer.json", Layer.class); layerAtlas.setId("layer-1234"); layerAtlas.setName("atlas"); layerAtlas.getJoinIndex().setParent(PARENT_ID); repository.save(layerAtlas, PARENT_ID); // @formatter:off this.mockMvc .perform(post(LAYER_PATH + "/_search").content(mapper.writeValueAsString(dataQuery)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.success", is(true))) .andExpect(jsonPath("$.body.data", notNullValue())) .andExpect(jsonPath("$.body.data[0]", notNullValue())) .andExpect(jsonPath("$.body.data.length()", is(1))); // @formatter:on repository.delete(layerAtlas.getId(), PARENT_ID); } @Test public void searchLayersQueryString_Return200_WhenSearchIsCorrect() throws Exception { Loading Loading
atlas-view/src/main/java/es/redmic/atlasview/repository/layer/LayerESRepository.java +22 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,28 @@ public class LayerESRepository extends RWDataESRepository<Layer, SimpleQueryDTO> return result.getHits().getHits().get(0); } /** * Sobrescribe a la función base por incompatibilidad de query. Función que dado * un conjunto de términos, nos devuelve una query de elasticsearch. Debe estar * implementado en cada repositorio para darle una funcionalidad específica y * aquí estarán las funcionalidades que comparten todos los repositorios. * * @param terms * Map de términos pasados por la query. * @param query * QueryBuilder con la query de los términos acumulados en los * repositorios específicos. * @return query de tipo terms de elasticsearch. */ @Override public QueryBuilder getTermQuery(Map<String, Object> terms, BoolQueryBuilder query) { if (terms.containsKey("atlas")) { query.must(QueryBuilders.termQuery("atlas", Boolean.valueOf(terms.get("atlas").toString()))); } return super.getTermQuery(terms, query); } private QueryBuilder getLayerQuery() { return QueryBuilders.existsQuery(URL_SOURCE_PROPERTY); } Loading
atlas-view/src/test/java/es/redmic/test/atlasview/integration/controller/LayerControllerTest.java +52 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ public class LayerControllerTest extends DocumentationViewBaseTest { try { layer = (Layer) JsonToBeanTestUtil.getBean("/data/model/layer/layer.json", Layer.class); layer.setAtlas(false); } catch (IOException e) { e.printStackTrace(); } Loading Loading @@ -166,6 +167,57 @@ public class LayerControllerTest extends DocumentationViewBaseTest { // @formatter:on } @Test public void searchLayersPost_NoReturnResult_WhenSearchLayersWithAtlasEqualToTrue() throws Exception { SimpleQueryDTO dataQuery = new SimpleQueryDTO(); dataQuery.setSize(1); dataQuery.addTerm("atlas", true); // @formatter:off this.mockMvc .perform(post(LAYER_PATH + "/_search").content(mapper.writeValueAsString(dataQuery)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.success", is(true))) .andExpect(jsonPath("$.body.data", notNullValue())) .andExpect(jsonPath("$.body.data.length()", is(0))); // @formatter:on } @Test public void searchLayersPost_ReturnResult_WhenSearchLayersWithAtlasEqualToTrue() throws Exception { SimpleQueryDTO dataQuery = new SimpleQueryDTO(); dataQuery.setSize(1); dataQuery.addTerm("atlas", true); Layer layerAtlas = (Layer) JsonToBeanTestUtil.getBean("/data/model/layer/layer.json", Layer.class); layerAtlas.setId("layer-1234"); layerAtlas.setName("atlas"); layerAtlas.getJoinIndex().setParent(PARENT_ID); repository.save(layerAtlas, PARENT_ID); // @formatter:off this.mockMvc .perform(post(LAYER_PATH + "/_search").content(mapper.writeValueAsString(dataQuery)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.success", is(true))) .andExpect(jsonPath("$.body.data", notNullValue())) .andExpect(jsonPath("$.body.data[0]", notNullValue())) .andExpect(jsonPath("$.body.data.length()", is(1))); // @formatter:on repository.delete(layerAtlas.getId(), PARENT_ID); } @Test public void searchLayersQueryString_Return200_WhenSearchIsCorrect() throws Exception { Loading