mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 13:19:52 +01:00
Use AtomicReference in TestEventListener to store event
This commit is contained in:
@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.event.Event;
|
|||||||
import org.briarproject.bramble.api.event.EventListener;
|
import org.briarproject.bramble.api.event.EventListener;
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
import static org.briarproject.briar.test.BriarIntegrationTest.waitForEvents;
|
import static org.briarproject.briar.test.BriarIntegrationTest.waitForEvents;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -38,21 +38,20 @@ public class TestEventListener<T extends Event> implements EventListener {
|
|||||||
|
|
||||||
private final Class<T> clazz;
|
private final Class<T> clazz;
|
||||||
|
|
||||||
@Nullable
|
private final AtomicReference<T> event = new AtomicReference<>();
|
||||||
private T event;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void eventOccurred(Event e) {
|
public void eventOccurred(Event e) {
|
||||||
if (e.getClass().equals(clazz)) {
|
if (e.getClass().equals(clazz)) {
|
||||||
assertNull("Event already received", event);
|
|
||||||
//noinspection unchecked
|
//noinspection unchecked
|
||||||
event = (T) e;
|
assertNull("Event already received", event.getAndSet((T) e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private T assertAndGetEvent() {
|
private T assertAndGetEvent() {
|
||||||
assertNotNull("No event received", event);
|
T t = event.get();
|
||||||
return event;
|
assertNotNull("No event received", t);
|
||||||
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user