Java 11 migraiton: mediator pattern

This commit is contained in:
Anurag Agarwal 2020-04-12 22:19:11 +00:00
parent 59e050b20b
commit 93e5570778
No known key found for this signature in database
GPG Key ID: CF5E14552DA23F13
6 changed files with 42 additions and 46 deletions

View File

@ -34,8 +34,8 @@ public enum Action {
ENEMY("spotted enemies", "runs for cover"),
NONE("", "");
private String title;
private String description;
private final String title;
private final String description;
Action(String title, String description) {
this.title = title;

View File

@ -55,10 +55,10 @@ public class App {
// create party and members
Party party = new PartyImpl();
Hobbit hobbit = new Hobbit();
Wizard wizard = new Wizard();
Rogue rogue = new Rogue();
Hunter hunter = new Hunter();
var hobbit = new Hobbit();
var wizard = new Wizard();
var rogue = new Rogue();
var hunter = new Hunter();
// add party members
party.addMember(hobbit);

View File

@ -39,7 +39,7 @@ public class PartyImpl implements Party {
@Override
public void act(PartyMember actor, Action action) {
for (PartyMember member : members) {
for (var member : members) {
if (!member.equals(actor)) {
member.partyAction(action);
}

View File

@ -26,15 +26,12 @@ package com.iluwatar.mediator;
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

@ -43,10 +43,10 @@ public class PartyImplTest {
*/
@Test
public void testPartyAction() {
final PartyMember partyMember1 = mock(PartyMember.class);
final PartyMember partyMember2 = mock(PartyMember.class);
final var partyMember1 = mock(PartyMember.class);
final var partyMember2 = mock(PartyMember.class);
final PartyImpl party = new PartyImpl();
final var party = new PartyImpl();
party.addMember(partyMember1);
party.addMember(partyMember2);
@ -58,7 +58,6 @@ public class PartyImplTest {
verify(partyMember2).partyAction(Action.GOLD);
verifyNoMoreInteractions(partyMember1, partyMember2);
}
}

View File

@ -23,24 +23,24 @@
package com.iluwatar.mediator;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.LoggerFactory;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Supplier;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Stream;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.LoggerFactory;
/**
* Date: 12/19/15 - 10:13 PM
*
@ -48,12 +48,12 @@ import static org.mockito.Mockito.verify;
*/
public class PartyMemberTest {
static Collection<Supplier<PartyMember>[]> dataProvider() {
return List.of(
new Supplier[]{Hobbit::new},
new Supplier[]{Hunter::new},
new Supplier[]{Rogue::new},
new Supplier[]{Wizard::new}
static Stream<Arguments> dataProvider() {
return Stream.of(
Arguments.of((Supplier<PartyMember>) Hobbit::new),
Arguments.of((Supplier<PartyMember>) Hunter::new),
Arguments.of((Supplier<PartyMember>) Rogue::new),
Arguments.of((Supplier<PartyMember>) Wizard::new)
);
}
@ -75,9 +75,9 @@ public class PartyMemberTest {
@ParameterizedTest
@MethodSource("dataProvider")
public void testPartyAction(Supplier<PartyMember> memberSupplier) {
final PartyMember member = memberSupplier.get();
final var member = memberSupplier.get();
for (final Action action : Action.values()) {
for (final var action : Action.values()) {
member.partyAction(action);
assertEquals(member.toString() + " " + action.getDescription(), appender.getLastMessage());
}
@ -91,16 +91,16 @@ public class PartyMemberTest {
@ParameterizedTest
@MethodSource("dataProvider")
public void testAct(Supplier<PartyMember> memberSupplier) {
final PartyMember member = memberSupplier.get();
final var member = memberSupplier.get();
member.act(Action.GOLD);
assertEquals(0, appender.getLogSize());
final Party party = mock(Party.class);
final var party = mock(Party.class);
member.joinedParty(party);
assertEquals(member.toString() + " joins the party", appender.getLastMessage());
for (final Action action : Action.values()) {
for (final var action : Action.values()) {
member.act(action);
assertEquals(member.toString() + " " + action.toString(), appender.getLastMessage());
verify(party).act(member, action);
@ -114,16 +114,16 @@ public class PartyMemberTest {
*/
@ParameterizedTest
@MethodSource("dataProvider")
public void testToString(Supplier<PartyMember> memberSupplier) throws Exception {
final PartyMember member = memberSupplier.get();
final Class<? extends PartyMember> memberClass = member.getClass();
public void testToString(Supplier<PartyMember> memberSupplier) {
final var member = memberSupplier.get();
final var memberClass = member.getClass();
assertEquals(memberClass.getSimpleName(), member.toString());
}
private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>();
private static class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender(Class clazz) {
public InMemoryAppender(Class<?> clazz) {
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);
start();
}