Skip to content

Commit

Permalink
βœ… : execute mongo scripts with mongo shell instead of db.eval()
Browse files Browse the repository at this point in the history
  • Loading branch information
juwit committed Sep 4, 2020
1 parent 0ca21ea commit e21c05b
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ class AuthenticationRestControllerIT: SharedMongoContainerTest() {
@BeforeAll
fun setUp() {
mongo.emptyDatabase()
mongo.runScript("src/test/resources/db/00_team.js")
mongo.runScript("src/test/resources/db/10_user.js")
mongo.runScript("00_team.js")
mongo.runScript("10_user.js")
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ class CredentialsRestControllerIT extends SharedMongoContainerTest {
@BeforeEach
void setup() {
mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("src/test/resources/db/70_credentials.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
mongo.runScript("70_credentials.js");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ class CredentialsRestControllerVaultIT extends SharedMongoContainerTest {
@BeforeEach
void setup() {
mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("src/test/resources/db/70_credentials.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
mongo.runScript("70_credentials.js");
}

@Test
Expand Down
16 changes: 8 additions & 8 deletions src/test/java/io/gaia_app/e2e/SeleniumIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@Tag("e2e")
public class SeleniumIT extends SharedMongoContainerTest {
class SeleniumIT extends SharedMongoContainerTest {

@LocalServerPort
private int serverPort;
Expand All @@ -51,13 +51,13 @@ public static void openServerAndBrowser() throws IOException {
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("src/test/resources/db/20_module.js");
mongo.runScript("src/test/resources/db/30_stack.js");
mongo.runScript("src/test/resources/db/40_job.js");
mongo.runScript("src/test/resources/db/50_step.js");
mongo.runScript("src/test/resources/db/60_terraformState.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
mongo.runScript("20_module.js");
mongo.runScript("30_stack.js");
mongo.runScript("40_job.js");
mongo.runScript("50_step.js");
mongo.runScript("60_terraformState.js");
}

@AfterAll
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class DockerRegistryRestControllerIT: SharedMongoContainerTest() {
@BeforeAll
internal fun setUp() {
mongo.emptyDatabase()
mongo.runScript("src/test/resources/db/10_user.js")
mongo.runScript("10_user.js")
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ class ModuleRestControllerIT extends SharedMongoContainerTest {
@BeforeEach
void setup() {
mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("src/test/resources/db/20_module.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
mongo.runScript("20_module.js");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class GithubRegistryControllerIT: SharedMongoContainerTest() {
@BeforeEach
internal fun setUp() {
mongo.emptyDatabase()
mongo.runScript("src/test/resources/db/10_user.js")
mongo.runScript("10_user.js")
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class GitlabRegistryControllerIT: SharedMongoContainerTest() {
@BeforeEach
internal fun setUp() {
mongo.emptyDatabase()
mongo.runScript("src/test/resources/db/10_user.js")
mongo.runScript("10_user.js")
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ class StackRestControllerIT extends SharedMongoContainerTest {
@BeforeEach
void setUp() {
mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("src/test/resources/db/20_module.js");
mongo.runScript("src/test/resources/db/30_stack.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
mongo.runScript("20_module.js");
mongo.runScript("30_stack.js");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ class TeamsRestControllerIT extends SharedMongoContainerTest {
@BeforeEach
void setUp() {
mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ class UsersRestControllerIT extends SharedMongoContainerTest {
@BeforeEach
void setUp() {
mongo.emptyDatabase();
mongo.runScript("src/test/resources/db/00_team.js");
mongo.runScript("src/test/resources/db/10_user.js");
mongo.runScript("00_team.js");
mongo.runScript("10_user.js");
}

@Test
Expand Down
23 changes: 10 additions & 13 deletions src/test/java/io/gaia_app/test/MongoContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,12 @@
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
import org.apache.commons.io.IOUtils;
import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.BindMode;
import org.testcontainers.containers.GenericContainer;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

/**
* A helper class to start a mongodb container
Expand All @@ -20,13 +17,14 @@ public class MongoContainer extends GenericContainer {

private static final Logger LOG = LoggerFactory.getLogger(MongoContainer.class);
private static final int MONGO_PORT = 27017;
public static final String GAIA_SCRIPTS_DIRECTORY = "/gaia_scripts/";

private MongoClient client;
private MongoDatabase database;

public MongoContainer() {
super("mongo:4.0");
setExposedPorts(List.of(MONGO_PORT));
withClasspathResourceMapping("db", GAIA_SCRIPTS_DIRECTORY, BindMode.READ_ONLY);
}

public MongoClient getClient() {
Expand All @@ -48,14 +46,13 @@ public MongoDatabase getDatabase() {
}

public void runScript(String resource){
try (final FileInputStream fis = new FileInputStream(resource)) {
var content = IOUtils.toString(fis, "UTF-8");

var document = new Document("$eval", content);

getDatabase().runCommand(document);
} catch (IOException e) {
LOG.warn("Unable to read file: {} skipped.", resource);
try {
var result = this.execInContainer("mongo", GAIA_SCRIPTS_DIRECTORY+resource);
if(result.getExitCode() != 0){
LOG.error("Script execution raised an error : {}", result.getStdout());
}
} catch (IOException | InterruptedException e) {
LOG.warn("Unable to execute script: {} skipped.", resource);
}
}

Expand Down

0 comments on commit e21c05b

Please sign in to comment.