package com.muleinaction;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assume.assumeNotNull;
import static org.junit.Assume.assumeTrue;
import org.apache.commons.lang.StringUtils;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mule.api.MuleMessage;
import org.mule.module.client.MuleClient;
import org.mule.tck.junit4.FunctionalTestCase;
import redis.clients.jedis.Jedis;
// TODO reactivate when Redis released for Mule 3.4
@Ignore("deactivated because Redis Connector not yet released for Mule 3.4")
public class ObjectStoreTestCase extends FunctionalTestCase
{
private static final String REDIS_HOST = "localhost";
private Jedis jedis;
public ObjectStoreTestCase()
{
setStartContext(false);
}
@Override
protected String getConfigResources()
{
return "object-store.xml";
}
@Before
public void doSetup() throws Exception
{
jedis = new Jedis(REDIS_HOST);
try
{
jedis.connect();
}
catch (final Exception e)
{
}
// Tests should not fail if Redis is not reachable
assumeNotNull(jedis);
assumeTrue(jedis.isConnected());
setStartContext(true);
setUpMuleContext();
}
@Test
public void testObjectStore() throws Exception
{
final MuleClient muleClient = new MuleClient(muleContext);
final MuleMessage result = muleClient.send("vm://objectStoreBasedRequest", StringUtils.EMPTY, null);
assertThat(result.getPayload(), is(instanceOf(String.class)));
}
}