Search in sources :

Example 1 with S3NFileObject

use of org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject in project hop by apache.

the class S3NFileObjectTest method testDoCreateFolder.

@Test
public void testDoCreateFolder() throws Exception {
    S3NFileObject notRootBucket = spy(new S3NFileObject(new S3NFileName(SCHEME, BUCKET_NAME, "/" + BUCKET_NAME + "/" + origKey, FileType.IMAGINARY), fileSystemSpy));
    notRootBucket.createFolder();
    ArgumentCaptor<PutObjectRequest> putObjectRequestArgumentCaptor = ArgumentCaptor.forClass(PutObjectRequest.class);
    verify(s3ServiceMock).putObject(putObjectRequestArgumentCaptor.capture());
    assertEquals(BUCKET_NAME, putObjectRequestArgumentCaptor.getValue().getBucketName());
    assertEquals("some/key/", putObjectRequestArgumentCaptor.getValue().getKey());
}
Also used : S3NFileObject(org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject) S3NFileName(org.apache.hop.vfs.s3.s3n.vfs.S3NFileName) Test(org.junit.Test)

Example 2 with S3NFileObject

use of org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject in project hop by apache.

the class S3NFileObjectTest method testDoRename.

@Test
public void testDoRename() throws Exception {
    String someNewBucketName = "someNewBucketName";
    String someNewKey = "some/newKey";
    S3NFileName newFileName = new S3NFileName(SCHEME, someNewBucketName, "/" + someNewBucketName + "/" + someNewKey, FileType.FILE);
    S3NFileObject newFile = new S3NFileObject(newFileName, fileSystemSpy);
    ArgumentCaptor<CopyObjectRequest> copyObjectRequestArgumentCaptor = ArgumentCaptor.forClass(CopyObjectRequest.class);
    when(s3ServiceMock.doesBucketExistV2(someNewBucketName)).thenReturn(true);
    s3FileObjectFileSpy.moveTo(newFile);
    verify(s3ServiceMock).copyObject(copyObjectRequestArgumentCaptor.capture());
    assertEquals(someNewBucketName, copyObjectRequestArgumentCaptor.getValue().getDestinationBucketName());
    assertEquals(someNewKey, copyObjectRequestArgumentCaptor.getValue().getDestinationKey());
    assertEquals(BUCKET_NAME, copyObjectRequestArgumentCaptor.getValue().getSourceBucketName());
    assertEquals(origKey, copyObjectRequestArgumentCaptor.getValue().getSourceKey());
}
Also used : S3NFileName(org.apache.hop.vfs.s3.s3n.vfs.S3NFileName) S3NFileObject(org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject) Test(org.junit.Test)

Example 3 with S3NFileObject

use of org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject in project hop by apache.

the class S3NFileObjectTest method setUp.

