diff --git a/src/main/java/gov/cabinetoffice/gap/applybackend/service/ZipService.java b/src/main/java/gov/cabinetoffice/gap/applybackend/service/ZipService.java index dc78042..8e26ed9 100644 --- a/src/main/java/gov/cabinetoffice/gap/applybackend/service/ZipService.java +++ b/src/main/java/gov/cabinetoffice/gap/applybackend/service/ZipService.java @@ -3,6 +3,7 @@ import com.amazonaws.AmazonServiceException; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.*; +import gov.cabinetoffice.gap.applybackend.config.properties.S3ConfigProperties; import gov.cabinetoffice.gap.applybackend.model.Submission; import gov.cabinetoffice.gap.applybackend.config.S3Config; import gov.cabinetoffice.gap.applybackend.utils.ZipHelper; @@ -25,8 +26,7 @@ @Service public class ZipService { - @Value("${aws.bucket}") - private String s3Bucket; + private final S3ConfigProperties s3Properties; private static final Logger logger = LoggerFactory.getLogger(ZipService.class); @@ -67,7 +67,7 @@ public ByteArrayOutputStream createSubmissionZip(final Submission submission, fi public List getSubmissionAttachmentFileNames(final String applicationId, final String submissionId) { - final ListObjectsV2Request req = new ListObjectsV2Request().withBucketName(s3Bucket) + final ListObjectsV2Request req = new ListObjectsV2Request().withBucketName(s3Properties.getBucket()) .withPrefix(applicationId + "/" + submissionId); final ListObjectsV2Result listing = client.listObjectsV2(req); final List objectSummaries = listing.getObjectSummaries(); @@ -93,9 +93,9 @@ private List getAllFromPrefix(final List objec private void downloadFile(final String fileName, List list) { try { - list.add(client.getObject(new GetObjectRequest(s3Bucket, fileName))); + list.add(client.getObject(new GetObjectRequest(s3Properties.getBucket(), fileName))); } catch (AmazonServiceException e) { - logger.error("Could not download file: " + fileName + " from bucket: " + s3Bucket, + logger.error("Could not download file: " + fileName + " from bucket: " + s3Properties.getBucket(), e); throw e; } diff --git a/src/test/java/gov/cabinetoffice/gap/applybackend/service/ZipServiceTest.java b/src/test/java/gov/cabinetoffice/gap/applybackend/service/ZipServiceTest.java index d942a1b..1e37460 100644 --- a/src/test/java/gov/cabinetoffice/gap/applybackend/service/ZipServiceTest.java +++ b/src/test/java/gov/cabinetoffice/gap/applybackend/service/ZipServiceTest.java @@ -2,10 +2,12 @@ import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.*; +import gov.cabinetoffice.gap.applybackend.config.properties.S3ConfigProperties; import gov.cabinetoffice.gap.applybackend.model.*; import org.junit.jupiter.api.*; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.odftoolkit.odfdom.doc.OdfTextDocument; @@ -26,9 +28,12 @@ public class ZipServiceTest { @InjectMocks private ZipService serviceUnderTest; + @Mock + private S3ConfigProperties mockS3ConfigProperties; + @BeforeEach void beforeEach() { - ReflectionTestUtils.setField(serviceUnderTest, "s3Bucket", "mockedValue"); + Mockito.lenient().when(mockS3ConfigProperties.getBucket()).thenReturn("mockedValue"); AmazonS3 s3Client = mock(AmazonS3.class); S3Object s3Obj = mock(S3Object.class); Mockito.lenient().when(s3Obj.getKey()).thenReturn("mockKey");