@Override public void registerOnOpenCallback(final PlaceRequest place, final Command callback) { checkNotNull("place", place); checkNotNull("callback", callback); List<Command> callbacks = getOnOpenCallbacks(place); if (callbacks == null) { callbacks = new ArrayList<>(); this.onOpenCallbacks.put(place, callbacks); } callbacks.add(callback); }
@Test public void testAddOnOpenCallbacks() { final Command onOpenCallback1 = mock(Command.class); final Command onOpenCallback2 = mock(Command.class); final DefaultPlaceRequest myPlace = new DefaultPlaceRequest("my-place"); placeManager.registerOnOpenCallback(myPlace, onOpenCallback1); final List<Command> onOpenCallbacks1 = placeManager.getOnOpenCallbacks(myPlace); assertEquals(1, onOpenCallbacks1.size()); assertSame(onOpenCallback1, onOpenCallbacks1.get(0)); placeManager.registerOnOpenCallback(myPlace, onOpenCallback2); final List<Command> onOpenCallbacks2 = placeManager.getOnOpenCallbacks(myPlace); assertEquals(2, onOpenCallbacks2.size()); assertSame(onOpenCallback1, onOpenCallbacks2.get(0)); assertSame(onOpenCallback2, onOpenCallbacks2.get(1)); final DefaultPlaceRequest myOtherPlace = new DefaultPlaceRequest("my-other-place"); final List<Command> onOpenCallbacks3 = placeManager.getOnOpenCallbacks(myOtherPlace); assertNull(onOpenCallbacks3); }
@Test public void testAddOnOpenCallbacks() { final Command onOpenCallback1 = mock(Command.class); final Command onOpenCallback2 = mock(Command.class); final DefaultPlaceRequest myPlace = new DefaultPlaceRequest("my-place"); placeManager.registerOnOpenCallback(myPlace, onOpenCallback1); final List<Command> onOpenCallbacks1 = placeManager.getOnOpenCallbacks(myPlace); assertEquals(1, onOpenCallbacks1.size()); assertSame(onOpenCallback1, onOpenCallbacks1.get(0)); placeManager.registerOnOpenCallback(myPlace, onOpenCallback2); final List<Command> onOpenCallbacks2 = placeManager.getOnOpenCallbacks(myPlace); assertEquals(2, onOpenCallbacks2.size()); assertSame(onOpenCallback1, onOpenCallbacks2.get(0)); assertSame(onOpenCallback2, onOpenCallbacks2.get(1)); final DefaultPlaceRequest myOtherPlace = new DefaultPlaceRequest("my-other-place"); final List<Command> onOpenCallbacks3 = placeManager.getOnOpenCallbacks(myOtherPlace); assertNull(onOpenCallbacks3); }