Package com.muleinaction

Source Code of com.muleinaction.MessageAttachmentsTestCase

package com.muleinaction;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.io.File;
import java.net.URL;
import java.util.Collections;

import org.junit.Test;
import org.mule.DefaultMuleMessage;
import org.mule.api.MuleMessage;
import org.mule.api.client.MuleClient;
import org.mule.tck.functional.FunctionalTestComponent;
import org.mule.tck.junit4.FunctionalTestCase;

public class MessageAttachmentsTestCase extends FunctionalTestCase
{
    private static final String TEST_PAYLOAD = "ignored";
    private static final String TEST_USAGE_REPORT_PDF = "fake-usage-report.pdf";
    private static final String TEST_ORDER_PDF = "fake-order.pdf";

    @Override
    protected String getConfigResources()
    {
        return "message-attachments.xml";
    }

    @Test
    public void attachPdfUsageReport() throws Exception
    {
        final String usageReportPdfFilePath = getPdfResourceUrl(TEST_USAGE_REPORT_PDF).getFile();

        //<start id="lis_12_mule_client-1"/>
        MuleClient muleClient = muleContext.getClient();

        MuleMessage result = muleClient.send("vm://add-attachments.in",
            TEST_PAYLOAD,
            Collections.<String,Object>singletonMap(
                "pdfFilePath",
                usageReportPdfFilePath));

        assertThat(
            result.getInboundAttachmentNames().contains(TEST_USAGE_REPORT_PDF),
            is(true));
        //<end id="lis_12_mule_client-1"/>
    }
   
    @Test
    public void processAttachments() throws Exception
    {
        MuleMessage message = new DefaultMuleMessage("fake email content",
            muleContext);
        File orderFile = new File(
            getPdfResourceUrl(TEST_ORDER_PDF).toURI());
        message.addOutboundAttachment("1-" + orderFile.getName(),
            orderFile, "application/pdf");
        message.addOutboundAttachment("2-" + orderFile.getName(),
            orderFile, "application/pdf");
        muleContext.getClient().dispatch("vm://email.orders.in",
            message);

        FunctionalTestComponent ftc = getFunctionalTestComponent("pdf-order-handler");
        while (ftc.getReceivedMessagesCount() < 2)
        {
            Thread.yield();
            Thread.sleep(100L);
        }

        assertThat(
            ftc.getReceivedMessage(1) instanceof javax.activation.DataHandler,
            is(true));
       
        assertThat(
            ftc.getReceivedMessage(2) instanceof javax.activation.DataHandler,
            is(true));
    }

    private static URL getPdfResourceUrl(String pdfResourceName)
    {
        return Thread.currentThread()
            .getContextClassLoader()
            .getResource(pdfResourceName);
    }
}
TOP

Related Classes of com.muleinaction.MessageAttachmentsTestCase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.