RestClient { public Link getUploadLink(final String serverPath, final boolean overwrite) throws ServerIOException, WrongMethodException, IOException { Link link = cloudApi.getUploadLink(serverPath, overwrite); if (!"PUT".equalsIgnoreCase(link.getMethod())) { throw new WrongMethodException("Method in Link object is not PUT"); } return link; } RestClient(final Credentials credentials);  RestClient(final Credentials credentials, final OkHttpClient client);  RestClient(final Credentials credentials, final OkHttpClient client, final String serverUrl); ApiVersion getApiVersion(); Operation getOperation(final String operationId); Operation getOperation(final Link link); Operation waitProgress(final Link link, final Runnable waiting); DiskInfo getDiskInfo(); DiskInfo getDiskInfo(final String fields); Resource getResources(final ResourcesArgs args); ResourceList getFlatResourceList(final ResourcesArgs args); ResourceList getLastUploadedResources(final ResourcesArgs args); Resource patchResource(final ResourcesArgs args); Resource listPublicResources(final ResourcesArgs args); Resource getTrashResources(final ResourcesArgs args); Link deleteFromTrash(final String path); Link restoreFromTrash(final String path, final String name, final Boolean overwrite); void downloadFile(final String path, final File saveTo, final ProgressListener progressListener); void downloadFile(final String path, final DownloadListener downloadListener); Link saveFromUrl(final String url, final String serverPath); Link getUploadLink(final String serverPath, final boolean overwrite); void uploadFile(final Link link, final boolean resumeUpload, final File localSource,
                           final ProgressListener progressListener); Link delete(final String path, final boolean permanently); Link makeFolder(final String path); Link copy(final String from, final String path, final boolean overwrite); Link move(final String from, final String path, final boolean overwrite); Link publish(final String path); Link unpublish(final String path); void downloadPublicResource(final String publicKey, final String path, final File saveTo,
                                       final ProgressListener progressListener); Link savePublicResource(final String publicKey, final String path, final String name);  }
@Test(expected = ServerIOException.class) public void testUploadFileOverwriteFailed() throws Exception { String path = "/download-test.jpg"; client.getUploadLink(path, false); }