@Before
public void setUp() throws Exception {
    s3ServiceMock = mock(AmazonS3.class);
    S3Object s3Object = new S3Object();
    s3Object.setKey(OBJECT_NAME);
    s3Object.setBucketName(BUCKET_NAME);
    filename = new S3NFileName(SCHEME, BUCKET_NAME, "/" + BUCKET_NAME, FileType.FOLDER);
    S3NFileName rootFileName = new S3NFileName(SCHEME, BUCKET_NAME, "", FileType.FOLDER);
    S3NFileSystem fileSystem = new S3NFileSystem(rootFileName, new FileSystemOptions());
    fileSystemSpy = spy(fileSystem);
    VfsComponentContext context = mock(VfsComponentContext.class);
    final DefaultFileSystemManager fsm = new DefaultFileSystemManager();
    FilesCache cache = mock(FilesCache.class);
    fsm.setFilesCache(cache);
    fsm.setCacheStrategy(CacheStrategy.ON_RESOLVE);
    when(context.getFileSystemManager()).thenReturn(fsm);
    fileSystemSpy.setContext(context);
    S3NFileObject s3FileObject = new S3NFileObject(filename, fileSystemSpy);
    s3FileObjectBucketSpy = spy(s3FileObject);
    s3FileObjectFileSpy = spy(new S3NFileObject(new S3NFileName(SCHEME, BUCKET_NAME, "/" + BUCKET_NAME + "/" + origKey, FileType.IMAGINARY), fileSystemSpy));
    S3NFileObject s3FileObjectRoot = new S3NFileObject(rootFileName, fileSystemSpy);
    s3FileObjectSpyRoot = spy(s3FileObjectRoot);
    // specify the behaviour of S3 Service
    // when( s3ServiceMock.getBucket( BUCKET_NAME ) ).thenReturn( testBucket );
    when(s3ServiceMock.getObject(BUCKET_NAME, OBJECT_NAME)).thenReturn(s3Object);
    when(s3ServiceMock.getObject(BUCKET_NAME, OBJECT_NAME)).thenReturn(s3Object);
    when(s3ServiceMock.listBuckets()).thenReturn(createBuckets());
    when(s3ServiceMock.doesBucketExistV2(BUCKET_NAME)).thenReturn(true);
    childObjectListing = mock(ObjectListing.class);
    when(childObjectListing.getObjectSummaries()).thenReturn(createObjectSummaries(0)).thenReturn(new ArrayList<>());
    when(childObjectListing.getCommonPrefixes()).thenReturn(new ArrayList<>()).thenReturn(createCommonPrefixes(3));
    when(childObjectListing.isTruncated()).thenReturn(true).thenReturn(false);
    when(s3ServiceMock.listObjects(any(ListObjectsRequest.class))).thenReturn(childObjectListing);
    when(s3ServiceMock.listObjects(anyString(), anyString())).thenReturn(childObjectListing);
    when(s3ServiceMock.listNextBatchOfObjects(any(ObjectListing.class))).thenReturn(childObjectListing);
    s3ObjectMock = mock(S3Object.class);
    s3ObjectInputStream = mock(S3ObjectInputStream.class);
    s3ObjectMetadata = mock(ObjectMetadata.class);
    when(s3ObjectMock.getObjectContent()).thenReturn(s3ObjectInputStream);
    when(s3ServiceMock.getObjectMetadata(anyString(), anyString())).thenReturn(s3ObjectMetadata);
    when(s3ObjectMetadata.getContentLength()).thenReturn(contentLength);
    when(s3ObjectMetadata.getLastModified()).thenReturn(testDate);
    when(s3ServiceMock.getObject(anyString(), anyString())).thenReturn(s3ObjectMock);
    when(fileSystemSpy.getS3Client()).thenReturn(s3ServiceMock);
}
Also used : AmazonS3(com.amazonaws.services.s3.AmazonS3) S3NFileObject(org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject) ArrayList(java.util.ArrayList) S3NFileSystem(org.apache.hop.vfs.s3.s3n.vfs.S3NFileSystem) S3NFileName(org.apache.hop.vfs.s3.s3n.vfs.S3NFileName) VfsComponentContext(org.apache.commons.vfs2.provider.VfsComponentContext) DefaultFileSystemManager(org.apache.commons.vfs2.impl.DefaultFileSystemManager) Before(org.junit.Before)

Example 4 with S3NFileObject

use of org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject in project hop by apache.

the class S3NFileObjectTest method testGetS3Object.

@Test
public void testGetS3Object() throws Exception {
    when(s3ServiceMock.getObject(anyString(), anyString())).thenReturn(new S3Object());
    S3NFileObject s3FileObject = new S3NFileObject(filename, fileSystemSpy);
    S3Object s3Object = s3FileObject.getS3Object();
    assertNotNull(s3Object);
}
Also used : S3NFileObject(org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject) Test(org.junit.Test)

Aggregations

S3NFileObject (org.apache.hop.vfs.s3.s3n.vfs.S3NFileObject)4 S3NFileName (org.apache.hop.vfs.s3.s3n.vfs.S3NFileName)3 Test (org.junit.Test)3 AmazonS3 (com.amazonaws.services.s3.AmazonS3)1 ArrayList (java.util.ArrayList)1 DefaultFileSystemManager (org.apache.commons.vfs2.impl.DefaultFileSystemManager)1 VfsComponentContext (org.apache.commons.vfs2.provider.VfsComponentContext)1 S3NFileSystem (org.apache.hop.vfs.s3.s3n.vfs.S3NFileSystem)1 Before (org.junit.Before)1