Package org.switchyard.component.camel.switchyard

Source Code of org.switchyard.component.camel.switchyard.ExchangeMapperTests

/*
* Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, 
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.switchyard.component.camel.switchyard;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.switchyard.common.camel.SwitchYardCamelContextImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import org.apache.camel.Exchange;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;

import org.switchyard.ExchangePhase;
import org.switchyard.Message;
import org.switchyard.Property;
import org.switchyard.ServiceReference;
import org.switchyard.Scope;

import org.switchyard.internal.DefaultContext;
import org.switchyard.internal.ExchangeImpl;
import org.switchyard.component.camel.switchyard.ExchangeMapper;
import org.switchyard.component.camel.common.composer.CamelContextMapper;
import org.switchyard.component.camel.common.handler.OutboundHandler;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

/**
* ExchangeMapperTests
*
* Tests to support ExchangeMapper.
*/
public class ExchangeMapperTests {
    @Before
    public void setUp() throws Exception {
    }
   
    /**
     * Test to confirm fixes for SWITCHYARD-2252, where message headers were unexpectedly
     * changed to lower case in Camel services.
     * @throws Exception exception
     */
    @Test
    public void testMapCamelToSwitchYard() throws Exception {
        org.apache.camel.Exchange exchange = createCamelExchange();
        org.apache.camel.Message in = exchange.getIn();
        exchange.getIn().setBody("bar", java.lang.String.class);
        in.setHeader("CamelFileName", "foobar");
       
        org.switchyard.Exchange syExchange = createSwitchYardExchange();
       
        org.switchyard.Message message = ExchangeMapper.mapCamelToSwitchYard(exchange, syExchange,
                ExchangePhase.IN);
       
        Property property = message.getContext().getProperty("CamelFileName");
        assertTrue(property != null);       
        assertTrue("foobar".equals(property.getValue()));
    }
   
    /**
     * Create a mocked SwitchYard exchange
     * @return exchange
     */
    private org.switchyard.Exchange createSwitchYardExchange() {
        org.switchyard.Exchange switchYardExchange = mock(org.switchyard.Exchange.class);
        Message message = mock(org.switchyard.Message.class);
        when(message.getContext()).thenReturn(new DefaultContext(Scope.MESSAGE));
        when(message.getContent(Integer.class)).thenReturn(10);
        when(switchYardExchange.getMessage()).thenReturn(message);
        when(switchYardExchange.createMessage()).thenReturn(message);
        return switchYardExchange;
    }
   
    /**
     * Create a camel exchange
     * @return exchange
     */
    private Exchange createCamelExchange() {
        DefaultMessage message = new DefaultMessage();
        message.setBody("foobar");
        message.setExchange(new DefaultExchange(new SwitchYardCamelContextImpl(false)));
        return message.getExchange();
    }
   
}
TOP

Related Classes of org.switchyard.component.camel.switchyard.ExchangeMapperTests

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.