package org.tessell.tests.place;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
import org.junit.Test;
import org.tessell.bus.StubEventBus;
import org.tessell.place.DefaultPlaceManager;
import org.tessell.place.PlaceRequest;
import org.tessell.place.events.PlaceChangedEvent;
import org.tessell.place.history.StubHistory;
import org.tessell.place.tokenizer.DefaultTokenizer;
public class DefaultPlaceManagerTest {
final StubEventBus bus = new StubEventBus();
final DefaultTokenizer t = new DefaultTokenizer();
final StubHistory h = new StubHistory();
final DefaultPlaceManager manager = new DefaultPlaceManager(bus, t, h);
@Test
public void requestEventFollowsUpWithAChangeEvent() {
DummyPlace p = new DummyPlace("someplace");
manager.registerPlace(p);
bus.fireEvent(new PlaceRequest("someplace").asEvent());
assertThat(p.called, is(1));
assertThat(bus.getEvent(PlaceChangedEvent.class, 0), not(nullValue()));
}
}