+++ /dev/null
-/*
- * Copyright (C) The Arvados Authors. All rights reserved.
- *
- * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
- *
- */
-
-package org.arvados.client.logic.keep;
-
-import okhttp3.mockwebserver.MockResponse;
-import okio.Buffer;
-import org.apache.commons.io.FileUtils;
-import org.arvados.client.config.FileConfigProvider;
-import org.arvados.client.config.ConfigProvider;
-import org.arvados.client.exception.ArvadosClientException;
-import org.arvados.client.test.utils.ArvadosClientMockedWebServerTest;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import java.io.File;
-
-import static junit.framework.TestCase.fail;
-import static org.arvados.client.test.utils.ApiClientTestUtils.getResponse;
-import static org.assertj.core.api.Assertions.assertThat;
-
-@RunWith(MockitoJUnitRunner.class)
-public class KeepClientTest extends ArvadosClientMockedWebServerTest {
-
- private ConfigProvider configProvider = new FileConfigProvider();
- private static final String TEST_FILE_PATH ="src/test/resources/org/arvados/client/api/client/keep-client-test-file.txt";
-
- @InjectMocks
- private KeepClient keepClient = new KeepClient(configProvider);
-
- @Mock
- private KeepLocator keepLocator;
-
- @Test
- public void uploadedFile() throws Exception {
- // given
- server.enqueue(getResponse("keep-services-accessible"));
- server.enqueue(new MockResponse().setBody("0887c78c7d6c1a60ac0b3709a4302ee4"));
-
- // when
- String actual = keepClient.put(new File(TEST_FILE_PATH), 1, 0);
-
- // then
- assertThat(actual).isEqualTo("0887c78c7d6c1a60ac0b3709a4302ee4");
- }
-
- @Test
- public void fileIsDownloaded() throws Exception {
- //given
- File data = new File(TEST_FILE_PATH);
- byte[] fileBytes = FileUtils.readFileToByteArray(data);
-
- // when
- server.enqueue(getResponse("keep-services-accessible"));
- server.enqueue(new MockResponse().setBody(new Buffer().write(fileBytes)));
-
- byte[] actual = keepClient.getDataChunk(keepLocator);
-
- Assert.assertArrayEquals(fileBytes, actual);
- }
-
- @Test
- public void fileIsDownloadedWhenFirstServerDoesNotRespond() throws Exception {
- // given
- File data = new File(TEST_FILE_PATH);
- byte[] fileBytes = FileUtils.readFileToByteArray(data);
- server.enqueue(getResponse("keep-services-accessible")); // two servers accessible
- server.enqueue(new MockResponse().setResponseCode(404)); // first one not responding
- server.enqueue(new MockResponse().setBody(new Buffer().write(fileBytes))); // second one responding
-
- //when
- byte[] actual = keepClient.getDataChunk(keepLocator);
-
- //then
- Assert.assertArrayEquals(fileBytes, actual);
- }
-
- @Test
- public void exceptionIsThrownWhenNoServerResponds() throws Exception {
- //given
- File data = new File(TEST_FILE_PATH);
- server.enqueue(getResponse("keep-services-accessible")); // two servers accessible
- server.enqueue(new MockResponse().setResponseCode(404)); // first one not responding
- server.enqueue(new MockResponse().setResponseCode(404)); // second one not responding
-
- try {
- //when
- keepClient.getDataChunk(keepLocator);
- fail();
- } catch (ArvadosClientException e) {
- //then
- Assert.assertEquals("No server responding. Unable to download data chunk.", e.getMessage());
- }
- }
-
- @Test
- public void exceptionIsThrownWhenThereAreNoServersAccessible() throws Exception {
- //given
- server.enqueue(getResponse("keep-services-not-accessible")); // no servers accessible
-
- try {
- //when
- keepClient.getDataChunk(keepLocator);
- fail();
- } catch (ArvadosClientException e) {
- //then
- Assert.assertEquals("No gateway services available!", e.getMessage());
- }
- }
-}