From 9b5a5e38bc78324ce8e84702ca801db6c9a40816 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Tue, 30 May 2017 11:08:28 -0400 Subject: [PATCH] Fix KinesisMessageDrivenChannelAdapterTests * Upgrade to Gradle 3.5 * Make S3 test Java 8 based --- gradle/wrapper/gradle-wrapper.jar | Bin 54212 -> 54783 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- ...nesisMessageDrivenChannelAdapterTests.java | 5 +- .../inbound/S3InboundChannelAdapterTests.java | 42 ++++++----------- .../S3StreamingChannelAdapterTests.java | 43 +++++++----------- 5 files changed, 35 insertions(+), 59 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 85387c64b84a717dea399e727446db997797a23c..cd66b8725e040648c23ca9597fa033d4ae7018eb 100644 GIT binary patch delta 6729 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 delta 6082 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b49402e..8b9defb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Mar 09 15:00:04 EST 2017 +#Tue May 30 10:53:11 EDT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip diff --git a/src/test/java/org/springframework/integration/aws/inbound/KinesisMessageDrivenChannelAdapterTests.java b/src/test/java/org/springframework/integration/aws/inbound/KinesisMessageDrivenChannelAdapterTests.java index 3fc242d..26ba70f 100644 --- a/src/test/java/org/springframework/integration/aws/inbound/KinesisMessageDrivenChannelAdapterTests.java +++ b/src/test/java/org/springframework/integration/aws/inbound/KinesisMessageDrivenChannelAdapterTests.java @@ -19,8 +19,8 @@ package org.springframework.integration.aws.inbound; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.any; +import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import java.nio.ByteBuffer; @@ -71,6 +71,7 @@ import com.amazonaws.services.kinesis.model.StreamStatus; /** * @author Artem Bilan + * * @since 1.1 */ @RunWith(SpringRunner.class) @@ -204,7 +205,7 @@ public class KinesisMessageDrivenChannelAdapterTests { assertThat(n).isLessThan(100); // When resharding happens the describeStream() is performed again - verify(this.amazonKinesisForResharding, times(2)).describeStream(any(DescribeStreamRequest.class)); + verify(this.amazonKinesisForResharding, atLeast(2)).describeStream(any(DescribeStreamRequest.class)); } @Configuration diff --git a/src/test/java/org/springframework/integration/aws/inbound/S3InboundChannelAdapterTests.java b/src/test/java/org/springframework/integration/aws/inbound/S3InboundChannelAdapterTests.java index 670996f..886faf9 100644 --- a/src/test/java/org/springframework/integration/aws/inbound/S3InboundChannelAdapterTests.java +++ b/src/test/java/org/springframework/integration/aws/inbound/S3InboundChannelAdapterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,8 +34,6 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -151,35 +149,23 @@ public class S3InboundChannelAdapterTests { public AmazonS3 amazonS3() { AmazonS3 amazonS3 = Mockito.mock(AmazonS3.class); - willAnswer(new Answer() { - - @Override - public ObjectListing answer(InvocationOnMock invocation) throws Throwable { - ObjectListing objectListing = new ObjectListing(); - List objectSummaries = objectListing.getObjectSummaries(); - for (S3Object s3Object : S3_OBJECTS) { - S3ObjectSummary s3ObjectSummary = new S3ObjectSummary(); - s3ObjectSummary.setBucketName(S3_BUCKET); - s3ObjectSummary.setKey(s3Object.getKey()); - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, 1); - s3ObjectSummary.setLastModified(calendar.getTime()); - objectSummaries.add(s3ObjectSummary); - } - return objectListing; + willAnswer(invocation -> { + ObjectListing objectListing = new ObjectListing(); + List objectSummaries = objectListing.getObjectSummaries(); + for (S3Object s3Object : S3_OBJECTS) { + S3ObjectSummary s3ObjectSummary = new S3ObjectSummary(); + s3ObjectSummary.setBucketName(S3_BUCKET); + s3ObjectSummary.setKey(s3Object.getKey()); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, 1); + s3ObjectSummary.setLastModified(calendar.getTime()); + objectSummaries.add(s3ObjectSummary); } - + return objectListing; }).given(amazonS3).listObjects(any(ListObjectsRequest.class)); for (final S3Object s3Object : S3_OBJECTS) { - willAnswer(new Answer() { - - @Override - public S3Object answer(InvocationOnMock invocation) throws Throwable { - return s3Object; - } - - }).given(amazonS3).getObject(S3_BUCKET, s3Object.getKey()); + willAnswer(invocation -> s3Object).given(amazonS3).getObject(S3_BUCKET, s3Object.getKey()); } return amazonS3; diff --git a/src/test/java/org/springframework/integration/aws/inbound/S3StreamingChannelAdapterTests.java b/src/test/java/org/springframework/integration/aws/inbound/S3StreamingChannelAdapterTests.java index 79aec76..5c29a69 100644 --- a/src/test/java/org/springframework/integration/aws/inbound/S3StreamingChannelAdapterTests.java +++ b/src/test/java/org/springframework/integration/aws/inbound/S3StreamingChannelAdapterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.Comparator; import java.util.Date; import java.util.List; @@ -35,8 +36,6 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -49,6 +48,7 @@ import org.springframework.integration.aws.support.filters.S3PersistentAcceptOnc import org.springframework.integration.channel.QueueChannel; import org.springframework.integration.config.EnableIntegration; import org.springframework.integration.file.FileHeaders; +import org.springframework.integration.file.remote.FileInfo; import org.springframework.integration.metadata.SimpleMetadataStore; import org.springframework.messaging.Message; import org.springframework.messaging.PollableChannel; @@ -66,6 +66,7 @@ import com.amazonaws.services.s3.model.S3ObjectSummary; /** * @author Christian Tzolov * @author Artem Bilan + * * @since 1.1 */ @RunWith(SpringJUnit4ClassRunner.class) @@ -133,34 +134,22 @@ public class S3StreamingChannelAdapterTests { public AmazonS3 amazonS3() { AmazonS3 amazonS3 = Mockito.mock(AmazonS3.class); - willAnswer(new Answer() { + willAnswer(invocation -> { + ObjectListing objectListing = new ObjectListing(); + List objectSummaries = objectListing.getObjectSummaries(); + for (S3Object s3Object : S3_OBJECTS) { + S3ObjectSummary s3ObjectSummary = new S3ObjectSummary(); + s3ObjectSummary.setBucketName(S3_BUCKET); + s3ObjectSummary.setKey(s3Object.getKey()); - @Override - public ObjectListing answer(InvocationOnMock invocation) throws Throwable { - ObjectListing objectListing = new ObjectListing(); - List objectSummaries = objectListing.getObjectSummaries(); - for (S3Object s3Object : S3_OBJECTS) { - S3ObjectSummary s3ObjectSummary = new S3ObjectSummary(); - s3ObjectSummary.setBucketName(S3_BUCKET); - s3ObjectSummary.setKey(s3Object.getKey()); - - s3ObjectSummary.setLastModified(new Date(new File(s3Object.getKey()).lastModified())); - objectSummaries.add(s3ObjectSummary); - } - return objectListing; + s3ObjectSummary.setLastModified(new Date(new File(s3Object.getKey()).lastModified())); + objectSummaries.add(s3ObjectSummary); } - + return objectListing; }).given(amazonS3).listObjects(any(ListObjectsRequest.class)); for (final S3Object s3Object : S3_OBJECTS) { - willAnswer(new Answer() { - - @Override - public S3Object answer(InvocationOnMock invocation) throws Throwable { - return s3Object; - } - - }).given(amazonS3).getObject(S3_BUCKET, s3Object.getKey()); + willAnswer(invocation -> s3Object).given(amazonS3).getObject(S3_BUCKET, s3Object.getKey()); } return amazonS3; @@ -173,7 +162,7 @@ public class S3StreamingChannelAdapterTests { S3SessionFactory s3SessionFactory = new S3SessionFactory(amazonS3); S3RemoteFileTemplate s3FileTemplate = new S3RemoteFileTemplate(s3SessionFactory); S3StreamingMessageSource s3MessageSource = new S3StreamingMessageSource(s3FileTemplate, - (o1, o2) -> o1.getFilename().compareTo(o2.getFilename())); + Comparator.comparing(FileInfo::getFilename)); s3MessageSource.setRemoteDirectory(S3_BUCKET); s3MessageSource.setFilter(new S3PersistentAcceptOnceFileListFilter(new SimpleMetadataStore(), "streaming"));