use of ddf.catalog.transform.MetacardTransformer in project ddf by codice.
the class AtomTransformerTest 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.transform.MetacardTransformer in project ddf by codice.
the class AtomTransformerTest method basicSetup.
private 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.transform.MetacardTransformer in project ddf by codice.
the class AtomTransformerTest method testItemsPerPageNegativeInteger.
@Test
public void testItemsPerPageNegativeInteger() 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);
assertXpathEvaluatesTo("1", "/atom:feed/os:itemsPerPage", output);
}
use of ddf.catalog.transform.MetacardTransformer in project ddf by codice.
the class AtomTransformerTest method testThrowMetacardTransformerRuntimeException.
@Test
public void testThrowMetacardTransformerRuntimeException() throws IOException, CatalogTransformerException, XpathException, SAXException {
// given
MetacardTransformer metacardTransformer = mock(MetacardTransformer.class);
when(metacardTransformer.transform(isA(Metacard.class), isNull())).thenThrow(RuntimeException.class);
AtomTransformer transformer = getConfiguredAtomTransformer(metacardTransformer, true);
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();
String output = new String(bytes);
assertFeedCompliant(output);
assertEntryCompliant(output);
validateAgainstAtomSchema(bytes);
assertXpathEvaluatesTo(TEXT_TYPE, "/atom:feed/atom:entry/atom:content/@type", output);
assertXpathEvaluatesTo(SAMPLE_ID, "/atom:feed/atom:entry/atom:content", output);
}
use of ddf.catalog.transform.MetacardTransformer in project ddf by codice.
the class DumpCommandTest method testNoFileDumpedWhenTransformFails.
/**
* If a transform fails, assert that no file is dumped
*
* @throws Exception
*/
@Test
public void testNoFileDumpedWhenTransformFails() throws Exception {
// mock transformer to throw exception
MetacardTransformer transformer = mock(MetacardTransformer.class);
when(transformer.transform(any(), any())).thenThrow(CatalogTransformerException.class);
List<MetacardTransformer> transformers = new ArrayList<>();
transformers.add(transformer);
// given
List<Result> resultList = getResultList("id1", "id2");
MetacardImpl metacard1 = new MetacardImpl(resultList.get(0).getMetacard());
MetacardImpl metacard2 = new MetacardImpl(resultList.get(1).getMetacard());
metacard1.setResourceURI(new URI("content:" + metacard1.getId()));
metacard2.setResourceURI(new URI("content:" + metacard2.getId() + "#preview"));
TestDumpCommand dumpCommand = new TestDumpCommand(transformers, signer);
dumpCommand.catalogFramework = givenCatalogFramework(resultList);
dumpCommand.filterBuilder = new GeotoolsFilterBuilder();
File outputDirectory = testFolder.newFolder("somedirectory");
String outputDirectoryPath = outputDirectory.getAbsolutePath();
dumpCommand.dirPath = outputDirectoryPath;
dumpCommand.transformerId = "someOtherTransformer";
dumpCommand.securityLogger = mock(SecurityLogger.class);
// when
dumpCommand.executeWithSubject();
// then
assertThat(consoleOutput.getOutput(), containsString(" 0 file(s) dumped in "));
}
Aggregations