1010import static com .github .tomakehurst .wiremock .client .WireMock .verify ;
1111import static java .lang .String .format ;
1212import static java .util .UUID .randomUUID ;
13-
14- import org .hamcrest .CoreMatchers ;
15- import org .jboss .resteasy .specimpl .MultivaluedMapImpl ;
16-
17- import static javax .ws .rs .core .HttpHeaders .CONTENT_TYPE ;
1813import static javax .ws .rs .core .MediaType .TEXT_PLAIN ;
19- import static javax .ws .rs .core .Response .Status .OK ;
2014import static org .apache .openejb .util .NetworkUtil .getNextAvailablePort ;
2115import static org .hamcrest .MatcherAssert .assertThat ;
2216import static org .hamcrest .core .Is .is ;
23- import static org .junit .Assert .*;
17+ import static org .junit .Assert .assertTrue ;
18+ import static org .junit .Assert .assertFalse ;
19+ import static org .junit .Assert .fail ;
20+ import static org .junit .Assert .assertEquals ;
2421import static uk .gov .justice .services .test .utils .common .reflection .ReflectionUtils .setField ;
2522
2623import uk .gov .justice .services .file .alfresco .common .AlfrescoRestClient ;
3229import java .util .Optional ;
3330
3431import javax .ws .rs .ProcessingException ;
35- import javax .ws .rs .core .Response ;
3632import javax .ws .rs .core .MultivaluedMap ;
3733
3834import com .github .tomakehurst .wiremock .junit .WireMockRule ;
@@ -48,7 +44,7 @@ public class AlfrescoFileRequesterIT {
4844 private static final String UNUSED_MIME_TYPE = "text/plain" ;
4945 private static final String UNUSED_FILE_NAME = "file.txt" ;
5046 private static final String ALFRESCO_WORKSPACE_PATH = "/service/api/node/content/workspace/SpacesStore/" ;
51- private static final String ALFRESCO_WORKSPACE_TRANSFORMATION_PATH = "service/api/node /workspace/SpacesStore/" ;
47+ private static final String ALFRESCO_WORKSPACE_PDF_TRANSFORMATION_PATH = "/ service/api/requestpdf /workspace/SpacesStore/" ;
5248
5349
5450 private static int PORT = getNextAvailablePort ();
@@ -57,7 +53,7 @@ public class AlfrescoFileRequesterIT {
5753
5854 private RestClient restClient ;
5955
60- private MultivaluedMap <String ,Object > headers ;
56+ private MultivaluedMap <String , Object > headers ;
6157
6258 @ Rule
6359 public WireMockRule wireMock = new WireMockRule (PORT );
@@ -102,44 +98,18 @@ public void shouldReturnPdfContentFromAlfresco() throws IOException {
10298 final String fileId = randomUUID ().toString ();
10399 final String mimeType = "application/pdf" ;
104100 final String fileName = "file123.txt" ;
101+ final String fileContent = "abcd" ;
105102
106- restClient = new RestClient ();
107-
108- headers = new MultivaluedMapImpl <>();
109- headers .add ("cppuid" , "user1234" );
110-
111- final Response readMaterialResponseAsPdf = restClient .query (format (basePathWithPort (PORT ) + "/%s%s?transformpdf=true" , ALFRESCO_WORKSPACE_TRANSFORMATION_PATH , fileId ), "*/*" , headers );
112-
113- assertThat (readMaterialResponseAsPdf .getStatus (), is (OK .getStatusCode ()));
114- assertThat (readMaterialResponseAsPdf .getHeaderString (CONTENT_TYPE ), CoreMatchers .equalTo ("application/pdf;charset=UTF-8" ));
103+ stubFor (get (urlMatching (format ("/alfresco%s%s/%s" , ALFRESCO_WORKSPACE_PDF_TRANSFORMATION_PATH , fileId , fileName )))
104+ .withHeader ("cppuid" , equalTo ("user1234" ))
105+ .willReturn (aResponse ().withHeader ("Content-Type" , mimeType ).withBody (fileContent )));
115106
116- final Optional <InputStream > inputStream = fileRequester .request (fileId , mimeType , fileName , true );
107+ final Optional <InputStream > inputStream = fileRequester .requestPdf (fileId , fileName );
117108 assertTrue (inputStream .isPresent ());
118109
119- assertEquals (IOUtils .toString (inputStream .get ()). length (), readMaterialResponseAsPdf . readEntity ( String . class ). length ( ));
110+ assertThat (IOUtils .toString (inputStream .get ()), is ( fileContent ));
120111 }
121112
122- @ Test
123- public void shouldReturnOriginalContentFromAlfresco () throws IOException {
124- final String fileId = randomUUID ().toString ();
125- final String mimeType = "text/plain" ;
126- final String fileName = "file123.txt" ;
127-
128- restClient = new RestClient ();
129-
130- headers = new MultivaluedMapImpl <>();
131- headers .add ("cppuid" , "user1234" );
132-
133- final Response readMaterialResponseAsPdf = restClient .query (format (basePathWithPort (PORT ) + "/%s%s?transformpdf=false" , ALFRESCO_WORKSPACE_TRANSFORMATION_PATH , fileId ), "*/*" , headers );
134-
135- assertThat (readMaterialResponseAsPdf .getStatus (), is (OK .getStatusCode ()));
136- assertThat (readMaterialResponseAsPdf .getHeaderString (CONTENT_TYPE ), CoreMatchers .equalTo ("text/plain;charset=UTF-8" ));
137-
138- final Optional <InputStream > inputStream = fileRequester .request (fileId , mimeType , fileName , false );
139- assertTrue (inputStream .isPresent ());
140-
141- assertEquals (IOUtils .toString (inputStream .get ()).length (), readMaterialResponseAsPdf .readEntity (String .class ).length ());
142- }
143113
144114 @ Test
145115 public void shouldReturnOptionalEmptyFromAlfrescoIfFileIsNotFound () {
@@ -184,7 +154,7 @@ public void shouldThrowAnExceptionIfAlfrescoServiceIsUnavailable() {
184154 private static AlfrescoFileRequester alfrescoFileRequesterWith (final String basePath ) {
185155 AlfrescoFileRequester fileRequester = new AlfrescoFileRequester ();
186156 fileRequester .alfrescoWorkspacePath = ALFRESCO_WORKSPACE_PATH ;
187- fileRequester .alfrescoPdfContentWorkspacePath = "/" + ALFRESCO_WORKSPACE_TRANSFORMATION_PATH ;
157+ fileRequester .alfrescoPdfContentWorkspacePath = ALFRESCO_WORKSPACE_PDF_TRANSFORMATION_PATH ;
188158 fileRequester .alfrescoReadUser = "user1234" ;
189159 fileRequester .restClient = new AlfrescoRestClient ();
190160 setField (fileRequester .restClient , "alfrescoBaseUri" , basePath );
0 commit comments