diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..e1d1cc7 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/README.md b/README.md index 154282b..b1d14ec 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ You can download release builds through the [releases section of this](https://g software.amazon.payloadoffloading payloadoffloading-common - 2.1.2 + 2.1.3 ``` diff --git a/pom.xml b/pom.xml index 472a930..32c0985 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ software.amazon.payloadoffloading payloadoffloading-common - 2.1.2 + 2.1.3 jar Payload offloading common library for AWS Common library between extended Amazon AWS clients to save payloads up to 2GB on Amazon S3. @@ -36,7 +36,7 @@ - 2.16.73 + 2.20.30 @@ -50,29 +50,27 @@ utils ${aws-java-sdk.version} - - junit - junit - 4.13.1 - test + com.fasterxml.jackson.core + jackson-core + 2.14.2 - org.mockito - mockito-core - 3.3.3 - test + com.fasterxml.jackson.core + jackson-databind + 2.14.2 + - org.hamcrest - hamcrest-all - 1.3 + org.junit.jupiter + junit-jupiter + 5.9.2 test - pl.pragmatists - JUnitParams - 1.1.1 + org.mockito + mockito-core + 5.2.0 test @@ -83,7 +81,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.11.0 1.8 1.8 @@ -106,10 +104,15 @@ + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0 + org.apache.maven.plugins maven-javadoc-plugin - 2.9.1 + 3.5.0 attach-javadocs @@ -117,12 +120,8 @@ jar - 8 - -Xdoclint:none + none @@ -130,7 +129,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.7 + 1.6.13 true ossrh diff --git a/src/test/java/software/amazon/payloadoffloading/AwsManagedCmkTest.java b/src/test/java/software/amazon/payloadoffloading/AwsManagedCmkTest.java index 4bb95c5..723678d 100644 --- a/src/test/java/software/amazon/payloadoffloading/AwsManagedCmkTest.java +++ b/src/test/java/software/amazon/payloadoffloading/AwsManagedCmkTest.java @@ -1,10 +1,11 @@ package software.amazon.payloadoffloading; -import org.junit.Test; +import org.junit.jupiter.api.Test; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; + public class AwsManagedCmkTest { diff --git a/src/test/java/software/amazon/payloadoffloading/CustomerKeyTest.java b/src/test/java/software/amazon/payloadoffloading/CustomerKeyTest.java index 3da7090..cc55b70 100644 --- a/src/test/java/software/amazon/payloadoffloading/CustomerKeyTest.java +++ b/src/test/java/software/amazon/payloadoffloading/CustomerKeyTest.java @@ -1,10 +1,10 @@ package software.amazon.payloadoffloading; -import org.junit.Test; +import org.junit.jupiter.api.Test; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class CustomerKeyTest { diff --git a/src/test/java/software/amazon/payloadoffloading/PayloadStorageConfigurationTest.java b/src/test/java/software/amazon/payloadoffloading/PayloadStorageConfigurationTest.java index e9b473a..f4adf77 100644 --- a/src/test/java/software/amazon/payloadoffloading/PayloadStorageConfigurationTest.java +++ b/src/test/java/software/amazon/payloadoffloading/PayloadStorageConfigurationTest.java @@ -1,11 +1,16 @@ package software.amazon.payloadoffloading; -import org.junit.Test; +import org.junit.jupiter.api.Test; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.ObjectCannedACL; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; -import static org.junit.Assert.*; /** * Tests the PayloadStorageConfiguration class. diff --git a/src/test/java/software/amazon/payloadoffloading/S3BackedPayloadStoreTest.java b/src/test/java/software/amazon/payloadoffloading/S3BackedPayloadStoreTest.java index 18b3902..b40df6f 100644 --- a/src/test/java/software/amazon/payloadoffloading/S3BackedPayloadStoreTest.java +++ b/src/test/java/software/amazon/payloadoffloading/S3BackedPayloadStoreTest.java @@ -1,22 +1,24 @@ package software.amazon.payloadoffloading; -import junitparams.JUnitParamsRunner; -import org.hamcrest.Matchers; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.exception.SdkException; import software.amazon.awssdk.services.s3.model.ObjectCannedACL; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; -@RunWith(JUnitParamsRunner.class) public class S3BackedPayloadStoreTest { private static final String S3_BUCKET_NAME = "test-bucket-name"; private static final String ANY_PAYLOAD = "AnyPayload"; @@ -25,10 +27,7 @@ public class S3BackedPayloadStoreTest { private PayloadStore payloadStore; private S3Dao s3Dao; - @Rule - public final ExpectedException exception = ExpectedException.none(); - - @Before + @BeforeEach public void setup() { s3Dao = mock(S3Dao.class); payloadStore = new S3BackedPayloadStore(s3Dao, S3_BUCKET_NAME); @@ -84,8 +83,8 @@ public void testStoreOriginalPayloadDoesAlwaysCreateNewObjects() { PayloadS3Pointer anyOtherExpectedPayloadPointer = new PayloadS3Pointer(S3_BUCKET_NAME, anyOtherS3Key); assertEquals(anyOtherExpectedPayloadPointer.toJson(), anyOtherActualPayloadPointer); - assertThat(anyS3Key, Matchers.not(anyOtherS3Key)); - assertThat(anyActualPayloadPointer, Matchers.not(anyOtherActualPayloadPointer)); + assertNotEquals(anyS3Key, anyOtherS3Key); + assertNotEquals(anyActualPayloadPointer, anyOtherActualPayloadPointer); } @Test @@ -97,10 +96,8 @@ public void testStoreOriginalPayloadOnS3Failure() { any(String.class), any(String.class)); - exception.expect(SdkException.class); - exception.expectMessage("S3 Exception"); //Any S3 Dao exception is thrown back as-is to clients - payloadStore.storeOriginalPayload(ANY_PAYLOAD); + assertThrows(SdkException.class, () -> payloadStore.storeOriginalPayload(ANY_PAYLOAD), "S3 Exception"); } @Test @@ -120,21 +117,21 @@ public void testGetOriginalPayloadOnSuccess() { @Test public void testGetOriginalPayloadIncorrectPointer() { - exception.expect(SdkClientException.class); - exception.expectMessage(INCORRECT_POINTER_EXCEPTION_MSG); //Any S3 Dao exception is thrown back as-is to clients - payloadStore.getOriginalPayload("IncorrectPointer"); + assertThrows(SdkClientException.class, () -> payloadStore.getOriginalPayload("IncorrectPointer"), + INCORRECT_POINTER_EXCEPTION_MSG); verifyNoInteractions(s3Dao); } @Test public void testGetOriginalPayloadOnS3Failure() { - when(s3Dao.getTextFromS3(any(String.class), any(String.class))).thenThrow(SdkException.create("S3 Exception", new Throwable())); - exception.expect(SdkException.class); - exception.expectMessage("S3 Exception"); - //Any S3 Dao exception is thrown back as-is to clients + when(s3Dao.getTextFromS3(any(String.class), any(String.class))) + .thenThrow(SdkException.create("S3 Exception", new Throwable())); + PayloadS3Pointer anyPointer = new PayloadS3Pointer(S3_BUCKET_NAME, ANY_S3_KEY); - payloadStore.getOriginalPayload(anyPointer.toJson()); + //Any S3 Dao exception is thrown back as-is to clients + assertThrows(SdkException.class, () -> payloadStore.getOriginalPayload(anyPointer.toJson()), + "S3 Exception"); } @Test @@ -152,9 +149,8 @@ public void testDeleteOriginalPayloadOnSuccess() { @Test public void testDeleteOriginalPayloadIncorrectPointer() { - exception.expect(SdkClientException.class); - exception.expectMessage(INCORRECT_POINTER_EXCEPTION_MSG); - payloadStore.deleteOriginalPayload("IncorrectPointer"); + assertThrows(SdkClientException.class, () -> payloadStore.deleteOriginalPayload("IncorrectPointer"), + INCORRECT_POINTER_EXCEPTION_MSG); verifyNoInteractions(s3Dao); } } \ No newline at end of file diff --git a/src/test/java/software/amazon/payloadoffloading/S3DaoTest.java b/src/test/java/software/amazon/payloadoffloading/S3DaoTest.java index 22274d5..b0a8f25 100644 --- a/src/test/java/software/amazon/payloadoffloading/S3DaoTest.java +++ b/src/test/java/software/amazon/payloadoffloading/S3DaoTest.java @@ -3,34 +3,33 @@ import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.ObjectCannedACL; -import junitparams.JUnitParamsRunner; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.mockito.ArgumentCaptor; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -@RunWith(JUnitParamsRunner.class) public class S3DaoTest { - private static String s3ServerSideEncryptionKMSKeyId = "test-customer-managed-kms-key-id"; + private static final String s3ServerSideEncryptionKMSKeyId = "test-customer-managed-kms-key-id"; private static final String S3_BUCKET_NAME = "test-bucket-name"; private static final String ANY_PAYLOAD = "AnyPayload"; private static final String ANY_S3_KEY = "AnyS3key"; - private ServerSideEncryptionStrategy serverSideEncryptionStrategy = ServerSideEncryptionFactory.awsManagedCmk(); - private ObjectCannedACL objectCannedACL = ObjectCannedACL.PUBLIC_READ; + private final ServerSideEncryptionStrategy serverSideEncryptionStrategy = ServerSideEncryptionFactory.awsManagedCmk(); + private final ObjectCannedACL objectCannedACL = ObjectCannedACL.PUBLIC_READ; private S3Client s3Client; private S3Dao dao; - @Before + @BeforeEach public void setup() { s3Client = mock(S3Client.class); }