Skip to content

Commit

Permalink
Merge pull request #186 from mslowiak/issues/60
Browse files Browse the repository at this point in the history
issue-60: Set up testcontainers (part 1)
  • Loading branch information
steve-todorov authored Jan 31, 2021
2 parents 9af7416 + 05c2ef0 commit 891edc8
Show file tree
Hide file tree
Showing 21 changed files with 168 additions and 39 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
PR_HEAD_LABEL: ${{ toJSON(github.event.pull_request.head.label) }}
# format: boolean
# check https://github.com/carlspring/s3fs-nio/pull/77#issuecomment-686804207
IS_EXTERNAL_PR: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository }}
IS_EXTERNAL_PR: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository }}
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down Expand Up @@ -124,6 +124,8 @@ jobs:
run: docker save minio/minio testcontainers/ryuk > ${{ github.workspace }}/docker-image-cache.tar

run-it-s3:
# Do not run for forks since secrets will be missing and this will fail.
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository }}
needs: [run-it-minio]
runs-on: ${{ matrix.os }}
strategy:
Expand Down
9 changes: 9 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
<version.mockito>3.7.7</version.mockito>
<version.marschall.memoryfilesystem>2.1.0</version.marschall.memoryfilesystem>
<version.surefire>3.0.0-M5</version.surefire>
<version.testcontainers>1.15.1</version.testcontainers>
</properties>

<build>
Expand Down Expand Up @@ -266,6 +267,14 @@
<scope>test</scope>
</dependency>


<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>${version.testcontainers}</version>
<scope>test</scope>
</dependency>

<!-- needs extra dependencies: objenesis & hamcrest -->
<dependency>
<groupId>org.mockito</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.carlspring.cloud.storage.s3fs;

import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.EnvironmentBuilder;

import java.io.IOException;
Expand All @@ -16,7 +17,7 @@
import static org.junit.jupiter.api.Assertions.assertSame;

