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>();
|
private HashSet<IListener> listeners = new HashSet<IListener>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(IListener listener) {
|
public Connection add(IListener listener) {
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -12,8 +12,9 @@ public class Event1<T> implements IEvent1<T> {
|
||||||
private HashSet<IListener1<T>> listeners = new HashSet<IListener1<T>>();
|
private HashSet<IListener1<T>> listeners = new HashSet<IListener1<T>>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(IListener1<T> listener) {
|
public Connection add(IListener1<T> listener) {
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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>>();
|
private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(IListener2<T1, T2> listener) {
|
public Connection add(IListener2<T1, T2> listener) {
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@ public interface IEvent {
|
||||||
* @param listener
|
* @param listener
|
||||||
* target listener
|
* target listener
|
||||||
*/
|
*/
|
||||||
public void add(IListener listener);
|
public Connection add(IListener listener);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop publishing events to a given listener
|
* Stop publishing events to a given listener
|
||||||
|
|
|
@ -13,7 +13,7 @@ public interface IEvent1<T> {
|
||||||
* @param listener
|
* @param listener
|
||||||
* target listener
|
* target listener
|
||||||
*/
|
*/
|
||||||
public void add(IListener1<T> listener);
|
public Connection add(IListener1<T> listener);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop publishing events to a given listener
|
* Stop publishing events to a given listener
|
||||||
|
|
|
@ -15,7 +15,7 @@ public interface IEvent2<T1, T2> {
|
||||||
* @param listener
|
* @param listener
|
||||||
* target listener
|
* target listener
|
||||||
*/
|
*/
|
||||||
public void add(IListener2<T1, T2> listener);
|
public Connection add(IListener2<T1, T2> listener);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop publishing events to a given listener
|
* Stop publishing events to a given listener
|
||||||
|
|
|
@ -80,4 +80,29 @@ public class Event1Test {
|
||||||
testEvent.emit(10);
|
testEvent.emit(10);
|
||||||
assertEquals(fired, 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(fired, 10);
|
||||||
assertEquals(fired2, 20);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,4 +80,29 @@ public class EventTest {
|
||||||
assertTrue(fired);
|
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