package com.muleinaction; import org.junit.BeforeClass; import org.junit.Test; import org.mule.api.MuleEventContext; import org.mule.api.MuleMessage; import org.mule.tck.functional.EventCallback; import org.mule.tck.junit4.FunctionalTestCase; import org.mule.util.FileUtils; import java.io.File; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; import static org.junit.Assert.assertTrue; public class VMFunctionalTestCase extends FunctionalTestCase { @BeforeClass public static void setupDirectories() throws Exception { File dataDirectory = new File("./data"); if (dataDirectory.exists()) { FileUtils.deleteDirectory(dataDirectory); } dataDirectory.mkdirs(); new File("./data/expenses/in").mkdirs(); } @Override protected String getConfigResources() { return "src/main/app/vm-config.xml"; } @Test public void testCanPostExpenses() throws Exception { FileUtils.writeStringToFile(new File("./data/expenses/in", "expenses.xls"), "a crazy bar tab"); final CountDownLatch latch = new CountDownLatch(1); EventCallback callback = new EventCallback() { public void eventReceived(MuleEventContext context, Object component) throws Exception { latch.countDown(); } }; getFunctionalTestComponent("dummyHttpServer").setEventCallback(callback); assertTrue(latch.await(15000, TimeUnit.SECONDS)); } }