use of com.adaptris.core.Service in project interlok by adaptris.
the class IfElseTest method testSyntaxIdentifier.
@Test
public void testSyntaxIdentifier() throws Exception {
Service mockThen = Mockito.mock(Service.class);
Service mockElse = Mockito.mock(Service.class);
IfElse ifElse = new IfElse();
ifElse.getThen().setService(mockThen);
ifElse.getOtherwise().setService(mockElse);
ifElse.setCondition(new AlwaysMatchSyntaxIdentifier());
try {
LifecycleHelper.initAndStart(ifElse);
ifElse.doService(message);
verify(mockThen, times(1)).doService(message);
verify(mockElse, times(0)).doService(message);
} finally {
LifecycleHelper.stopAndClose(ifElse);
}
}
use of com.adaptris.core.Service in project interlok by adaptris.
the class WhileTest method testStopProcessingServiceCancelsLoop.
@Test
public void testStopProcessingServiceCancelsLoop() throws Exception {
when(mockCondition.evaluate(message)).thenReturn(true);
Service stopProcessingService = new StopProcessingService();
ServiceList services = new ServiceList();
services.add(stopProcessingService);
services.add(mockService);
thenService = new ThenService();
thenService.setService(services);
logicalExpression = new While().withThen(thenService).withCondition(mockCondition);
startMe(logicalExpression);
logicalExpression.doService(message);
// The default would loop 10 times, but the stop-processing-service should limit us to only a single loop.
verify(mockCondition, times(1)).evaluate(message);
}
use of com.adaptris.core.Service in project interlok by adaptris.
the class JdbcServiceListTest method testServiceList_AdvancedPooledConnection.
@Test
public void testServiceList_AdvancedPooledConnection() throws Exception {
int maxServices = 5;
final int iterations = 5;
int poolsize = maxServices - 1;
createDatabase();
List<Service> serviceList = new ArrayList<Service>();
String name = Thread.currentThread().getName();
Thread.currentThread().setName(getName());
AdvancedJdbcPooledConnection conn = PooledConnectionHelper.createAdvancedPooledConnection(PROPERTIES.getProperty(CFG_JDBC_DRIVER), PROPERTIES.getProperty(CFG_JDBC_URL), poolsize);
try {
GuidGenerator guid = new GuidGenerator();
for (int i = 0; i < maxServices; i++) {
// The Connection should never be used by the wrappedService, as it will exist in objectMetadata.
JdbcServiceList service = createServiceCollection(createSequenceNumberService(conn, guid.safeUUID()), createSequenceNumberService(conn, guid.safeUUID()));
service.setConnection(conn);
serviceList.add(service);
start(service);
}
PooledConnectionHelper.executeTest(serviceList, iterations, new PooledConnectionHelper.MessageCreator() {
@Override
public AdaptrisMessage createMsgForPooledConnectionTest() throws Exception {
return AdaptrisMessageFactory.getDefaultInstance().newMessage();
}
});
assertEquals(0, conn.currentBusyConnectionCount());
assertEquals(poolsize, conn.currentIdleConnectionCount());
assertEquals(poolsize, conn.currentConnectionCount());
} finally {
stop(serviceList.toArray(new ComponentLifecycle[0]));
Thread.currentThread().setName(name);
}
}
use of com.adaptris.core.Service in project interlok by adaptris.
the class MetadataIdentitySequenceNumberServiceTest method testService_AdvancedPooledConnection.
@Test
public void testService_AdvancedPooledConnection() throws Exception {
int maxServices = 5;
final int iterations = 5;
int poolsize = maxServices - 1;
createDatabase();
List<Service> serviceList = new ArrayList<Service>();
String name = Thread.currentThread().getName();
Thread.currentThread().setName(getName());
AdvancedJdbcPooledConnection conn = PooledConnectionHelper.createAdvancedPooledConnection(PROPERTIES.getProperty(JDBC_SEQUENCENUMBER_DRIVER), PROPERTIES.getProperty(JDBC_SEQUENCENUMBER_URL), poolsize);
try {
for (int i = 0; i < maxServices; i++) {
MetadataIdentitySequenceNumberService service = configureForTests(createService(), false);
service.setConnection(conn);
serviceList.add(service);
start(service);
}
PooledConnectionHelper.executeTest(serviceList, iterations, new PooledConnectionHelper.MessageCreator() {
@Override
public AdaptrisMessage createMsgForPooledConnectionTest() throws Exception {
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage();
msg.addMetadata(DEFAULT_IDENTITY_METADATA_KEY, new GuidGenerator().safeUUID());
return msg;
}
});
assertEquals(0, conn.currentBusyConnectionCount());
assertEquals(poolsize, conn.currentIdleConnectionCount());
assertEquals(poolsize, conn.currentConnectionCount());
} finally {
stop(serviceList.toArray(new ComponentLifecycle[0]));
Thread.currentThread().setName(name);
}
}
use of com.adaptris.core.Service in project interlok by adaptris.
the class StoredProcedureProducerTest method testProduce_AdvancedPooledConnection.
@Test
public void testProduce_AdvancedPooledConnection() throws Exception {
int maxServices = 5;
final int iterations = 5;
int poolsize = maxServices - 1;
if (areTestsEnabled()) {
List<Service> serviceList = new ArrayList<Service>();
String name = Thread.currentThread().getName();
Thread.currentThread().setName(getName());
AdvancedJdbcPooledConnection conn = PooledConnectionHelper.createAdvancedPooledConnection(PROPERTIES.getProperty(JDBC_DRIVER), PROPERTIES.getProperty(JDBC_URL), poolsize);
conn.setUsername(PROPERTIES.getProperty(JDBC_USER));
conn.setPassword(PROPERTIES.getProperty(JDBC_PASSWORD));
try {
for (int i = 0; i < maxServices; i++) {
JdbcStoredProcedureProducer spp = new JdbcStoredProcedureProducer();
spp.setProcedureName(("one_in"));
JdbcStringPayloadParameter inParameter = new JdbcStringPayloadParameter();
inParameter.setName("xType");
inParameter.setType(ParameterValueType.VARCHAR);
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage("Sold");
InParameters inParameters = new InParameters();
inParameters.add(inParameter);
spp.setInParameters(inParameters);
StandaloneProducer service = configureForTests(spp, false);
service.setConnection(conn);
serviceList.add(service);
start(service);
}
PooledConnectionHelper.executeTest(serviceList, iterations, new PooledConnectionHelper.MessageCreator() {
@Override
public AdaptrisMessage createMsgForPooledConnectionTest() throws Exception {
return createMessage("Sold");
}
});
assertEquals(0, conn.currentBusyConnectionCount());
assertEquals(poolsize, conn.currentIdleConnectionCount());
assertEquals(poolsize, conn.currentConnectionCount());
} finally {
stop(serviceList.toArray(new ComponentLifecycle[0]));
Thread.currentThread().setName(name);
}
}
}
Aggregations