Package com.springsource.insight.plugin.springcore

Source Code of com.springsource.insight.plugin.springcore.EventPublisingOperationCollectionAspectTest

/**
* Copyright (c) 2009-2011 VMware, Inc. All Rights Reserved.
*
* 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 com.springsource.insight.plugin.springcore;

import il.co.springsource.insight.MyApplicationEventMulticaster;
import il.co.springsource.insight.MyApplicationEventPublisher;
import il.co.springsource.insight.MyEvent;

import org.junit.Test;

import com.springsource.insight.collection.test.OperationCollectionAspectTestSupport;
import com.springsource.insight.intercept.operation.Operation;

/**
*
*/
public class EventPublisingOperationCollectionAspectTest extends OperationCollectionAspectTestSupport {
    public EventPublisingOperationCollectionAspectTest() {
        super();
    }

    @Test
    public void testPublishEvent() {
        MyApplicationEventPublisher publisher = new MyApplicationEventPublisher();
        MyEvent event = new MyEvent("testPublishEvent");
        publisher.publishEvent(event);

        assertPublishOperation("publish");
        assertSame("Mismatched event instance", event, publisher.getLastEvent());
    }

    @Test
    public void testMulticastEvent() {
        MyApplicationEventMulticaster publisher = new MyApplicationEventMulticaster();
        MyEvent event = new MyEvent("testMulticastEvent");
        publisher.multicastEvent(event);

        assertPublishOperation("multicast");
        assertSame("Mismatched event instance", event, publisher.getLastEvent());
    }

    protected Operation assertPublishOperation(String expectedAction) {
        Operation op = getLastEntered();
        assertNotNull(expectedAction + ": no operation", op);
        assertEquals(expectedAction + ": mismatched type", SpringCorePluginRuntimeDescriptor.EVENT_PUBLISH_TYPE, op.getType());

        String compType = op.get(StereotypedSpringBeanMethodOperationCollectionAspectSupport.COMP_TYPE_ATTR, String.class);
        // make sure not intercepted by one of the stereotyped beans aspects
        assertNull(expectedAction + ": Unexpected stereotyped bean method collection: " + compType, compType);
        assertEquals("Mismatched action", expectedAction, op.get(EventPublisingOperationCollectionAspect.ACTION_ATTR, String.class));

        assertEquals(expectedAction + ": mismatched event type",
                MyEvent.class.getName(), op.get(SpringLifecycleMethodOperationCollectionAspect.EVENT_ATTR, String.class));
        return op;
    }

    @Override
    public EventPublisingOperationCollectionAspect getAspect() {
        return EventPublisingOperationCollectionAspect.aspectOf();
    }
}
TOP

Related Classes of com.springsource.insight.plugin.springcore.EventPublisingOperationCollectionAspectTest

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.