Java 11 migraiton: mediator pattern
This commit is contained in:
parent
59e050b20b
commit
93e5570778
@ -34,8 +34,8 @@ public enum Action {
|
|||||||
ENEMY("spotted enemies", "runs for cover"),
|
ENEMY("spotted enemies", "runs for cover"),
|
||||||
NONE("", "");
|
NONE("", "");
|
||||||
|
|
||||||
private String title;
|
private final String title;
|
||||||
private String description;
|
private final String description;
|
||||||
|
|
||||||
Action(String title, String description) {
|
Action(String title, String description) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
|
@ -55,10 +55,10 @@ public class App {
|
|||||||
|
|
||||||
// create party and members
|
// create party and members
|
||||||
Party party = new PartyImpl();
|
Party party = new PartyImpl();
|
||||||
Hobbit hobbit = new Hobbit();
|
var hobbit = new Hobbit();
|
||||||
Wizard wizard = new Wizard();
|
var wizard = new Wizard();
|
||||||
Rogue rogue = new Rogue();
|
var rogue = new Rogue();
|
||||||
Hunter hunter = new Hunter();
|
var hunter = new Hunter();
|
||||||
|
|
||||||
// add party members
|
// add party members
|
||||||
party.addMember(hobbit);
|
party.addMember(hobbit);
|
||||||
|
@ -39,7 +39,7 @@ public class PartyImpl implements Party {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void act(PartyMember actor, Action action) {
|
public void act(PartyMember actor, Action action) {
|
||||||
for (PartyMember member : members) {
|
for (var member : members) {
|
||||||
if (!member.equals(actor)) {
|
if (!member.equals(actor)) {
|
||||||
member.partyAction(action);
|
member.partyAction(action);
|
||||||
}
|
}
|
||||||
|
@ -26,15 +26,12 @@ package com.iluwatar.mediator;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Application test
|
* Application test
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class AppTest {
|
public class AppTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void test() {
|
||||||
String[] args = {};
|
App.main(new String[]{});
|
||||||
App.main(args);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,10 +43,10 @@ public class PartyImplTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testPartyAction() {
|
public void testPartyAction() {
|
||||||
final PartyMember partyMember1 = mock(PartyMember.class);
|
final var partyMember1 = mock(PartyMember.class);
|
||||||
final PartyMember partyMember2 = mock(PartyMember.class);
|
final var partyMember2 = mock(PartyMember.class);
|
||||||
|
|
||||||
final PartyImpl party = new PartyImpl();
|
final var party = new PartyImpl();
|
||||||
party.addMember(partyMember1);
|
party.addMember(partyMember1);
|
||||||
party.addMember(partyMember2);
|
party.addMember(partyMember2);
|
||||||
|
|
||||||
@ -58,7 +58,6 @@ public class PartyImplTest {
|
|||||||
verify(partyMember2).partyAction(Action.GOLD);
|
verify(partyMember2).partyAction(Action.GOLD);
|
||||||
|
|
||||||
verifyNoMoreInteractions(partyMember1, partyMember2);
|
verifyNoMoreInteractions(partyMember1, partyMember2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -23,24 +23,24 @@
|
|||||||
|
|
||||||
package com.iluwatar.mediator;
|
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.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
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
|
* Date: 12/19/15 - 10:13 PM
|
||||||
*
|
*
|
||||||
@ -48,12 +48,12 @@ import static org.mockito.Mockito.verify;
|
|||||||
*/
|
*/
|
||||||
public class PartyMemberTest {
|
public class PartyMemberTest {
|
||||||
|
|
||||||
static Collection<Supplier<PartyMember>[]> dataProvider() {
|
static Stream<Arguments> dataProvider() {
|
||||||
return List.of(
|
return Stream.of(
|
||||||
new Supplier[]{Hobbit::new},
|
Arguments.of((Supplier<PartyMember>) Hobbit::new),
|
||||||
new Supplier[]{Hunter::new},
|
Arguments.of((Supplier<PartyMember>) Hunter::new),
|
||||||
new Supplier[]{Rogue::new},
|
Arguments.of((Supplier<PartyMember>) Rogue::new),
|
||||||
new Supplier[]{Wizard::new}
|
Arguments.of((Supplier<PartyMember>) Wizard::new)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,9 +75,9 @@ public class PartyMemberTest {
|
|||||||
@ParameterizedTest
|
@ParameterizedTest
|
||||||
@MethodSource("dataProvider")
|
@MethodSource("dataProvider")
|
||||||
public void testPartyAction(Supplier<PartyMember> memberSupplier) {
|
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);
|
member.partyAction(action);
|
||||||
assertEquals(member.toString() + " " + action.getDescription(), appender.getLastMessage());
|
assertEquals(member.toString() + " " + action.getDescription(), appender.getLastMessage());
|
||||||
}
|
}
|
||||||
@ -91,16 +91,16 @@ public class PartyMemberTest {
|
|||||||
@ParameterizedTest
|
@ParameterizedTest
|
||||||
@MethodSource("dataProvider")
|
@MethodSource("dataProvider")
|
||||||
public void testAct(Supplier<PartyMember> memberSupplier) {
|
public void testAct(Supplier<PartyMember> memberSupplier) {
|
||||||
final PartyMember member = memberSupplier.get();
|
final var member = memberSupplier.get();
|
||||||
|
|
||||||
member.act(Action.GOLD);
|
member.act(Action.GOLD);
|
||||||
assertEquals(0, appender.getLogSize());
|
assertEquals(0, appender.getLogSize());
|
||||||
|
|
||||||
final Party party = mock(Party.class);
|
final var party = mock(Party.class);
|
||||||
member.joinedParty(party);
|
member.joinedParty(party);
|
||||||
assertEquals(member.toString() + " joins the party", appender.getLastMessage());
|
assertEquals(member.toString() + " joins the party", appender.getLastMessage());
|
||||||
|
|
||||||
for (final Action action : Action.values()) {
|
for (final var action : Action.values()) {
|
||||||
member.act(action);
|
member.act(action);
|
||||||
assertEquals(member.toString() + " " + action.toString(), appender.getLastMessage());
|
assertEquals(member.toString() + " " + action.toString(), appender.getLastMessage());
|
||||||
verify(party).act(member, action);
|
verify(party).act(member, action);
|
||||||
@ -114,16 +114,16 @@ public class PartyMemberTest {
|
|||||||
*/
|
*/
|
||||||
@ParameterizedTest
|
@ParameterizedTest
|
||||||
@MethodSource("dataProvider")
|
@MethodSource("dataProvider")
|
||||||
public void testToString(Supplier<PartyMember> memberSupplier) throws Exception {
|
public void testToString(Supplier<PartyMember> memberSupplier) {
|
||||||
final PartyMember member = memberSupplier.get();
|
final var member = memberSupplier.get();
|
||||||
final Class<? extends PartyMember> memberClass = member.getClass();
|
final var memberClass = member.getClass();
|
||||||
assertEquals(memberClass.getSimpleName(), member.toString());
|
assertEquals(memberClass.getSimpleName(), member.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
|
private static class InMemoryAppender extends AppenderBase<ILoggingEvent> {
|
||||||
private List<ILoggingEvent> log = new LinkedList<>();
|
private final List<ILoggingEvent> log = new LinkedList<>();
|
||||||
|
|
||||||
public InMemoryAppender(Class clazz) {
|
public InMemoryAppender(Class<?> clazz) {
|
||||||
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);
|
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);
|
||||||
start();
|
start();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user