use of ddf.catalog.operation.SourceResponse in project ddf by codice.
the class TestAtomTransformer method testNoDdfConfiguration.
/**
* Tests what happens when no system configuration can be found.
*
* @throws IOException
* @throws CatalogTransformerException
* @throws XpathException
* @throws SAXException
*/
@Test
public void testNoDdfConfiguration() throws IOException, CatalogTransformerException, XpathException, SAXException {
// given
MetacardTransformer metacardTransformer = getXmlMetacardTransformerStub();
String currentSiteName = System.getProperty(SystemInfo.SITE_NAME);
try {
System.setProperty(SystemInfo.SITE_NAME, "");
AtomTransformer transformer = new AtomTransformer();
transformer.setMetacardTransformer(metacardTransformer);
SourceResponse response = getSourceResponseStub(SAMPLE_ID, null);
// when
BinaryContent binaryContent = transformer.transform(response, null);
// then
assertThat(binaryContent.getMimeType(), is(AtomTransformer.MIME_TYPE));
byte[] bytes = binaryContent.getByteArray();
/* used to visualize */
IOUtils.write(bytes, new FileOutputStream(new File(TARGET_FOLDER + getMethodName() + ATOM_EXTENSION)));
String output = new String(bytes);
assertFeedCompliant(output);
assertEntryCompliant(output);
validateAgainstAtomSchema(bytes);
assertXpathNotExists("/atom:feed/atom:generator", output);
assertXpathEvaluatesTo(AtomTransformer.DEFAULT_AUTHOR, "/atom:feed/atom:author/atom:name", output);
} finally {
if (currentSiteName != null) {
System.setProperty(SystemInfo.SITE_NAME, currentSiteName);
}
}
}
use of ddf.catalog.operation.SourceResponse in project ddf by codice.
the class TestAtomTransformer method testNoEntries.
@Test
public void testNoEntries() throws IOException, CatalogTransformerException, XpathException, SAXException {
// given
AtomTransformer transformer = new AtomTransformer();
MetacardTransformer metacardTransformer = getXmlMetacardTransformerStub();
transformer.setMetacardTransformer(metacardTransformer);
setDefaultSystemConfiguration();
SourceResponse response = mock(SourceResponse.class);
when(response.getRequest()).thenReturn(getStubRequest());
when(response.getResults()).thenReturn(new ArrayList<Result>());
// when
BinaryContent binaryContent = transformer.transform(response, null);
// then
byte[] bytes = binaryContent.getByteArray();
/* used to visualize */
IOUtils.write(bytes, new FileOutputStream(new File(TARGET_FOLDER + getMethodName() + ATOM_EXTENSION)));
String output = new String(bytes);
assertFeedCompliant(output);
assertEntryCompliant(output);
validateAgainstAtomSchema(bytes);
assertBasicFeedInfo(output, "0");
}
use of ddf.catalog.operation.SourceResponse in project ddf by codice.
the class TestAtomTransformer method basicSetup.
protected SourceResponse basicSetup(AtomTransformer transformer) throws IOException, CatalogTransformerException {
MetacardTransformer metacardTransformer = getXmlMetacardTransformerStub();
transformer.setMetacardTransformer(metacardTransformer);
setDefaultSystemConfiguration();
SourceResponse response = mock(SourceResponse.class);
when(response.getRequest()).thenReturn(getStubRequest());
ResultImpl result = new ResultImpl();
MetacardStub metacard = new MetacardStub("");
metacard.setId(SAMPLE_ID);
metacard.setSourceId(SAMPLE_SOURCE_ID);
result.setMetacard(metacard);
when(response.getResults()).thenReturn(Arrays.asList((Result) result));
return response;
}
use of ddf.catalog.operation.SourceResponse in project ddf by codice.
the class TestAtomTransformer method testTotalResultsNegative.
@Test
public void testTotalResultsNegative() throws IOException, CatalogTransformerException, XpathException, SAXException {
// given
AtomTransformer transformer = new AtomTransformer();
MetacardTransformer metacardTransformer = getXmlMetacardTransformerStub();
transformer.setMetacardTransformer(metacardTransformer);
setDefaultSystemConfiguration();
SourceResponse response = mock(SourceResponse.class);
when(response.getHits()).thenReturn(new Long(-1));
QueryImpl query = new QueryImpl(FILTER_BUILDER.attribute(Metacard.METADATA).text("you"));
query.setPageSize(1);
query.setStartIndex(2);
query.setRequestsTotalResultsCount(true);
QueryRequestImpl queryRequestImpl = new QueryRequestImpl(query);
when(response.getRequest()).thenReturn(queryRequestImpl);
ResultImpl result1 = new ResultImpl();
MetacardStub metacard = new MetacardStub("");
metacard.setId(SAMPLE_ID);
result1.setMetacard(metacard);
when(response.getResults()).thenReturn(Arrays.asList((Result) result1));
// when
BinaryContent binaryContent = transformer.transform(response, null);
// then
assertThat(binaryContent.getMimeType(), is(AtomTransformer.MIME_TYPE));
byte[] bytes = binaryContent.getByteArray();
String output = new String(bytes);
assertFeedCompliant(output);
assertEntryCompliant(output);
validateAgainstAtomSchema(bytes);
assertXpathNotExists("/atom:feed/os:totalResults", output);
}
use of ddf.catalog.operation.SourceResponse in project ddf by codice.
the class TestAtomTransformer method testBadGeo.
@Test
public void testBadGeo() throws CatalogTransformerException, IOException, XpathException, SAXException {
AtomTransformer atomTransformer = new AtomTransformer();
atomTransformer.setMetacardTransformer(getXmlMetacardTransformerStub());
setDefaultSystemConfiguration();
SourceResponse response = getSourceResponseStub(SAMPLE_ID, BAD_WKT);
byte[] bytes = atomTransformer.transform(response, null).getByteArray();
String output = new String(bytes);
/* used to visualize */
IOUtils.write(bytes, new FileOutputStream(new File(TARGET_FOLDER + getMethodName() + ATOM_EXTENSION)));
assertFeedCompliant(output);
assertEntryCompliant(output);
validateAgainstAtomSchema(bytes);
assertXpathNotExists("//gml:Polygon", output);
assertXpathNotExists("//georss:where", output);
}
Aggregations