blob: ff10b505170b115e123f3a31522305b090b1922c [file] [log] [blame]
tom96dfcab2014-08-28 09:26:03 -07001package org.onlab.onos.event;
2
3import org.junit.Before;
4import org.junit.Test;
5
6import static org.junit.Assert.*;
7
8/**
9 * Tests of the default event sink registry.
10 */
11public class DefaultEventSinkRegistryTest {
12
13 private DefaultEventSinkRegistry registry;
14
15 private static class FooEvent extends TestEvent {
16 public FooEvent(String subject) { super(Type.FOO, subject); }
17 }
18
19 private static class BarEvent extends TestEvent {
20 public BarEvent(String subject) { super(Type.BAR, subject); }
21 }
22
23 private static class FooSink implements EventSink<FooEvent> {
24 @Override public void process(FooEvent event) {}
25 }
26
27 private static class BarSink implements EventSink<BarEvent> {
28 @Override public void process(BarEvent event) {}
29 }
30
31 @Before
32 public void setUp() {
33 registry = new DefaultEventSinkRegistry();
34 }
35
36 @Test
37 public void basics() {
38 FooSink fooSink = new FooSink();
39 BarSink barSink = new BarSink();
40 registry.addSink(FooEvent.class, fooSink);
41 registry.addSink(BarEvent.class, barSink);
42
43 assertEquals("incorrect sink count", 2, registry.getSinks().size());
44 assertEquals("incorrect sink", fooSink, registry.getSink(FooEvent.class));
45 assertEquals("incorrect sink", barSink, registry.getSink(BarEvent.class));
46
47 registry.removeSink(FooEvent.class);
48 assertNull("incorrect sink", registry.getSink(FooEvent.class));
49 assertEquals("incorrect sink", barSink, registry.getSink(BarEvent.class));
50
51 }
52}