/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.pieshare.service.event; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import junit.framework.Assert; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; /** * * @author vauve_000 */ public class TestEventBaseService { public TestEventBaseService() { } @Before public void setUp() { } @After public void tearDown() { } @Test public void TestRemoveEventListener() throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException { EventBaseService ebs = new EventBaseService(); Field privateField = EventBaseService.class.getDeclaredField("listenerList"); privateField.setAccessible(true); HashMap<Class, List<Object>> map = (HashMap<Class, List<Object>>)privateField.get(ebs); List<Object> eventList = new ArrayList<Object>(); eventList.add(this); map.put(TestEvent.class, eventList); ebs.removeEventListener(TestEvent.class, this); Assert.assertEquals(0, map.get(TestEvent.class).size()); } @Test @EventCallback(eventClass=TestEvent.class) public void TestAddEventListener() throws NoCallbackPointException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { EventBaseService ebs = new EventBaseService(); ebs.addEventListener(TestEvent.class, this); ebs.addEventListener(TestEvent.class, this); Field privateField = EventBaseService.class.getDeclaredField("listenerList"); privateField.setAccessible(true); HashMap<Class, List<Object>> map = (HashMap<Class, List<Object>>)privateField.get(ebs); Assert.assertEquals(2, map.get(TestEvent.class).size()); } @Test(expected = NoCallbackPointException.class) public void TestAddEventListenerWithoutAnnotation() throws NoCallbackPointException { EventBaseService ebs = new EventBaseService(); ebs.addEventListener(TestNotAnnotatedEvent.class, this); Assert.fail(); } }