package org.mule.transport.file; import java.io.File; import java.io.FileInputStream; import java.util.Arrays; import org.mule.DefaultMuleMessage; import org.mule.api.MessagingException; import org.mule.api.MuleMessage; import org.mule.api.transport.MessageAdapter; import org.mule.transport.AbstractMessageAdapterTestCase; import org.mule.util.FileUtils; public class FileObjectMessageAdapterTestCase extends AbstractMessageAdapterTestCase { private File message; /* * (non-Javadoc) * * @see junit.framework.TestCase#setUp() */ protected void doSetUp() throws Exception { super.doSetUp(); // The working directory is deleted on tearDown File dir = FileUtils.newFile(muleContext.getConfiguration() .getWorkingDirectory(), "tmp"); if (!dir.exists()) { dir.mkdirs(); } message = File.createTempFile("simple", ".mule", dir); } public MessageAdapter createAdapter(Object payload) throws MessagingException { return new FileObjectMessageAdapter(payload); } public Object getValidMessage() throws Exception { return message; } public void testMessageRetrieval2() throws Exception { MessageAdapter adapter = createAdapter(message); MuleMessage muleMessage = new DefaultMuleMessage(adapter); doTestMessageEqualsPayload(message, adapter.getPayload()); byte[] bytes = muleMessage.getPayloadAsBytes(); assertNotNull(bytes); String stringMessage = muleMessage.getPayloadAsString(); assertNotNull(stringMessage); assertNotNull(adapter.getPayload()); } protected void doTestMessageEqualsPayload(Object message, Object payload) throws Exception { byte[] messageBytes = null; byte[] payloadBytes = null; if (message instanceof File) { File file = (File) message; FileInputStream payloadFis = new FileInputStream((File) payload); messageBytes = new byte[(int) file.length()]; payloadBytes = new byte[payloadFis.available()]; } else { fail("FileObjectMessageAdaptor supports File"); } assertTrue(Arrays.equals(messageBytes, payloadBytes)); } }