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:
parent
44ee94041a
commit
53824198db
10 changed files with 93 additions and 6 deletions
5
src/jrummikub/util/Connection.java
Normal file
5
src/jrummikub/util/Connection.java
Normal file
|
@ -0,0 +1,5 @@
|
|||
package jrummikub.util;
|
||||
|
||||
public interface Connection {
|
||||
public void remove();
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Reference in a new issue