@S3IntegrationTest
class FileSystemsIT
class FileSystemsIT extends BaseIntegrationTest
{

private static final URI uriEurope = URI.create("s3://s3-eu-west-1.amazonaws.com/");
Expand Down
3 changes: 2 additions & 1 deletion src/test/java/org/carlspring/cloud/storage/s3fs/FilesIT.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.carlspring.cloud.storage.s3fs;

import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.CopyDirVisitor;
import org.carlspring.cloud.storage.s3fs.util.EnvironmentBuilder;

Expand All @@ -27,7 +28,7 @@
import static org.junit.jupiter.api.Assertions.*;

@S3IntegrationTest
class FilesIT
class FilesIT extends BaseIntegrationTest
{

private static final String bucket = EnvironmentBuilder.getBucket();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.carlspring.cloud.storage.s3fs;

import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.EnvironmentBuilder;

import java.io.ByteArrayInputStream;
Expand Down Expand Up @@ -30,7 +31,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;

@S3IntegrationTest
class S3ClientIT
class S3ClientIT extends BaseIntegrationTest
{

S3Client client;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.carlspring.cloud.storage.s3fs.attribute.S3BasicFileAttributes;
import org.carlspring.cloud.storage.s3fs.attribute.S3PosixFileAttributes;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.CopyDirVisitor;
import org.carlspring.cloud.storage.s3fs.util.EnvironmentBuilder;
import org.carlspring.cloud.storage.s3fs.util.S3Utils;
Expand Down Expand Up @@ -35,7 +36,7 @@
import static org.junit.jupiter.api.Assertions.assertTrue;

@S3IntegrationTest
class S3UtilsIT
class S3UtilsIT extends BaseIntegrationTest
{

private static final String bucket = EnvironmentBuilder.getBucket();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.carlspring.cloud.storage.s3fs.S3FileSystemProvider;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import java.io.IOException;
import java.nio.file.FileSystem;
Expand All @@ -25,7 +26,7 @@
import static org.mockito.Mockito.spy;

@S3IntegrationTest
class GetFileSystemIT
class GetFileSystemIT extends BaseIntegrationTest
{

private S3FileSystemProvider provider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.carlspring.cloud.storage.s3fs.S3FileSystemProvider;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import java.io.IOException;
import java.net.URI;
Expand Down Expand Up @@ -29,7 +30,7 @@
import static org.mockito.Mockito.verify;

@S3IntegrationTest
class NewFileSystemIT
class NewFileSystemIT extends BaseIntegrationTest
{

private S3FileSystemProvider provider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.carlspring.cloud.storage.s3fs.junit.annotations.MinioIntegrationTest;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
Expand All @@ -13,7 +14,7 @@
*/
@MinioIntegrationTest
@S3IntegrationTest
public class CombinedIT
public class CombinedIT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(S3MethodAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.carlspring.cloud.storage.s3fs.junit.annotations.MinioIntegrationTest;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
Expand All @@ -12,7 +13,7 @@
* Class level {@link MinioIntegrationTest} annotation and method level {@link S3IntegrationTest} annotation.
*/
@MinioIntegrationTest
public class CombinedMinioS3IT
public class CombinedMinioS3IT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(S3MethodAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.carlspring.cloud.storage.s3fs.junit.annotations.MinioIntegrationTest;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
Expand All @@ -12,7 +13,7 @@
* Class level {@link S3IntegrationTest} annotation and method level {@link MinioIntegrationTest} annotation.
*/
@S3IntegrationTest
public class CombinedS3MinioIT
public class CombinedS3MinioIT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(S3MethodAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package org.carlspring.cloud.storage.s3fs.junit.examples;

import org.carlspring.cloud.storage.s3fs.junit.annotations.MinioIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertTrue;

@MinioIntegrationTest
public class MinioClassAnnotationIT
public class MinioClassAnnotationIT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(MinioClassAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package org.carlspring.cloud.storage.s3fs.junit.examples;

import org.carlspring.cloud.storage.s3fs.junit.annotations.MinioIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class MinioMethodAnnotationIT
public class MinioMethodAnnotationIT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(MinioMethodAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package org.carlspring.cloud.storage.s3fs.junit.examples;

import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertTrue;

@S3IntegrationTest
public class S3ClassAnnotationIT
public class S3ClassAnnotationIT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(S3ClassAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package org.carlspring.cloud.storage.s3fs.junit.examples;

import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class S3MethodAnnotationIT
public class S3MethodAnnotationIT extends BaseIntegrationTest
{

private static final Logger logger = LoggerFactory.getLogger(S3MethodAnnotationIT.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.carlspring.cloud.storage.s3fs.S3FileSystemProvider;
import org.carlspring.cloud.storage.s3fs.S3Path;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.EnvironmentBuilder;

import java.io.IOException;
Expand All @@ -24,7 +25,7 @@
import static org.junit.jupiter.api.Assertions.assertNull;

@S3IntegrationTest
class ToURLIT
class ToURLIT extends BaseIntegrationTest
{

private static final URI uriGlobal = EnvironmentBuilder.getS3URI(S3_GLOBAL_URI_IT);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.carlspring.cloud.storage.s3fs.junit.annotations.MinioIntegrationTest;
import org.carlspring.cloud.storage.s3fs.junit.annotations.S3IntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.BaseIntegrationTest;
import org.carlspring.cloud.storage.s3fs.util.EnvironmentBuilder;

import java.util.Map;
Expand All @@ -13,7 +14,7 @@

@S3IntegrationTest
@MinioIntegrationTest
class EnvironmentIT
class EnvironmentIT extends BaseIntegrationTest
{
@Test
void couldCreateFileSystem()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.carlspring.cloud.storage.s3fs.util;

import static org.carlspring.cloud.storage.s3fs.S3Factory.ACCESS_KEY;
import static org.carlspring.cloud.storage.s3fs.S3Factory.SECRET_KEY;

public abstract class BaseIntegrationTest
{

static
{
if (isMinioEnv())
{
try
{
final String accessKey = (String) EnvironmentBuilder.getRealEnv().get(ACCESS_KEY);
final String secretKey = (String) EnvironmentBuilder.getRealEnv().get(SECRET_KEY);
final String bucketName = (String) EnvironmentBuilder.getRealEnv().get(EnvironmentBuilder.BUCKET_NAME_KEY);
final MinioContainer minioContainer = new MinioContainer(accessKey, secretKey, bucketName);
minioContainer.start();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

public static boolean isMinioEnv()
{
String integrationTestType = System.getProperty("running.it");
return integrationTestType != null && integrationTestType.equalsIgnoreCase("minio");
}

}
Loading

0 comments on commit 891edc8

Please sign in to comment.