Package org.mule.transport

Source Code of org.mule.transport.TrackerWorkListenerTestCase

/*
* Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.transport;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mule.transport.WorkEventMatcher.aRejectedWorkEventFor;
import static org.mule.transport.WorkEventMatcher.aStartedWorkEventFor;
import static org.mule.transport.WorkEventMatcher.anAcceptedWorkEventFor;
import static org.mule.transport.WorkEventMatcher.aCompletedWorkEventFor;
import org.mule.tck.junit4.AbstractMuleTestCase;
import org.mule.tck.size.SmallTest;

import javax.resource.spi.work.Work;
import javax.resource.spi.work.WorkEvent;
import javax.resource.spi.work.WorkException;
import javax.resource.spi.work.WorkListener;

import org.junit.Test;

@SmallTest
public class TrackerWorkListenerTestCase extends AbstractMuleTestCase
{

    public static final int START_DURATION = 10;

    private final Work originalWork = mock(Work.class);
    private final Work work = mock(Work.class);
    private final WorkException workException = new WorkException();
    private final WorkListener delegate = mock(WorkListener.class);
    private final TrackerWorkListener trackerWorkListener = new TrackerWorkListener(work, delegate);

    @Test
    public void notifiesWorkAccepted()
    {
        WorkEvent workEvent = createWorkEvent(WorkEvent.WORK_ACCEPTED);

        trackerWorkListener.workAccepted(workEvent);

        verify(delegate).workAccepted(anAcceptedWorkEventFor(this, work, workException, START_DURATION));
    }

    @Test
    public void notifiesWorkCompleted()
    {
        WorkEvent workEvent = createWorkEvent(WorkEvent.WORK_COMPLETED);

        trackerWorkListener.workCompleted(workEvent);

        verify(delegate).workCompleted(aCompletedWorkEventFor(this, work, workException, START_DURATION));
    }

    @Test
    public void notifiesWorkRejected()
    {
        WorkEvent workEvent = createWorkEvent(WorkEvent.WORK_REJECTED);

        trackerWorkListener.workRejected(workEvent);

        verify(delegate).workRejected(aRejectedWorkEventFor(this, work, workException, START_DURATION));
    }

    @Test
    public void notifiesWorkStarted()
    {
        int workStarted = WorkEvent.WORK_STARTED;

        trackerWorkListener.workStarted(createWorkEvent(workStarted));

        verify(delegate).workStarted(aStartedWorkEventFor(this, work, workException, START_DURATION));
    }

    private WorkEvent createWorkEvent(int type)
    {
        return new WorkEvent(this, type, originalWork, workException, START_DURATION);
    }
}
TOP

Related Classes of org.mule.transport.TrackerWorkListenerTestCase

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.