Skip to content

Commit d5fd21a

Browse files
committed
fix#582 : Test case
1 parent 1e92222 commit d5fd21a

File tree

3 files changed

+79
-1
lines changed

3 files changed

+79
-1
lines changed

bundles/sirix-core/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ dependencies {
4343
testImplementation testLibraries.commonsCollections4
4444
testImplementation testLibraries.commonsCollections4Tests
4545
testImplementation testLibraries.assertjCore
46+
testImplementation testLibraries.s3Mock
4647
}
4748

4849
description = 'SirixDB is a hybrid on-disk and in-memory document oriented, versioned database system. It has a ' +
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package org.sirix.io.cloud.amazon;
2+
import static org.junit.jupiter.api.Assertions.assertNotNull;
3+
import static org.junit.jupiter.api.Assertions.assertTrue;
4+
5+
import java.net.URI;
6+
7+
import org.junit.After;
8+
import org.junit.Before;
9+
import org.junit.Test;
10+
import org.sirix.XmlTestHelper;
11+
import org.sirix.XmlTestHelper.PATHS;
12+
import org.sirix.access.ResourceConfiguration;
13+
import org.sirix.api.Database;
14+
import org.sirix.api.xml.XmlResourceSession;
15+
import org.sirix.io.StorageType;
16+
17+
import io.findify.s3mock.S3Mock;
18+
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
19+
import software.amazon.awssdk.regions.Region;
20+
import software.amazon.awssdk.services.s3.S3Client;
21+
22+
public class AWSS3StorageTest {
23+
24+
private AmazonS3Storage awsStorage;
25+
private S3Client s3Client;
26+
private AmazonS3StorageWriter cloudWriter;
27+
private AmazonS3StorageReader cloudReader;
28+
29+
@Before
30+
public void setup() {
31+
final ResourceConfiguration.Builder resourceConfig = new ResourceConfiguration.Builder(XmlTestHelper.RESOURCE);
32+
resourceConfig.storageType(StorageType.CLOUD);
33+
Database<XmlResourceSession> xmlDatabase = XmlTestHelper.getDatabase(PATHS.PATH1.getFile());
34+
resourceConfig.awsStoreInfo(new ResourceConfiguration.AWSStorageInformation("default",
35+
Region.US_EAST_1.id(), xmlDatabase.getName(), true));
36+
ResourceConfiguration testResources = resourceConfig.build();
37+
S3Mock api = S3Mock.create(8001, ".");
38+
api.start();
39+
s3Client = S3Client.builder().region(Region.of(testResources.awsStoreInfo.getAwsRegion()))
40+
.credentialsProvider(AnonymousCredentialsProvider.create())
41+
.dualstackEnabled(true)
42+
.endpointOverride(URI.create("http://127.0.0.1:8001"))
43+
.build();
44+
testResources.resourcePath = PATHS.PATH1.getFile();
45+
46+
awsStorage = (AmazonS3Storage)StorageType.CLOUD.getInstance(testResources);
47+
awsStorage.setS3Client(s3Client);
48+
cloudWriter = (AmazonS3StorageWriter)awsStorage.createWriter();
49+
cloudReader = (AmazonS3StorageReader)awsStorage.createReader();
50+
}
51+
52+
@Test
53+
public void testS3StorageWriterNotNull() {
54+
assertNotNull(cloudWriter);
55+
}
56+
57+
@Test
58+
public void testS3StorageReaderNotNull() {
59+
assertNotNull(cloudReader);
60+
}
61+
62+
@Test
63+
public void testCreateBucket() {
64+
awsStorage.createBucket();
65+
assertTrue(awsStorage.isBucketExists());
66+
}
67+
68+
69+
@After
70+
public void tearDown() {
71+
XmlTestHelper.deleteEverything();
72+
s3Client.close();
73+
}
74+
75+
76+
}

libraries.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,6 @@ testLibraries = [
6767
kotestAssertions : 'io.kotest:kotest-assertions-core-jvm:4.0.5',
6868
commonsCollections4 : 'org.apache.commons:commons-collections4:4.3',
6969
commonsCollections4Tests : 'org.apache.commons:commons-collections4:4.3:tests',
70-
assertjCore : 'org.assertj:assertj-core:3.23.1'
70+
assertjCore : 'org.assertj:assertj-core:3.23.1',
71+
s3Mock : 'io.findify:s3mock_2.13:0.2.6'
7172
]

0 commit comments

Comments
 (0)