package com.aol.micro.server.s3; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.io.File; import java.io.IOException; import java.nio.file.Files; import org.junit.Assert; import org.junit.Test; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.s3.transfer.Download; import com.amazonaws.services.s3.transfer.TransferManager; import com.aol.micro.server.s3.data.ReadUtils; public class ReadUtilsTest { @Test public void getInputStreamSupplier() throws AmazonServiceException, AmazonClientException, InterruptedException, IOException { TransferManager transferManager = mock(TransferManager.class); Download download = mock(Download.class); when(transferManager.download(anyString(), anyString(), any())).thenReturn(download); File file = Files.createTempFile("micro-s3", "test") .toFile(); Assert.assertTrue(file.exists()); ReadUtils utils = new ReadUtils( transferManager, "test"); utils.getInputStream("", "", () -> file); Assert.assertFalse(file.exists()); } @Test public void getInputStreamDefaultSupplier() throws AmazonServiceException, AmazonClientException, InterruptedException, IOException { TransferManager transferManager = mock(TransferManager.class); Download download = mock(Download.class); when(transferManager.download(anyString(), anyString(), any())).thenReturn(download); ReadUtils utils = new ReadUtils( transferManager, System.getProperty("java.io.tmpdir")); utils.getInputStream("", ""); verify(download).waitForCompletion(); } }