Add 'sdk/java-v2/' from commit '55f103e336ca9fb8bf1720d2ef4ee8dd4e221118'
[arvados.git] / sdk / java-v2 / src / test / java / org / arvados / client / api / client / KeepServerApiClientTest.java
1 /*
2  * Copyright (C) The Arvados Authors. All rights reserved.
3  *
4  * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
5  *
6  */
7
8 package org.arvados.client.api.client;
9
10 import com.google.common.collect.Maps;
11 import okhttp3.mockwebserver.MockResponse;
12 import okhttp3.mockwebserver.RecordedRequest;
13 import okio.Buffer;
14 import org.apache.commons.io.FileUtils;
15 import org.arvados.client.common.Headers;
16 import org.arvados.client.test.utils.ArvadosClientMockedWebServerTest;
17 import org.junit.Test;
18
19 import java.io.File;
20 import java.util.Map;
21
22 import static org.arvados.client.test.utils.ApiClientTestUtils.assertAuthorizationHeader;
23 import static org.assertj.core.api.Assertions.assertThat;
24
25 public class KeepServerApiClientTest extends ArvadosClientMockedWebServerTest {
26
27     private KeepServerApiClient client = new KeepServerApiClient(CONFIG);
28
29     @Test
30     public void uploadFileToServer() throws Exception {
31
32         // given
33         String blockLocator = "7df44272090cee6c0732382bba415ee9";
34         String signedBlockLocator = blockLocator + "+70+A189a93acda6e1fba18a9dffd42b6591cbd36d55d@5a1c17b6";
35         server.enqueue(new MockResponse().setBody(signedBlockLocator));
36
37         String url = server.url(blockLocator).toString();
38         File body = new File("README.md");
39         Map<String, String> headers = Maps.newHashMap();
40         headers.put(Headers.X_KEEP_DESIRED_REPLICAS, "2");
41
42         // when
43         String actual = client.upload(url, headers, body);
44
45         // then
46         RecordedRequest request = server.takeRequest();
47         assertAuthorizationHeader(request);
48         assertThat(request.getPath()).isEqualTo("/" + blockLocator);
49
50         assertThat(actual).isEqualTo(signedBlockLocator);
51     }
52
53     @Test
54     public void downloadFileFromServer() throws Exception {
55         File data = new File("README.md");
56         byte[] fileBytes = FileUtils.readFileToByteArray(data);
57         server.enqueue(new MockResponse().setBody(new Buffer().write(fileBytes)));
58
59         String blockLocator = "7df44272090cee6c0732382bba415ee9";
60         String signedBlockLocator = blockLocator + "+70+A189a93acda6e1fba18a9dffd42b6591cbd36d55d@5a1c17b6";
61
62         String url = server.url(signedBlockLocator).toString();
63
64         byte[] actual = client.download(url);
65         RecordedRequest request = server.takeRequest();
66         assertThat(request.getPath()).isEqualTo("/" + signedBlockLocator);
67         assertThat(actual).isEqualTo(fileBytes);
68
69     }
70 }