Java tutorial
/** * Copyright (C) 2014 Cohesive Integrations, LLC (info@cohesiveintegrations.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.di2e.ecdr.search.transform.atom.response; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import java.util.List; import net.di2e.ecdr.commons.filter.config.AtomSearchResponseTransformerConfig; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.junit.Test; import ddf.catalog.data.Result; import ddf.catalog.operation.QueryRequest; import ddf.catalog.operation.SourceResponse; /** * Tests that the atom-based search response transformer returns proper atom content. */ public class AtomResponseTransformerTest extends net.di2e.ecdr.search.transform.atom.response.AtomTest { @Test public void testBoxTransform() throws Exception { SourceResponse response = getTransformResponse(SIMPLE_BOX); validateWKT(BOX_WKT, response); } @Test public void testLineTransform() throws Exception { SourceResponse response = getTransformResponse(SIMPLE_LINE); validateWKT(LINE_WKT, response); } @Test public void testPointTransform() throws Exception { SourceResponse response = getTransformResponse(SIMPLE_POINT); validateWKT(POINT_WKT, response); } @Test public void testPolygonTransform() throws Exception { SourceResponse response = getTransformResponse(SIMPLE_POLYGON); validateWKT(POLYGON_WKT, response); } @Test public void testGMLBoxTransform() throws Exception { SourceResponse response = getTransformResponse(GML_BOX); validateWKT(BOX_WKT, response); } @Test public void testGMLPointTransform() throws Exception { SourceResponse response = getTransformResponse(GML_POINT); validateWKT(POINT_WKT, response); } @Test public void testGMLLineTransform() throws Exception { SourceResponse response = getTransformResponse(GML_LINE); validateWKT(LINE_WKT, response); } @Test public void testGMLPolygonTransform() throws Exception { SourceResponse response = getTransformResponse(GML_POLYGON); validateWKT(POLYGON_WKT, response); } @Test public void testMultiPointTransform() throws Exception { SourceResponse response = getTransformResponse(MULTIPOINT); validateWKT(MULTIPOINT_WKT, response); } @Test public void testMultiLineStringTransform() throws Exception { SourceResponse response = getTransformResponse(MULTILINESTRING); validateWKT(MULTILINESTRING_WKT, response); } @Test public void testMultiPolygonTransform() throws Exception { SourceResponse response = getTransformResponse(MULTIPOLYGON); validateWKT(MULTIPOLYGON_WKT, response); } @Test public void testMultiBoxTransform() throws Exception { SourceResponse response = getTransformResponse(MULTIBOX); validateWKT(MULTIBOX_WKT, response); } @Test public void testGeometryCollectionTransform() throws Exception { SourceResponse response = getTransformResponse(GEOMETRYCOLLECTION); validateWKT(GEOMETRYCOLLECTION_WKT, response); } @Test public void testInvalidEntry() throws Exception { AtomSearchResponseTransformerConfig config = mock(AtomSearchResponseTransformerConfig.class); QueryRequest request = mock(QueryRequest.class); AtomResponseTransformer transformer = new AtomResponseTransformer(config); String atomXML = IOUtils.toString(getClass().getResourceAsStream(ATOM_INVALID_FILE)); SourceResponse response = transformer.processSearchResponse(IOUtils.toInputStream(atomXML), request, SITE_NAME); assertEquals(0, response.getHits()); assertEquals(0, response.getResults().size()); } private SourceResponse getTransformResponse(final String LOCATION_XML) throws Exception { AtomSearchResponseTransformerConfig config = mock(AtomSearchResponseTransformerConfig.class); QueryRequest request = mock(QueryRequest.class); AtomResponseTransformer transformer = new AtomResponseTransformer(config); String atomXML = IOUtils.toString(getClass().getResourceAsStream(ATOM_TEMPLATE_FILE)); atomXML = StringUtils.replace(atomXML, LOCATION_MARKER, LOCATION_XML); return transformer.processSearchResponse(IOUtils.toInputStream(atomXML), request, SITE_NAME); } private void validateWKT(String expectedWKT, SourceResponse response) { List<Result> results = response.getResults(); assertEquals(1, results.size()); Result result = results.iterator().next(); assertEquals(expectedWKT, result.getMetacard().getLocation()); } }