// Path: esper-test-utils/src/main/java/org/opencredo/esper/sample/CallRecordingListener.java
// public class CallRecordingListener extends AbstractCallRecorder implements UpdateListener {
// 
//     /*
//      * (non-Javadoc)
//      * 
//      * @see
//      * com.espertech.esper.client.UpdateListener#update(com.espertech.esper.
//      * client.EventBean[], com.espertech.esper.client.EventBean[])
//      */
//     public void update(EventBean[] eventBeans, EventBean[] eventBeans1) {
//         super.incrementCallCounter();
//     }
// 
//     public void update(EventBean[] eventBeans) {
//         super.incrementCallCounter();
//     }
// 
//     /**
//      * Method used when this class is being used as a subscriber as opposed to a
//      * listener.
//      * 
//      * @param event
//      *            The event detected
//      */
//     public void update(SampleEvent event) {
//         super.incrementCallCounter();
//     }
// }
// 
// Path: esper-test-utils/src/main/java/org/opencredo/esper/sample/SampleEvent.java
// public class SampleEvent {
//     private Status status = NEW;
// 
//     public synchronized void setStatus(Status status) {
//         this.status = status;
//     }
// 
//     public Status getStatus() {
//         return this.status;
//     }
// }


import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.opencredo.esper.sample.CallRecordingListener;
import org.opencredo.esper.sample.SampleEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.message.GenericMessage;
import org.springframework.test.context.ContextConfiguration;
/*
 * OpenCredo-Esper - simplifies adopting Esper in Java applications. 
 * Copyright (C) 2010  OpenCredo Ltd.
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program 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 General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

package org.opencredo.esper.integration.config.xml;



@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class WireTapChannelsWithDefaultWireTapPassingDomainObjectTest {

    @Autowired
    @Qualifier("outgoingDomainEvents")
    MessageChannel channel;

    @Autowired
    CallRecordingListener listener;

    @Test
    public void sendADomainMessageAcrossChannelAndAssertThatListenerIsInvoked() {

// Path: esper-test-utils/src/main/java/org/opencredo/esper/sample/CallRecordingListener.java
// public class CallRecordingListener extends AbstractCallRecorder implements UpdateListener {
// 
//     /*
//      * (non-Javadoc)
//      * 
//      * @see
//      * com.espertech.esper.client.UpdateListener#update(com.espertech.esper.
//      * client.EventBean[], com.espertech.esper.client.EventBean[])
//      */
//     public void update(EventBean[] eventBeans, EventBean[] eventBeans1) {
//         super.incrementCallCounter();
//     }
// 
//     public void update(EventBean[] eventBeans) {
//         super.incrementCallCounter();
//     }
// 
//     /**
//      * Method used when this class is being used as a subscriber as opposed to a
//      * listener.
//      * 
//      * @param event
//      *            The event detected
//      */
//     public void update(SampleEvent event) {
//         super.incrementCallCounter();
//     }
// }
// 
// Path: esper-test-utils/src/main/java/org/opencredo/esper/sample/SampleEvent.java
// public class SampleEvent {
//     private Status status = NEW;
// 
//     public synchronized void setStatus(Status status) {
//         this.status = status;
//     }
// 
//     public Status getStatus() {
//         return this.status;
//     }
// }


// Path: esper-si-support/src/test/java/org/opencredo/esper/integration/config/xml/WireTapChannelsWithDefaultWireTapPassingDomainObjectTest.java
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.opencredo.esper.sample.CallRecordingListener;
import org.opencredo.esper.sample.SampleEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.message.GenericMessage;
import org.springframework.test.context.ContextConfiguration;

/*
 * OpenCredo-Esper - simplifies adopting Esper in Java applications. 
 * Copyright (C) 2010  OpenCredo Ltd.
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program 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 General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

package org.opencredo.esper.integration.config.xml;



@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class WireTapChannelsWithDefaultWireTapPassingDomainObjectTest {

    @Autowired
    @Qualifier("outgoingDomainEvents")
    MessageChannel channel;

    @Autowired
    CallRecordingListener listener;

    @Test
    public void sendADomainMessageAcrossChannelAndAssertThatListenerIsInvoked() {

        channel.send(new GenericMessage<SampleEvent>(new SampleEvent()), 500l);