protected RetrieveDocumentSetResponseType processRequest(T body) { Exchange result = process(body); Exception exception = Exchanges.extractException(result); if (exception != null) { log.debug(getClass().getSimpleName() + " service failed", exception); RetrievedDocumentSet errorResponse = new RetrievedDocumentSet( exception, ErrorCode.REPOSITORY_METADATA_ERROR, ErrorCode.REPOSITORY_ERROR, homeCommunityId); if (homeCommunityId != null) { errorResponse.getErrors().get(0).setLocation(homeCommunityId); } return EbXML30Converters.convert(errorResponse); } return Exchanges.resultMessage(result).getBody(RetrieveDocumentSetResponseType.class); } }
@Before public void setUp() throws Exception { EbXMLFactory factory = new EbXMLFactory30(); transformer = new RetrieveDocumentSetResponseTransformer(factory); response = SampleData.createRetrievedDocumentSet(); dataHandler1 = response.getDocuments().get(0).getDataHandler(); dataHandler2 = response.getDocuments().get(1).getDataHandler(); }
@Test public void testDelegatesToRegistryResponseValidator() { // Test a failure that is detected by the RegistryResponseValidator response.setStatus(null); expectFailure(INVALID_STATUS_IN_RESPONSE); }
doc2.setNewDocumentUniqueId("doc2-new"); RetrievedDocumentSet response = new RetrievedDocumentSet(); response.getDocuments().add(doc1); response.getDocuments().add(doc2); response.setStatus(Status.SUCCESS);
@Test public void testFromEbXMLEmpty() { EbXMLRetrieveDocumentSetResponse ebXML = transformer.toEbXML(new RetrievedDocumentSet()); RetrievedDocumentSet result = transformer.fromEbXML(ebXML); assertEquals(new RetrievedDocumentSet(), result); } }
@Test public void testToEbXMLEmpty() { EbXMLRetrieveDocumentSetResponse ebXML = transformer.toEbXML(new RetrievedDocumentSet()); assertNotNull(ebXML); assertEquals(0, ebXML.getDocuments().size()); }
@Test public void testRetrievedDocumentSet() throws Exception { RetrievedDocumentSet response = SampleData.createRetrievedDocumentSet(); for (RetrievedDocument doc : response.getDocuments()) { doc.setDataHandler(null); } checkSerialization(response); }
@Test public void testDocumentMustBeSpecified() { DocumentReference requestData = new DocumentReference("repo3", "doc3", "urn:oid:1.2.5"); RetrievedDocument doc = new RetrievedDocument(); doc.setRequestData(requestData); doc.setDataHandler(null); doc.setMimeType("text/plain"); response.getDocuments().add(doc); EbXMLRetrieveDocumentSetResponse ebXML = transformer.toEbXML(response); expectFailure(MISSING_DOCUMENT_FOR_DOC_ENTRY, ebXML); }
@Test public void testRepoIdMustBeSpecified() { DocumentReference requestData = new DocumentReference(null, "doc3", "home3"); RetrievedDocument doc = new RetrievedDocument(); doc.setRequestData(requestData); doc.setDataHandler(SampleData.createDataHandler()); doc.setMimeType("text/plain"); response.getDocuments().add(doc); EbXMLRetrieveDocumentSetResponse ebXML = transformer.toEbXML(response); expectFailure(REPO_ID_MUST_BE_SPECIFIED, ebXML); }
@Test public void testDocIdMustBeSpecified() { DocumentReference requestData = new DocumentReference("repo3", "", "home3"); RetrievedDocument doc = new RetrievedDocument(); doc.setRequestData(requestData); doc.setDataHandler(SampleData.createDataHandler()); doc.setMimeType("text/plain"); response.getDocuments().add(doc); EbXMLRetrieveDocumentSetResponse ebXML = transformer.toEbXML(response); expectFailure(DOC_ID_MUST_BE_SPECIFIED, ebXML); }
@Test public void testMimeTypeMustBeSpecified() { DocumentReference requestData = new DocumentReference("repo3", "doc3", "home3"); RetrievedDocument doc = new RetrievedDocument(); doc.setRequestData(requestData); doc.setDataHandler(SampleData.createDataHandler()); doc.setMimeType(""); response.getDocuments().add(doc); EbXMLRetrieveDocumentSetResponse ebXML = transformer.toEbXML(response); expectFailure(MIME_TYPE_MUST_BE_SPECIFIED, ebXML); }