Search in sources :

Example 1 with Store

use of com.iluwatar.flux.store.Store in project java-design-patterns by iluwatar.

the class MenuViewTest method testItemClicked.

@Test
public void testItemClicked() throws Exception {
    final Store store = mock(Store.class);
    Dispatcher.getInstance().registerStore(store);
    final MenuView view = new MenuView();
    view.itemClicked(MenuItem.PRODUCTS);
    // We should receive a menu click action and a content changed action
    verify(store, times(2)).onAction(any(Action.class));
}
Also used : Action(com.iluwatar.flux.action.Action) MenuStore(com.iluwatar.flux.store.MenuStore) Store(com.iluwatar.flux.store.Store) Test(org.junit.Test)

Example 2 with Store

use of com.iluwatar.flux.store.Store in project java-design-patterns by iluwatar.

the class DispatcherTest method testMenuItemSelected.

@Test
public void testMenuItemSelected() throws Exception {
    final Dispatcher dispatcher = Dispatcher.getInstance();
    final Store store = mock(Store.class);
    dispatcher.registerStore(store);
    dispatcher.menuItemSelected(MenuItem.HOME);
    dispatcher.menuItemSelected(MenuItem.COMPANY);
    // We expect 4 events, 2 menu selections and 2 content change actions
    final ArgumentCaptor<Action> actionCaptor = ArgumentCaptor.forClass(Action.class);
    verify(store, times(4)).onAction(actionCaptor.capture());
    verifyNoMoreInteractions(store);
    final List<Action> actions = actionCaptor.getAllValues();
    final List<MenuAction> menuActions = actions.stream().filter(a -> a.getType().equals(ActionType.MENU_ITEM_SELECTED)).map(a -> (MenuAction) a).collect(Collectors.toList());
    final List<ContentAction> contentActions = actions.stream().filter(a -> a.getType().equals(ActionType.CONTENT_CHANGED)).map(a -> (ContentAction) a).collect(Collectors.toList());
    assertEquals(2, menuActions.size());
    assertEquals(1, menuActions.stream().map(MenuAction::getMenuItem).filter(MenuItem.HOME::equals).count());
    assertEquals(1, menuActions.stream().map(MenuAction::getMenuItem).filter(MenuItem.COMPANY::equals).count());
    assertEquals(2, contentActions.size());
    assertEquals(1, contentActions.stream().map(ContentAction::getContent).filter(Content.PRODUCTS::equals).count());
    assertEquals(1, contentActions.stream().map(ContentAction::getContent).filter(Content.COMPANY::equals).count());
}
Also used : MenuAction(com.iluwatar.flux.action.MenuAction) MenuItem(com.iluwatar.flux.action.MenuItem) Assert.assertNotNull(org.junit.Assert.assertNotNull) Test(org.junit.Test) Mockito.times(org.mockito.Mockito.times) Field(java.lang.reflect.Field) Constructor(java.lang.reflect.Constructor) Collectors(java.util.stream.Collectors) Content(com.iluwatar.flux.action.Content) Mockito.verify(org.mockito.Mockito.verify) Assert.assertSame(org.junit.Assert.assertSame) List(java.util.List) ArgumentCaptor(org.mockito.ArgumentCaptor) Mockito.verifyNoMoreInteractions(org.mockito.Mockito.verifyNoMoreInteractions) ActionType(com.iluwatar.flux.action.ActionType) Store(com.iluwatar.flux.store.Store) ContentAction(com.iluwatar.flux.action.ContentAction) Action(com.iluwatar.flux.action.Action) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) Mockito.mock(org.mockito.Mockito.mock) MenuAction(com.iluwatar.flux.action.MenuAction) ContentAction(com.iluwatar.flux.action.ContentAction) Action(com.iluwatar.flux.action.Action) Store(com.iluwatar.flux.store.Store) ContentAction(com.iluwatar.flux.action.ContentAction) MenuAction(com.iluwatar.flux.action.MenuAction) Test(org.junit.Test)

Aggregations

Action (com.iluwatar.flux.action.Action)2 Store (com.iluwatar.flux.store.Store)2 Test (org.junit.Test)2 ActionType (com.iluwatar.flux.action.ActionType)1 Content (com.iluwatar.flux.action.Content)1 ContentAction (com.iluwatar.flux.action.ContentAction)1 MenuAction (com.iluwatar.flux.action.MenuAction)1 MenuItem (com.iluwatar.flux.action.MenuItem)1 MenuStore (com.iluwatar.flux.store.MenuStore)1 Constructor (java.lang.reflect.Constructor)1 Field (java.lang.reflect.Field)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 Assert.assertEquals (org.junit.Assert.assertEquals)1 Assert.assertNotNull (org.junit.Assert.assertNotNull)1 Assert.assertSame (org.junit.Assert.assertSame)1 Before (org.junit.Before)1 ArgumentCaptor (org.mockito.ArgumentCaptor)1 Mockito.mock (org.mockito.Mockito.mock)1 Mockito.times (org.mockito.Mockito.times)1