Skip to content

Commit ca89439

Browse files
Add synapse unit testing framework
1 parent fda8018 commit ca89439

27 files changed

+4302
-2
lines changed

modules/core/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,5 +318,9 @@
318318
<artifactId>xercesImpl</artifactId>
319319
<scope>test</scope>
320320
</dependency>
321+
<dependency>
322+
<groupId>com.google.code.gson</groupId>
323+
<artifactId>gson</artifactId>
324+
</dependency>
321325
</dependencies>
322326
</project>

modules/core/src/main/java/org/apache/synapse/ServerContextInformation.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public class ServerContextInformation {
4242
private ServerState serverState = ServerState.UNDETERMINED;
4343
/** Reference to the server configuration */
4444
private ServerConfigurationInformation serverConfigurationInformation;
45+
/** whether unit test mode is enabled or not */
46+
private boolean isUnitTestModeEnabled=false;
4547

4648
public ServerContextInformation(ServerConfigurationInformation serverConfigurationInformation) {
4749
this.serverConfigurationInformation = serverConfigurationInformation;
@@ -96,4 +98,12 @@ public void setSynapseEnvironment(SynapseEnvironment synapseEnvironment) {
9698
public ServerConfigurationInformation getServerConfigurationInformation() {
9799
return serverConfigurationInformation;
98100
}
101+
102+
public boolean isServerUnitTestModeEnabled(){
103+
return isUnitTestModeEnabled;
104+
}
105+
106+
public void setServerUnitTestModeEnabled(boolean isUnitTestModeEnabled){
107+
this.isUnitTestModeEnabled=isUnitTestModeEnabled;
108+
}
99109
}

modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.apache.synapse.rest.RESTRequestHandler;
4545
import org.apache.synapse.task.SynapseTaskManager;
4646
import org.apache.synapse.transport.passthru.util.RelayUtils;
47+
import org.apache.synapse.unittest.UnitTestingExecutor;
4748
import org.apache.synapse.util.concurrent.SynapseThreadPool;
4849
import org.apache.synapse.util.xpath.ext.SynapseXpathFunctionContextProvider;
4950
import org.apache.synapse.util.xpath.ext.SynapseXpathVariableResolver;
@@ -81,6 +82,9 @@ public class Axis2SynapseEnvironment implements SynapseEnvironment {
8182
Map<QName, SynapseXpathVariableResolver> xpathVariableExtensions =
8283
new HashMap<QName, SynapseXpathVariableResolver>();
8384

85+
/** Unit test mode is enabled/disabled*/
86+
private boolean isUnitTestEnabled = false;
87+
8488
public Axis2SynapseEnvironment(SynapseConfiguration synCfg) {
8589

8690
int coreThreads = SynapseThreadPool.SYNAPSE_CORE_THREADS;
@@ -124,7 +128,25 @@ public Axis2SynapseEnvironment(ConfigurationContext cfgCtx,
124128
public Axis2SynapseEnvironment(ConfigurationContext cfgCtx,
125129
SynapseConfiguration synapseConfig, ServerContextInformation contextInformation) {
126130
this(cfgCtx, synapseConfig);
127-
this.contextInformation = contextInformation;
131+
this.contextInformation = contextInformation;
132+
setSeverUnitTestMode(contextInformation);
133+
}
134+
135+
/**
136+
* This method is to set the unit test mode is enabled.
137+
* unit test message context and environment initializes
138+
*/
139+
private void setSeverUnitTestMode(ServerContextInformation contextInformation) {
140+
if (Boolean.parseBoolean(System.getProperty("synapseTest"))) {
141+
setUnitTestEnabled(true);
142+
contextInformation.setServerUnitTestModeEnabled(true);
143+
log.info("Synapse unit testing server enabled");
144+
145+
//starting UnitTestingExecutor
146+
UnitTestingExecutor testExecutor = UnitTestingExecutor.getExecuteInstance();
147+
testExecutor.setSynapseConfiguration(this.synapseConfig);
148+
testExecutor.start();
149+
}
128150
}
129151

130152
public boolean injectMessage(final MessageContext synCtx) {
@@ -545,4 +567,22 @@ private Mediator getProxyOutSequence(MessageContext synCtx, ProxyService proxySe
545567
}
546568
return null;
547569
}
570+
571+
/**
572+
* Whether unit test is enabled in the environment.
573+
*
574+
* @return whether debugging is enabled in the environment
575+
*/
576+
public boolean isUnitTestEnabled() {
577+
return isUnitTestEnabled;
578+
}
579+
580+
/**
581+
* set unit test mode enabled in the environment.
582+
*
583+
* @param isUnitTestEnabled boolean value of unit test mode
584+
*/
585+
public void setUnitTestEnabled(boolean isUnitTestEnabled) {
586+
this.isUnitTestEnabled = isUnitTestEnabled;
587+
}
548588
}

0 commit comments

Comments
 (0)