Added tests for Connection

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@150 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Jannis Harder 2011-05-05 19:49:59 +02:00
parent 44ee94041a
commit 53824198db
10 changed files with 93 additions and 6 deletions

View file

@ -0,0 +1,5 @@
package jrummikub.util;
public interface Connection {
public void remove();
}

View file

@ -7,8 +7,9 @@ public class Event implements IEvent {
private HashSet<IListener> listeners = new HashSet<IListener>();
@Override
public void add(IListener listener) {
public Connection add(IListener listener) {
listeners.add(listener);
return null;
}
@Override

View file

@ -12,8 +12,9 @@ public class Event1<T> implements IEvent1<T> {
private HashSet<IListener1<T>> listeners = new HashSet<IListener1<T>>();
@Override
public void add(IListener1<T> listener) {
public Connection add(IListener1<T> listener) {
listeners.add(listener);
return null;
}
@Override

View file

@ -14,8 +14,9 @@ public class Event2<T1, T2> implements IEvent2<T1, T2> {
private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
@Override
public void add(IListener2<T1, T2> listener) {
public Connection add(IListener2<T1, T2> listener) {
listeners.add(listener);
return null;
}
@Override

View file

@ -8,7 +8,7 @@ public interface IEvent {
* @param listener
* target listener
*/
public void add(IListener listener);
public Connection add(IListener listener);
/**
* Stop publishing events to a given listener

View file

@ -13,7 +13,7 @@ public interface IEvent1<T> {
* @param listener
* target listener
*/
public void add(IListener1<T> listener);
public Connection add(IListener1<T> listener);
/**
* Stop publishing events to a given listener

View file

@ -15,7 +15,7 @@ public interface IEvent2<T1, T2> {
* @param listener
* target listener
*/
public void add(IListener2<T1, T2> listener);
public Connection add(IListener2<T1, T2> listener);
/**
* Stop publishing events to a given listener

View file

@ -80,4 +80,29 @@ public class Event1Test {
testEvent.emit(10);
assertEquals(fired, 10);
}
@Test
public void removeListenerByConnection() {
fired = 0;
Event1<Integer> testEvent = new Event1<Integer>();
testEvent.add(new IListener1<Integer>() {
@Override
public void handle(Integer n) {
fired += n;
}
});
IListener1<Integer> rem = new IListener1<Integer>() {
@Override
public void handle(Integer n) {
fail();
}
};
Connection connection = testEvent.add(rem);
connection.remove();
testEvent.emit(10);
assertEquals(fired, 10);
}
}

View file

@ -93,4 +93,33 @@ public class Event2Test {
assertEquals(fired, 10);
assertEquals(fired2, 20);
}
@Test
public void removeListenerByConnection() {
fired = 0;
fired2 = 0;
Event2<Integer, Integer> testEvent = new Event2<Integer, Integer>();
testEvent.add(new IListener2<Integer, Integer>() {
@Override
public void handle(Integer n, Integer m) {
fired += n;
fired2 += m;
}
});
IListener2<Integer, Integer> rem = new IListener2<Integer, Integer>() {
@Override
public void handle(Integer n, Integer m) {
fail();
}
};
assertEquals(fired, 0);
assertEquals(fired2, 0);
Connection connection = testEvent.add(rem);
connection.remove();
testEvent.emit(10, 20);
assertEquals(fired, 10);
assertEquals(fired2, 20);
}
}

View file

@ -79,5 +79,30 @@ public class EventTest {
testEvent.emit();
assertTrue(fired);
}
@Test
public void removeListenerByConnection() {
fired = false;
Event testEvent = new Event();
testEvent.add(new IListener() {
@Override
public void handle() {
fired = true;
}
});
IListener rem = new IListener() {
@Override
public void handle() {
fail();
}
};
Connection connection = testEvent.add(rem);
connection.remove();
testEvent.emit();
assertTrue(fired);
}
}