/*******************************************************************************
* Copyright (c) 2008 Olivier Moises
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Olivier Moises- initial API and implementation
*******************************************************************************/
package org.eclipse.wazaabi.engine.core.tests.nonosgi.eventdispatchers;
import static org.junit.Assert.assertEquals;
import org.eclipse.wazaabi.engine.core.tests.nonosgi.eventdispatchers.mockobjects.MockEventDispatcher;
import org.eclipse.wazaabi.engine.core.tests.nonosgi.eventdispatchers.mockobjects.MockEventDispatcherAdapter;
import org.eclipse.wazaabi.engine.core.tests.nonosgi.eventdispatchers.mockobjects.MockEventHandler;
import org.eclipse.wazaabi.engine.edp.adapters.EventHandlerAdapter;
import org.eclipse.wazaabi.engine.edp.tests.EMFUtils;
import org.eclipse.wazaabi.mm.edp.EventDispatcher;
import org.junit.Test;
public class UnitTestEventDispatcherAdapter {
@Test
public void testAdaptEventHandler() {
MockEventDispatcherAdapter eventDispatcherAdapter = new MockEventDispatcherAdapter();
EventDispatcher eventDispatcher = new MockEventDispatcher();
MockEventHandler eventHandler1 = new MockEventHandler();
MockEventHandler eventHandler2 = new MockEventHandler();
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
eventDispatcher.getHandlers().add(eventHandler1);
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
eventDispatcher.eAdapters().add(eventDispatcherAdapter);
assertEquals(1, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
eventDispatcher.getHandlers().add(eventHandler2);
assertEquals(1, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(1, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
}
@Test
public void testUnadaptEventHandler() {
MockEventDispatcherAdapter eventDispatcherAdapter = new MockEventDispatcherAdapter();
EventDispatcher eventDispatcher = new MockEventDispatcher();
MockEventHandler eventHandler1 = new MockEventHandler();
MockEventHandler eventHandler2 = new MockEventHandler();
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
eventDispatcher.getHandlers().add(eventHandler1);
eventDispatcher.getHandlers().add(eventHandler2);
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
eventDispatcher.eAdapters().add(eventDispatcherAdapter);
assertEquals(1, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(1, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
eventDispatcher.getHandlers().remove(eventHandler1);
assertEquals(0, EMFUtils.coundAdaptersOfTypeFor(eventHandler1,
EventHandlerAdapter.class));
assertEquals(1, EMFUtils.coundAdaptersOfTypeFor(eventHandler2,
EventHandlerAdapter.class));
}
@Test
public void testEventHandlerAdded() {
MockEventDispatcherAdapter eventDispatcherAdapter = new MockEventDispatcherAdapter();
EventDispatcher eventDispatcher = new MockEventDispatcher();
MockEventHandler eventHandler1 = new MockEventHandler();
MockEventHandler eventHandler2 = new MockEventHandler();
assertEquals(0,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler1));
eventDispatcher.getHandlers().add(eventHandler1);
assertEquals(0,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler1));
eventDispatcher.eAdapters().add(eventDispatcherAdapter);
assertEquals(1,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler1));
assertEquals(0,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler2));
eventDispatcher.getHandlers().add(eventHandler2);
assertEquals(1,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler2));
}
@Test
public void testEventHandlerRemoved() {
MockEventDispatcherAdapter eventDispatcherAdapter = new MockEventDispatcherAdapter();
EventDispatcher eventDispatcher = new MockEventDispatcher();
MockEventHandler eventHandler1 = new MockEventHandler();
MockEventHandler eventHandler2 = new MockEventHandler();
eventDispatcher.getHandlers().add(eventHandler1);
eventDispatcher.getHandlers().add(eventHandler2);
eventDispatcher.eAdapters().add(eventDispatcherAdapter);
assertEquals(1,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler1));
assertEquals(1,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler2));
eventDispatcher.getHandlers().remove(eventHandler1);
assertEquals(0,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler1));
assertEquals(1,
eventDispatcherAdapter
.getManagedEventHandlerCount(eventHandler2));
}
}