-
Notifications
You must be signed in to change notification settings - Fork 724
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
55 changed files
with
16,516 additions
and
447 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package mondrian.example; | ||
|
||
import org.junit.jupiter.api.Test; | ||
import org.junit.jupiter.api.extension.ExtendWith; | ||
|
||
import mondrian.junit5.MondrianRuntimeExtension; | ||
|
||
@ExtendWith(MondrianRuntimeExtension.class) | ||
public class MyTest { | ||
|
||
@Test | ||
void testName() throws Exception { | ||
System.out.println(1); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package mondrian.junit5; | ||
|
||
public interface DataLoader { | ||
/** | ||
* @param jdbcConnectionUrl - jdbcConnectionUrl | ||
* @return jdbc connection String | ||
*/ | ||
boolean loadDataData(String jdbcConnectionUrl); | ||
|
||
} |
15 changes: 15 additions & 0 deletions
15
mondrian/src/test/java/mondrian/junit5/DatabaseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package mondrian.junit5; | ||
|
||
import java.io.Closeable; | ||
import java.util.Map; | ||
|
||
public interface DatabaseHandler extends Closeable { | ||
|
||
/** | ||
* | ||
* @param props - properties | ||
* @return jdbc connection String | ||
*/ | ||
String setUpDatabase(Map<String,Object> props); | ||
|
||
} |
24 changes: 24 additions & 0 deletions
24
mondrian/src/test/java/mondrian/junit5/FoodmardDataLoader.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package mondrian.junit5; | ||
|
||
import mondrian.test.loader.MondrianFoodMartLoaderX; | ||
|
||
public class FoodmardDataLoader implements DataLoader{ | ||
|
||
@Override | ||
public boolean loadDataData(String jdbcUrl) { | ||
String[] args=new String[]{ | ||
"-verbose", | ||
"-tables", | ||
"-data", | ||
"-indexes", | ||
"-outputJdbcURL="+jdbcUrl, | ||
// "-outputJdbcUser="+mySQLContainer.getUsername(), | ||
// "-outputJdbcPassword="+mySQLContainer.getPassword(), | ||
"-outputJdbcBatchSize=50", | ||
"-jdbcDrivers=com.mysql.cl.jdbc.Driver" | ||
}; | ||
MondrianFoodMartLoaderX.main(args); | ||
return true; | ||
} | ||
|
||
} |
58 changes: 58 additions & 0 deletions
58
mondrian/src/test/java/mondrian/junit5/MondrianRuntimeExtension.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
package mondrian.junit5; | ||
|
||
import static org.junit.jupiter.api.extension.ExtensionContext.Namespace.GLOBAL; | ||
|
||
import java.sql.SQLException; | ||
import java.util.Locale; | ||
|
||
import org.junit.jupiter.api.extension.BeforeAllCallback; | ||
import org.junit.jupiter.api.extension.ConditionEvaluationResult; | ||
import org.junit.jupiter.api.extension.ExecutionCondition; | ||
import org.junit.jupiter.api.extension.ExtensionContext; | ||
import org.testcontainers.DockerClientFactory; | ||
|
||
import mondrian.resource.MondrianResource; | ||
|
||
public class MondrianRuntimeExtension | ||
implements ExecutionCondition, BeforeAllCallback, ExtensionContext.Store.CloseableResource { | ||
|
||
|
||
private static boolean started = false; | ||
|
||
@Override | ||
public void beforeAll(ExtensionContext context) { | ||
if (!started) { | ||
|
||
started = true; | ||
// registers a callback hook when the root test context is shut down | ||
context.getRoot().getStore(GLOBAL).put("MondrianRuntimeExtensionClosableCallbackHook", this); | ||
defineLocale(); | ||
|
||
System.out.println("##############################################################"); | ||
} | ||
} | ||
|
||
private void defineLocale() { | ||
MondrianResource.setThreadLocale( Locale.US ); | ||
} | ||
|
||
|
||
@Override | ||
public void close() { | ||
// Your "after all tests" logic goes here | ||
|
||
} | ||
|
||
@Override | ||
public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { | ||
|
||
try { | ||
DockerClientFactory.instance().client(); | ||
return ConditionEvaluationResult.enabled("Docker is available"); | ||
} catch (Throwable ex) { | ||
return ConditionEvaluationResult.disabled("Docker is not available", ex.getMessage()); | ||
} | ||
|
||
} | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
mondrian/src/test/java/mondrian/junit5/MondrianRuntimeSupport.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package mondrian.junit5; | ||
|
||
import java.lang.annotation.Documented; | ||
import java.lang.annotation.ElementType; | ||
import java.lang.annotation.Inherited; | ||
import java.lang.annotation.Retention; | ||
import java.lang.annotation.RetentionPolicy; | ||
import java.lang.annotation.Target; | ||
|
||
import org.junit.jupiter.api.extension.ExtendWith; | ||
|
||
@Inherited | ||
@Target({ | ||
ElementType.TYPE,ElementType.METHOD | ||
}) | ||
@Retention(RetentionPolicy.RUNTIME) | ||
@Documented | ||
@ExtendWith(MondrianRuntimeExtension.class) | ||
public @interface MondrianRuntimeSupport { | ||
Class<? extends DatabaseHandler> database() default MySQLDatabaseHandler.class; | ||
Class<? extends DataLoader> dataLoader() default FoodmardDataLoader.class; | ||
|
||
} |
45 changes: 45 additions & 0 deletions
45
mondrian/src/test/java/mondrian/junit5/MySQLDatabaseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package mondrian.junit5; | ||
|
||
import java.io.IOException; | ||
import java.sql.DriverManager; | ||
import java.util.Map; | ||
import java.util.UUID; | ||
import java.util.function.Consumer; | ||
|
||
import org.testcontainers.containers.MySQLContainer; | ||
import org.testcontainers.containers.output.OutputFrame; | ||
|
||
public class MySQLDatabaseHandler implements DatabaseHandler { | ||
|
||
private static MySQLContainer<?> mySQLContainer; | ||
static Consumer<OutputFrame> x = t -> System.out.println(t.getUtf8String()); | ||
|
||
@Override | ||
public void close() throws IOException { | ||
if (mySQLContainer != null) { | ||
mySQLContainer.stop(); | ||
mySQLContainer.close(); | ||
} | ||
} | ||
|
||
@Override | ||
public String setUpDatabase(Map<String, Object> props) { | ||
String user=props.getOrDefault("username", UUID.randomUUID().toString().replace("-","")).toString(); | ||
String pass=props.getOrDefault("password", UUID.randomUUID().toString().replace("-","")).toString(); | ||
|
||
|
||
mySQLContainer = new MySQLContainer<>("mysql:5.7.34").withDatabaseName(user).withUsername(pass) | ||
.withPassword("pass").withEnv("MYSQL_ROOT_HOST", "%").withLogConsumer(x); | ||
|
||
mySQLContainer.start(); | ||
|
||
return mySQLContainer.getJdbcUrl()+"?user="+user+"&password="+pass; | ||
// Connection con = DriverManager.getConnection(url, "user", "pass"); | ||
|
||
} | ||
|
||
|
||
|
||
|
||
|
||
} |
Oops, something went wrong.