Package org.milyn.smooks.camel.routing

Source Code of org.milyn.smooks.camel.routing.BeanRouterObserverTest

/*
* Milyn - Copyright (C) 2006 - 2010
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License (version 2.1) as published
* by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE.
*
* See the GNU Lesser General Public License for more details:
* http://www.gnu.org/licenses/lgpl.txt
*/
package org.milyn.smooks.camel.routing;

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

import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Before;
import org.junit.Test;
import org.milyn.container.MockExecutionContext;
import org.milyn.javabean.lifecycle.BeanContextLifecycleEvent;
import org.milyn.javabean.lifecycle.BeanLifecycle;
import org.milyn.javabean.repository.BeanId;

/**
* Unit test for {@link BeanRouterObserver}
*
* @author Daniel Bevenius
*
*/
public class BeanRouterObserverTest extends CamelTestSupport
{
    private static final String ENDPOINT_URI = "mock://beanRouterUnitTest";
    private MockEndpoint endpoint;
   
    @Before
    public void setup() throws Exception
    {
        endpoint = createAndConfigureMockEndpoint(ENDPOINT_URI);
    }
   
    @Test
    public void onBeanLifecycleEventCreated() throws Exception
    {
        final String sampleBean = "testOrder";
        final String beanId = "orderId";
        final BeanRouter beanRouter = new BeanRouter(context);

        beanRouter.setBeanId(beanId);
        beanRouter.setToEndpoint(ENDPOINT_URI);
        beanRouter.initialize();

        final BeanRouterObserver beanRouterObserver = new BeanRouterObserver(beanRouter, beanId);
        final MockExecutionContext smooksExecutionContext = new MockExecutionContext();
        final BeanContextLifecycleEvent event = mock(BeanContextLifecycleEvent.class);
       
        when(event.getBeanId()).thenReturn(new BeanId(null, 0, beanId));
        when(event.getLifecycle()).thenReturn(BeanLifecycle.END_FRAGMENT);
        when(event.getBean()).thenReturn(sampleBean);
        when(event.getExecutionContext()).thenReturn(smooksExecutionContext);
   
        endpoint.setExpectedMessageCount(1);
        beanRouterObserver.onBeanLifecycleEvent(event);
        endpoint.assertIsSatisfied();
        endpoint.expectedBodiesReceived(sampleBean);
    }
   
    private MockEndpoint createAndConfigureMockEndpoint(String endpointUri) throws Exception
    {
        MockEndpoint mockEndpoint = new MockEndpoint(endpointUri);
        mockEndpoint.setCamelContext(context);
        context.addEndpoint(endpointUri, mockEndpoint);
        return mockEndpoint;
    }

}
TOP

Related Classes of org.milyn.smooks.camel.routing.BeanRouterObserverTest

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.