Add new method to upload files via Keep Web API
[arvados.git] / sdk / java-v2 / src / test / java / org / arvados / client / api / client / KeepWebApiClientTest.java
diff --git a/sdk/java-v2/src/test/java/org/arvados/client/api/client/KeepWebApiClientTest.java b/sdk/java-v2/src/test/java/org/arvados/client/api/client/KeepWebApiClientTest.java
new file mode 100644 (file)
index 0000000..07b7b25
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) The Arvados Authors. All rights reserved.
+ *
+ * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
+ *
+ */
+
+package org.arvados.client.api.client;
+
+import org.arvados.client.test.utils.ArvadosClientMockedWebServerTest;
+import org.junit.Test;
+
+import java.io.File;
+import java.nio.file.Files;
+
+import static org.arvados.client.test.utils.ApiClientTestUtils.getResponse;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class KeepWebApiClientTest extends ArvadosClientMockedWebServerTest {
+
+    private KeepWebApiClient client = new KeepWebApiClient(CONFIG);
+
+    @Test
+    public void uploadFile() throws Exception {
+        // given
+        String collectionUuid = "112ci-4zz18-p51w7z3fpopo6sm";
+        File file = Files.createTempFile("keep-upload-test", "txt").toFile();
+        Files.write(file.toPath(), "test data".getBytes());
+
+        server.enqueue(getResponse("keep-client-upload-response"));
+
+        // when
+        String uploadResponse = client.upload(collectionUuid, file, uploadedBytes -> System.out.printf("Uploaded bytes: %s/%s%n", uploadedBytes, file.length()));
+
+        // then
+        assertThat(uploadResponse).isEqualTo("Created");
+    }
+
+}