[Major] RuntimeMock now also copies data
This commit is contained in:
parent
cc0794bf30
commit
4ce8c9b643
|
@ -19,10 +19,12 @@ import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
import li.strolch.model.Resource;
|
import li.strolch.model.Resource;
|
||||||
import li.strolch.runtime.agent.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
import li.strolch.runtime.agent.StrolchAgent;
|
import li.strolch.runtime.agent.StrolchAgent;
|
||||||
|
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
||||||
import li.strolch.runtime.test.component.model.PersistenceHandlerTest;
|
import li.strolch.runtime.test.component.model.PersistenceHandlerTest;
|
||||||
import li.strolch.runtime.test.component.model.ServiceHandlerTest;
|
import li.strolch.runtime.test.component.model.ServiceHandlerTest;
|
||||||
import li.strolch.runtime.test.component.model.ServiceResultTest;
|
import li.strolch.runtime.test.component.model.ServiceResultTest;
|
||||||
|
@ -31,6 +33,8 @@ import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import ch.eitchnet.utils.helper.FileHelper;
|
||||||
|
|
||||||
@SuppressWarnings("nls")
|
@SuppressWarnings("nls")
|
||||||
public class ComponentContainerTest {
|
public class ComponentContainerTest {
|
||||||
|
|
||||||
|
@ -38,13 +42,18 @@ public class ComponentContainerTest {
|
||||||
public static final String PATH_TRANSIENT_CONTAINER = "src/test/resources/transienttest";
|
public static final String PATH_TRANSIENT_CONTAINER = "src/test/resources/transienttest";
|
||||||
public static final String PATH_EMPTY_CONTAINER = "src/test/resources/emptytest";
|
public static final String PATH_EMPTY_CONTAINER = "src/test/resources/emptytest";
|
||||||
|
|
||||||
|
public static final String PATH_REALM_RUNTIME = "target/realmtest/"; //$NON-NLS-1$
|
||||||
|
public static final String PATH_TRANSIENT_RUNTIME = "target/transienttest/"; //$NON-NLS-1$
|
||||||
|
public static final String PATH_EMPTY_RUNTIME = "target/emptytest/"; //$NON-NLS-1$
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ComponentContainerTest.class);
|
private static final Logger logger = LoggerFactory.getLogger(ComponentContainerTest.class);
|
||||||
|
private static final String TARGET = "target"; //$NON-NLS-1$
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldStartEmptyContainer() {
|
public void shouldStartEmptyContainer() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
StrolchAgent agent = startContainer(PATH_EMPTY_CONTAINER);
|
StrolchAgent agent = startContainer(PATH_EMPTY_RUNTIME, PATH_EMPTY_CONTAINER);
|
||||||
testContainer(agent);
|
testContainer(agent);
|
||||||
destroyContainer(agent);
|
destroyContainer(agent);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -57,7 +66,7 @@ public class ComponentContainerTest {
|
||||||
public void shouldStartTransientContainer() {
|
public void shouldStartTransientContainer() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
StrolchAgent agent = startContainer(PATH_TRANSIENT_CONTAINER);
|
StrolchAgent agent = startContainer(PATH_TRANSIENT_RUNTIME, PATH_TRANSIENT_CONTAINER);
|
||||||
testContainer(agent);
|
testContainer(agent);
|
||||||
destroyContainer(agent);
|
destroyContainer(agent);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -70,7 +79,7 @@ public class ComponentContainerTest {
|
||||||
public void shouldStartRealmTestContainer() {
|
public void shouldStartRealmTestContainer() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
StrolchAgent agent = startContainer(PATH_REALM_CONTAINER);
|
StrolchAgent agent = startContainer(PATH_REALM_RUNTIME, PATH_REALM_CONTAINER);
|
||||||
testContainer(agent);
|
testContainer(agent);
|
||||||
destroyContainer(agent);
|
destroyContainer(agent);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -79,11 +88,6 @@ public class ComponentContainerTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StrolchAgent startContainer(String rootPath) {
|
|
||||||
File rootPathF = new File(rootPath);
|
|
||||||
return startContainer(rootPathF);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void testContainer(StrolchAgent agent) {
|
private static void testContainer(StrolchAgent agent) {
|
||||||
|
|
||||||
ComponentContainer container = agent.getContainer();
|
ComponentContainer container = agent.getContainer();
|
||||||
|
@ -98,6 +102,13 @@ public class ComponentContainerTest {
|
||||||
assertEquals("@testRes", resource.getId());
|
assertEquals("@testRes", resource.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static StrolchAgent startContainer(String rootPath, String configSrc) {
|
||||||
|
File rootPathF = new File(rootPath);
|
||||||
|
File configSrcF = new File(configSrc);
|
||||||
|
mockRuntime(rootPathF, configSrcF);
|
||||||
|
return startContainer(rootPathF);
|
||||||
|
}
|
||||||
|
|
||||||
public static StrolchAgent startContainer(File rootPathF) {
|
public static StrolchAgent startContainer(File rootPathF) {
|
||||||
StrolchAgent agent = new StrolchAgent();
|
StrolchAgent agent = new StrolchAgent();
|
||||||
agent.setup(rootPathF);
|
agent.setup(rootPathF);
|
||||||
|
@ -111,4 +122,57 @@ public class ComponentContainerTest {
|
||||||
agent.stop();
|
agent.stop();
|
||||||
agent.destroy();
|
agent.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void mockRuntime(File rootPathF, File rootSrc) {
|
||||||
|
|
||||||
|
if (!rootPathF.getParentFile().getName().equals(TARGET)) {
|
||||||
|
String msg = "Mocking path must be in a maven target: {0}"; //$NON-NLS-1$
|
||||||
|
msg = MessageFormat.format(msg, rootPathF.getAbsolutePath());
|
||||||
|
throw new RuntimeException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
File configSrc = new File(rootSrc, RuntimeConfiguration.PATH_CONFIG);
|
||||||
|
File dataSrc = new File(rootSrc, RuntimeConfiguration.PATH_DATA);
|
||||||
|
|
||||||
|
if (!configSrc.isDirectory() || !configSrc.canRead()) {
|
||||||
|
String msg = "Could not find config source in: {0}"; //$NON-NLS-1$
|
||||||
|
msg = MessageFormat.format(msg, configSrc.getAbsolutePath());
|
||||||
|
throw new RuntimeException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rootPathF.exists()) {
|
||||||
|
logger.info("Deleting all files in " + rootPathF.getAbsolutePath()); //$NON-NLS-1$
|
||||||
|
if (!FileHelper.deleteFile(rootPathF, true)) {
|
||||||
|
String msg = "Failed to delete {0}"; //$NON-NLS-1$
|
||||||
|
msg = MessageFormat.format(msg, rootPathF.getAbsolutePath());
|
||||||
|
throw new RuntimeException(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!rootPathF.mkdirs()) {
|
||||||
|
String msg = "Failed to create {0}"; //$NON-NLS-1$
|
||||||
|
msg = MessageFormat.format(msg, rootPathF.getAbsolutePath());
|
||||||
|
throw new RuntimeException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
File configPathF = new File(rootPathF, RuntimeConfiguration.PATH_CONFIG);
|
||||||
|
configPathF.mkdir();
|
||||||
|
|
||||||
|
if (!FileHelper.copy(configSrc.listFiles(), configPathF, false)) {
|
||||||
|
String msg = "Failed to copy source configs from {0} to {1}"; //$NON-NLS-1$
|
||||||
|
msg = MessageFormat.format(msg, configSrc.getAbsolutePath(), configPathF.getAbsolutePath());
|
||||||
|
throw new RuntimeException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dataSrc.exists()) {
|
||||||
|
File dataPathF = new File(rootPathF, RuntimeConfiguration.PATH_DATA);
|
||||||
|
dataPathF.mkdir();
|
||||||
|
|
||||||
|
if (!FileHelper.copy(dataSrc.listFiles(), dataPathF, false)) {
|
||||||
|
String msg = "Failed to copy source data from {0} to {1}"; //$NON-NLS-1$
|
||||||
|
msg = MessageFormat.format(msg, configSrc.getAbsolutePath(), configPathF.getAbsolutePath());
|
||||||
|
throw new RuntimeException(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,10 +48,13 @@ import org.junit.Test;
|
||||||
@SuppressWarnings("nls")
|
@SuppressWarnings("nls")
|
||||||
public class QueryTest {
|
public class QueryTest {
|
||||||
|
|
||||||
|
public static final String PATH_EMPTY_RUNTIME = "target/QueryTest/"; //$NON-NLS-1$
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldQueryResourceWithParamValue() {
|
public void shouldQueryResourceWithParamValue() {
|
||||||
|
|
||||||
StrolchAgent agent = ComponentContainerTest.startContainer(ComponentContainerTest.PATH_EMPTY_CONTAINER);
|
StrolchAgent agent = ComponentContainerTest.startContainer(PATH_EMPTY_RUNTIME,
|
||||||
|
ComponentContainerTest.PATH_EMPTY_CONTAINER);
|
||||||
Resource res1 = createResource("@1", "Test Resource", "MyType");
|
Resource res1 = createResource("@1", "Test Resource", "MyType");
|
||||||
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
||||||
res1.addParameter(BAG_ID, iP);
|
res1.addParameter(BAG_ID, iP);
|
||||||
|
@ -74,7 +77,8 @@ public class QueryTest {
|
||||||
@Test
|
@Test
|
||||||
public void shouldQueryOrderWithParamValue() {
|
public void shouldQueryOrderWithParamValue() {
|
||||||
|
|
||||||
StrolchAgent agent = ComponentContainerTest.startContainer(ComponentContainerTest.PATH_EMPTY_CONTAINER);
|
StrolchAgent agent = ComponentContainerTest.startContainer(PATH_EMPTY_RUNTIME,
|
||||||
|
ComponentContainerTest.PATH_EMPTY_CONTAINER);
|
||||||
Order o1 = createOrder("@1", "Test Order", "MyType");
|
Order o1 = createOrder("@1", "Test Order", "MyType");
|
||||||
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
||||||
o1.addParameter(BAG_ID, iP);
|
o1.addParameter(BAG_ID, iP);
|
||||||
|
|
Loading…
Reference in New Issue