Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
strategy:
matrix:
# https://en.wikipedia.org/wiki/Java_version_history
java: [ '8', '11' ] # LTS
java: [ '22' ] # LTS

steps:
- name: Checkout
Expand Down
40 changes: 31 additions & 9 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ plugins {

group = "com.uploadcare"


val isReleaseVersion = !version.toString().lowercase().endsWith("snapshot")

java {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
toolchain {
languageVersion.set(JavaLanguageVersion.of(22))
}
withSourcesJar()
withJavadocJar()
}
Expand All @@ -21,12 +21,34 @@ dependencies {
implementation("org.apache.httpcomponents:httpclient:4.5.13")
implementation("org.apache.httpcomponents:httpmime:4.5.13")
implementation("com.fasterxml.jackson.core:jackson-databind:2.16.2")
implementation("commons-codec:commons-codec:1.10")
implementation("commons-io:commons-io:2.7")
implementation("commons-codec:commons-codec:1.19.0")
implementation("commons-io:commons-io:2.21.0")
implementation("com.sun.activation:javax.activation:1.2.0")

testImplementation("junit:junit:4.13.1")
testImplementation("org.mockito:mockito-all:1.10.19")
testImplementation(platform("org.junit:junit-bom:6.0.1"))
testImplementation("org.junit.jupiter:junit-jupiter")

// Ensure the launcher/engine are aligned at runtime
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")

testImplementation("org.hamcrest:hamcrest:2.2")
testImplementation("org.mockito:mockito-core:5.21.0")
testImplementation("org.mockito:mockito-junit-jupiter:5.21.0")
}

tasks {
withType<JavaCompile>().configureEach {
options.release.set(21)
}

withType<Test> {
useJUnitPlatform()
}

withType<Test>().configureEach {
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
}
}

// Setup global publishing repository settings.
Expand Down Expand Up @@ -88,8 +110,8 @@ publishing {
properties = mapOf(
"project.build.sourceEncoding" to "UTF-8",
"project.reporting.outputEncoding" to "UTF-8",
"maven.compiler.target" to "1.7",
"maven.compiler.source" to "1.7"
"maven.compiler.target" to "22",
"maven.compiler.source" to "21"
)
organization {
name.set("Uploadcare")
Expand Down
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ kotlin.parallel.tasks.in.project=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.daemon.idletimeout=3600000

org.gradle.jvmargs=--add-opens java.base/java.lang=ALL-UNNAMED
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
10 changes: 5 additions & 5 deletions src/test/java/com/uploadcare/api/FileTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class FileTest
class FileTest
{

@Test
public void enumFails() throws Exception {
void enumFails() throws Exception {
String json = "{ \"color_mode\": \"RGBa\"}";

// duplicate the way the mapper is configured in uploadcare
Expand All @@ -20,7 +20,7 @@ public void enumFails() throws Exception {

Bug bug = mapper.readValue(json, Bug.class);

Assert.assertTrue("Color mode was not properly converted!", File.ColorMode.RGBa.equals(bug.colorMode));
assertEquals(File.ColorMode.RGBa, bug.colorMode, "Color mode was not properly converted!");
}

static class Bug {
Expand Down
20 changes: 11 additions & 9 deletions src/test/java/com/uploadcare/api/RequestHelperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,44 @@

import com.uploadcare.urls.Urls;
import org.apache.http.client.methods.HttpGet;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.net.URI;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Calendar;
import java.util.GregorianCalendar;

import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class RequestHelperTest {
class RequestHelperTest {

private static final String FILE_ID = "27c7846b-a019-4516-a5e4-de635f822161";
private static final String FORMATTED_DATE = "Fri, 17 Nov 1989 00:00:00 +0000";
private RequestHelper requestHelper;

@Before
public void setUp() {
@BeforeEach
void setUp() {
Client client = Client.demoClient();
requestHelper = new RequestHelper(client);
}

@Test
public void test_rfc2822() {
void testRfc2822() {
Calendar calendar = new GregorianCalendar(RequestHelper.UTC);
calendar.set(1989, Calendar.NOVEMBER, 17, 0, 0, 0);

String formattedDate = RequestHelper.rfc2822(calendar.getTime());
assertEquals(formattedDate, formattedDate);

assertEquals(FORMATTED_DATE, formattedDate);
}

@Test
public void test_makeSignature() throws InvalidKeyException, NoSuchAlgorithmException {
void testMakeSignature() throws InvalidKeyException, NoSuchAlgorithmException {
URI url = Urls.apiFile(FILE_ID);
String signature = requestHelper.makeSignature(new HttpGet(url), FORMATTED_DATE, null);

assertEquals("535e263808dd38599343f04aab3c9f34bb15573c", signature);
}

Expand Down
24 changes: 7 additions & 17 deletions src/test/java/com/uploadcare/upload/FileUploaderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,23 @@
import com.uploadcare.urls.Urls;
import org.apache.commons.io.IOUtils;
import org.apache.http.client.methods.HttpUriRequest;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.mockito.InOrder;

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.*;

public class FileUploaderTest {
class FileUploaderTest {

public static final String FILE_ID = "unique_file_id";

@Test
public void test_upload() throws UploadFailureException, IOException {
void testUpload() throws UploadFailureException, IOException {
final RequestHelper requestHelper = mock(RequestHelper.class);

when(requestHelper.executeQuery(requestThat(Urls.uploadBase()), eq(false), eq(UploadBaseData.class)))
Expand All @@ -52,7 +50,7 @@ public RequestHelper get(Client client) {
}

@Test
public void test_upload_stream() throws UploadFailureException, IOException {
void testUploadStream() throws UploadFailureException, IOException {
final RequestHelper requestHelper = mock(RequestHelper.class);

when(requestHelper.executeQuery(requestThat(Urls.uploadBase()), eq(false), eq(UploadBaseData.class)))
Expand All @@ -76,15 +74,7 @@ public RequestHelper get(Client client) {
}

private HttpUriRequest requestThat(final URI uri) {
return argThat(new BaseMatcher<HttpUriRequest>() {
public boolean matches(Object o) {
HttpUriRequest request = (HttpUriRequest) o;
return request.getURI().equals(uri);
}

public void describeTo(Description description) {
}
});
return argThat((HttpUriRequest request) -> request != null && uri.equals(request.getURI()));
}

private UploadBaseData uploadBaseData() {
Expand Down
26 changes: 14 additions & 12 deletions src/test/java/com/uploadcare/urls/CdnPathBuilderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,38 @@

import com.uploadcare.api.File;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.awt.*;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class CdnPathBuilderTest {
class CdnPathBuilderTest {

private static final String FILE_ID = "27c7846b-a019-4516-a5e4-de635f822161";
private CdnPathBuilder builder;

@Before
public void setUp() {
@BeforeEach
void setUp() {
File file = mock(File.class);
when(file.getFileId()).thenReturn(FILE_ID);

builder = new CdnPathBuilder(file);
}

@Test
public void test_fileUrl() {
void testFileUrl() {
String path = builder.build();

assertEquals("/" + FILE_ID + "/", path);
}

@Test
public void test_allOperations() {
void testAllOperations() {
String path = builder
.crop(100, 110)
.cropColor(120, 130, Color.BLACK)
Expand Down Expand Up @@ -82,13 +83,14 @@ public void test_allOperations() {
}

@Test
public void test_detectFaces() {
void testDetectFaces() {
String path = builder.detectFaces().build();

assertEquals("/" + FILE_ID + "/detect_faces/", path);
}

@Test
public void test_dimensionGuard() {
void testDimensionGuard() {
builder.resizeWidth(1);
builder.resizeWidth(2048);
try {
Expand All @@ -104,7 +106,7 @@ public void test_dimensionGuard() {
}

@Test
public void test_dimensionsGuard() {
void testDimensionsGuard() {
builder.resize(1024, 634);
builder.resize(634, 1024);
try {
Expand Down
Loading