Java 11 migrate 7 remaining f (#1115)

* Moves facade to Java 11

* Moves factory-kit to Java 11

* Moves factory-method to Java 11

* Moves feature-toggle to Java 11

* Moves fluentinterface to Java 11

* Moves flux to Java 11

* Moves flyweight to Java 11

* Moves front-controller to Java 11

* Uses stream properly

* Resolves issues with ci
This commit is contained in:
Anurag Agarwal
2019-12-22 18:11:19 +05:30
committed by Ilkka Seppälä
parent f835d3d516
commit 670c4e43f3
55 changed files with 377 additions and 429 deletions

View File

@ -54,13 +54,13 @@ public class App {
public static void main(String[] args) {
// initialize and wire the system
MenuStore menuStore = new MenuStore();
var menuStore = new MenuStore();
Dispatcher.getInstance().registerStore(menuStore);
ContentStore contentStore = new ContentStore();
var contentStore = new ContentStore();
Dispatcher.getInstance().registerStore(contentStore);
MenuView menuView = new MenuView();
var menuView = new MenuView();
menuStore.registerView(menuView);
ContentView contentView = new ContentView();
var contentView = new ContentView();
contentStore.registerView(contentView);
// render initial view

View File

@ -70,6 +70,6 @@ public final class Dispatcher {
}
private void dispatchAction(Action action) {
stores.stream().forEach(store -> store.onAction(action));
stores.forEach(store -> store.onAction(action));
}
}

View File

@ -38,7 +38,7 @@ public class ContentStore extends Store {
@Override
public void onAction(Action action) {
if (action.getType().equals(ActionType.CONTENT_CHANGED)) {
ContentAction contentAction = (ContentAction) action;
var contentAction = (ContentAction) action;
content = contentAction.getContent();
notifyChange();
}

View File

@ -38,7 +38,7 @@ public class MenuStore extends Store {
@Override
public void onAction(Action action) {
if (action.getType().equals(ActionType.MENU_ITEM_SELECTED)) {
MenuAction menuAction = (MenuAction) action;
var menuAction = (MenuAction) action;
selected = menuAction.getMenuItem();
notifyChange();
}

View File

@ -42,6 +42,6 @@ public abstract class Store {
}
protected void notifyChange() {
views.stream().forEach(view -> view.storeChanged(this));
views.forEach(view -> view.storeChanged(this));
}
}

View File

@ -40,7 +40,7 @@ public class ContentView implements View {
@Override
public void storeChanged(Store store) {
ContentStore contentStore = (ContentStore) store;
var contentStore = (ContentStore) store;
content = contentStore.getContent();
render();
}

View File

@ -41,14 +41,14 @@ public class MenuView implements View {
@Override
public void storeChanged(Store store) {
MenuStore menuStore = (MenuStore) store;
var menuStore = (MenuStore) store;
selected = menuStore.getSelected();
render();
}
@Override
public void render() {
for (MenuItem item : MenuItem.values()) {
for (var item : MenuItem.values()) {
if (selected.equals(item)) {
LOGGER.info("* {}", item);
} else {

View File

@ -23,11 +23,11 @@
package com.iluwatar.flux.action;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:11 PM
*
@ -36,9 +36,9 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
public class ContentTest {
@Test
public void testToString() throws Exception {
for (final Content content : Content.values()) {
final String toString = content.toString();
public void testToString() {
for (final var content : Content.values()) {
final var toString = content.toString();
assertNotNull(toString);
assertFalse(toString.trim().isEmpty());
}

View File

@ -23,11 +23,11 @@
package com.iluwatar.flux.action;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:15 PM
*
@ -36,9 +36,9 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
public class MenuItemTest {
@Test
public void testToString() throws Exception {
for (final MenuItem menuItem : MenuItem.values()) {
final String toString = menuItem.toString();
public void testToString() {
for (final var menuItem : MenuItem.values()) {
final var toString = menuItem.toString();
assertNotNull(toString);
assertFalse(toString.trim().isEmpty());
}

View File

@ -26,15 +26,12 @@ package com.iluwatar.flux.app;
import org.junit.jupiter.api.Test;
/**
*
* Application test
*
*/
public class AppTest {
@Test
public void test() {
String[] args = {};
App.main(args);
App.main(new String[]{});
}
}

View File

@ -23,22 +23,6 @@
package com.iluwatar.flux.dispatcher;
import com.iluwatar.flux.action.Action;
import com.iluwatar.flux.action.ActionType;
import com.iluwatar.flux.action.Content;
import com.iluwatar.flux.action.ContentAction;
import com.iluwatar.flux.action.MenuAction;
import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.store.Store;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertSame;
@ -47,6 +31,19 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import com.iluwatar.flux.action.Action;
import com.iluwatar.flux.action.ActionType;
import com.iluwatar.flux.action.Content;
import com.iluwatar.flux.action.ContentAction;
import com.iluwatar.flux.action.MenuAction;
import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.store.Store;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
/**
* Date: 12/12/15 - 8:22 PM
*
@ -61,53 +58,56 @@ public class DispatcherTest {
*/
@BeforeEach
public void setUp() throws Exception {
final Constructor<Dispatcher> constructor;
constructor = Dispatcher.class.getDeclaredConstructor();
final var constructor = Dispatcher.class.getDeclaredConstructor();
constructor.setAccessible(true);
final Field field = Dispatcher.class.getDeclaredField("instance");
final var field = Dispatcher.class.getDeclaredField("instance");
field.setAccessible(true);
field.set(Dispatcher.getInstance(), constructor.newInstance());
}
@Test
public void testGetInstance() throws Exception {
public void testGetInstance() {
assertNotNull(Dispatcher.getInstance());
assertSame(Dispatcher.getInstance(), Dispatcher.getInstance());
}
@Test
public void testMenuItemSelected() throws Exception {
final Dispatcher dispatcher = Dispatcher.getInstance();
public void testMenuItemSelected() {
final var dispatcher = Dispatcher.getInstance();
final Store store = mock(Store.class);
final var 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);
final var 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 var actions = actionCaptor.getAllValues();
final var 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());
final var 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(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());
assertEquals(1, contentActions.stream().map(ContentAction::getContent)
.filter(Content.PRODUCTS::equals).count());
assertEquals(1, contentActions.stream().map(ContentAction::getContent)
.filter(Content.COMPANY::equals).count());
}

View File

@ -23,6 +23,14 @@
package com.iluwatar.flux.store;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyZeroInteractions;
import com.iluwatar.flux.action.Content;
import com.iluwatar.flux.action.ContentAction;
import com.iluwatar.flux.action.MenuAction;
@ -30,14 +38,6 @@ import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.view.View;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
/**
* Date: 12/12/15 - 10:18 PM
*
@ -46,10 +46,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
public class ContentStoreTest {
@Test
public void testOnAction() throws Exception {
final ContentStore contentStore = new ContentStore();
public void testOnAction() {
final var contentStore = new ContentStore();
final View view = mock(View.class);
final var view = mock(View.class);
contentStore.registerView(view);
verifyZeroInteractions(view);

View File

@ -23,6 +23,14 @@
package com.iluwatar.flux.store;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyZeroInteractions;
import com.iluwatar.flux.action.Content;
import com.iluwatar.flux.action.ContentAction;
import com.iluwatar.flux.action.MenuAction;
@ -30,14 +38,6 @@ import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.view.View;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
/**
* Date: 12/12/15 - 10:18 PM
*
@ -46,10 +46,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
public class MenuStoreTest {
@Test
public void testOnAction() throws Exception {
final MenuStore menuStore = new MenuStore();
public void testOnAction() {
final var menuStore = new MenuStore();
final View view = mock(View.class);
final var view = mock(View.class);
menuStore.registerView(view);
verifyZeroInteractions(view);

View File

@ -23,15 +23,15 @@
package com.iluwatar.flux.view;
import com.iluwatar.flux.action.Content;
import com.iluwatar.flux.store.ContentStore;
import org.junit.jupiter.api.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import com.iluwatar.flux.action.Content;
import com.iluwatar.flux.store.ContentStore;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:31 PM
@ -41,11 +41,11 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
public class ContentViewTest {
@Test
public void testStoreChanged() throws Exception {
final ContentStore store = mock(ContentStore.class);
public void testStoreChanged() {
final var store = mock(ContentStore.class);
when(store.getContent()).thenReturn(Content.PRODUCTS);
final ContentView view = new ContentView();
final var view = new ContentView();
view.storeChanged(store);
verify(store, times(1)).getContent();

View File

@ -23,13 +23,6 @@
package com.iluwatar.flux.view;
import com.iluwatar.flux.action.Action;
import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.dispatcher.Dispatcher;
import com.iluwatar.flux.store.MenuStore;
import com.iluwatar.flux.store.Store;
import org.junit.jupiter.api.Test;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@ -37,6 +30,13 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import com.iluwatar.flux.action.Action;
import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.dispatcher.Dispatcher;
import com.iluwatar.flux.store.MenuStore;
import com.iluwatar.flux.store.Store;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:31 PM
*
@ -45,11 +45,11 @@ import static org.mockito.Mockito.when;
public class MenuViewTest {
@Test
public void testStoreChanged() throws Exception {
final MenuStore store = mock(MenuStore.class);
public void testStoreChanged() {
final var store = mock(MenuStore.class);
when(store.getSelected()).thenReturn(MenuItem.HOME);
final MenuView view = new MenuView();
final var view = new MenuView();
view.storeChanged(store);
verify(store, times(1)).getSelected();
@ -57,11 +57,11 @@ public class MenuViewTest {
}
@Test
public void testItemClicked() throws Exception {
final Store store = mock(Store.class);
public void testItemClicked() {
final var store = mock(Store.class);
Dispatcher.getInstance().registerStore(store);
final MenuView view = new MenuView();
final var view = new MenuView();
view.itemClicked(MenuItem.PRODUCTS);
// We should receive a menu click action and a content changed action