diff --git a/zanata-war/src/test/java/org/zanata/rest/service/FileServiceTest.java b/zanata-war/src/test/java/org/zanata/rest/service/FileServiceTest.java index 28891d89f1..9a6af15f80 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/FileServiceTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/FileServiceTest.java @@ -29,6 +29,8 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -81,6 +83,8 @@ public class FileServiceTest @Mock private HProject project; @Mock private HProjectIteration projectIteration; + @Captor private ArgumentCaptor> paramCaptor; + private FileResource fileService; @BeforeMethod @@ -247,6 +251,22 @@ public void canUploadExistingDocument() throws IOException assertThat(chunkResponse.getErrorMessage(), is(nullValue())); } + public void usesGivenParameters() throws IOException + { + MockConfig conf = defaultUpload().build(); + mockRequiredServices(conf); + fileService.uploadSourceFile(conf.projectSlug, conf.versionSlug, conf.docId, conf.uploadForm); + assertThat(paramCaptor.getValue().get(), is(conf.params)); + } + + public void fallsBackOnStoredParameters() throws IOException + { + MockConfig conf = defaultUpload().params(null).build(); + mockRequiredServices(conf); + fileService.uploadSourceFile(conf.projectSlug, conf.versionSlug, conf.docId, conf.uploadForm); + assertThat(paramCaptor.getValue().get(), is(conf.storedParams)); + } + private static void assertErrorResponse(Response response, Status errorStatus, String errorMessage) { assertThat(Status.fromStatusCode(response.getStatus()), is(errorStatus)); @@ -268,13 +288,15 @@ private void mockRequiredServices(MockConfig conf) throws IOException when(identity.getCredentials()).thenReturn(creds); File someFile = File.createTempFile("tests", "something"); when(translationFileService.persistToTempFile(Matchers.any())).thenReturn(someFile); + when(documentDAO.getAdapterParams(conf.projectSlug, conf.versionSlug, conf.docId)) + .thenReturn(Optional.fromNullable(conf.storedParams)); when(documentDAO.addRawDocument(Matchers.any(), Matchers.any())) .thenReturn(new HRawDocument()); when(documentDAO.getByProjectIterationAndDocId(conf.projectSlug, conf.versionSlug, conf.docId)).thenReturn(conf.existingDocument); Resource document = new Resource(); when(translationFileService.parseUpdatedAdapterDocumentFile( - Matchers.any(), eq(conf.docId), eq(conf.fileType), eq(Optional.of(conf.params)))) + Matchers.any(), eq(conf.docId), eq(conf.fileType), paramCaptor.capture())) .thenReturn(document); when(documentService.saveDocument(eq(conf.projectSlug), eq(conf.versionSlug), Matchers.any(), Matchers.anySet(), Matchers.anyBoolean())) @@ -323,7 +345,7 @@ private static class MockConfig // or just a string public final InputStream fileStream; public final String hash; - public final String params; + public final String params, storedParams; public final DocumentFileUploadForm uploadForm; @@ -349,6 +371,7 @@ private MockConfig(Builder builder) fileStream = builder.fileStream; hash = builder.hash; params = builder.params; + storedParams = builder.storedParams; uploadForm = new DocumentFileUploadForm(); uploadForm.setFileType(fileType); @@ -374,7 +397,7 @@ private static class Builder private long size; private InputStream fileStream; private String hash; - private String params; + private String params, storedParams; public HDocument existingDocument; private boolean hasImportTemplatePermission, plaintextAdapterAvailable; @@ -438,6 +461,11 @@ public Builder params(String params) this.params = params; return this; } + public Builder storedParams(String storedParams) + { + this.storedParams = storedParams; + return this; + } public Builder existingDocument(HDocument document) { this.existingDocument = document; @@ -469,6 +497,7 @@ public Builder setSimpleUpload() fileStream = new ByteArrayInputStream(basicDocumentContent.getBytes()); hash = hashOfBasicDocumentContent; params = "params"; + storedParams = "stored params"; existingDocument = null;