import com.prancingdonkey.domain.Brew;
import org.junit.Assert;
import org.junit.Test;
import org.mule.api.context.notification.ComponentMessageNotificationListener;
import org.mule.api.context.notification.EndpointMessageNotificationListener;
import org.mule.api.context.notification.MessageProcessorNotificationListener;
import org.mule.api.context.notification.ServerNotification;
import org.mule.tck.junit4.FunctionalTestCase;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.*;
public class AcceptBrewDefinitionsFunctionalTestCase extends FunctionalTestCase {
CountDownLatch callbackLatch;
@Override
protected String getConfigResources() {
return "src/main/app/acceptBrewDefinitions.xml";
}
@Override
protected void doSetUp() throws Exception {
super.doSetUp();
callbackLatch = new CountDownLatch(2);
muleContext.registerListener(new ComponentMessageNotificationListener() {
public void onNotification(final ServerNotification notification) {
callbackLatch.countDown();
}
});
}
@Test
public void testCanSubmitBrewDefinition() throws Exception {
Brew brew = new Brew();
muleContext.getClient().dispatch("jms://brews.definitions", brew, null);
assertTrue(callbackLatch.await(15, TimeUnit.SECONDS));
}
}