package org.tomighty.mock.bus; import org.tomighty.bus.Bus; import org.tomighty.bus.Subscriber; import org.tomighty.lang.NotImplementedYet; import java.util.ArrayList; import java.util.List; public class MockBus implements Bus { private final List<Object> publishedMessages = new ArrayList<Object>(); @Override public <T> void subscribe(Subscriber<T> subscriber, Class<T> messageType) { throw new NotImplementedYet(); } @Override public <T> void unsubscribe(Subscriber<T> subscriber, Class<T> messageType) { throw new NotImplementedYet(); } @Override public synchronized void publish(Object message) { publishedMessages.add(message); notifyAll(); } public List<Object> getPublishedMessages() { return publishedMessages; } public synchronized List<Object> waitUntilNumberOfMessagesReach(int numberOfMessages) { while(publishedMessages.size() < numberOfMessages) waitQuietly(); return publishedMessages; } private void waitQuietly() { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } }