|
|
|
@ -25,11 +25,10 @@ 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.After;
|
|
|
|
|
import org.junit.Before;
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
import org.junit.runner.RunWith;
|
|
|
|
|
import org.junit.runners.Parameterized;
|
|
|
|
|
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.Arrays;
|
|
|
|
@ -38,7 +37,7 @@ import java.util.LinkedList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.function.Supplier;
|
|
|
|
|
|
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
|
|
|
|
|
@ -47,11 +46,9 @@ import static org.mockito.Mockito.verify;
|
|
|
|
|
*
|
|
|
|
|
* @author Jeroen Meulemeester
|
|
|
|
|
*/
|
|
|
|
|
@RunWith(Parameterized.class)
|
|
|
|
|
public class PartyMemberTest {
|
|
|
|
|
|
|
|
|
|
@Parameterized.Parameters
|
|
|
|
|
public static Collection<Supplier<PartyMember>[]> data() {
|
|
|
|
|
static Collection<Supplier<PartyMember>[]> dataProvider() {
|
|
|
|
|
return Arrays.asList(
|
|
|
|
|
new Supplier[]{Hobbit::new},
|
|
|
|
|
new Supplier[]{Hunter::new},
|
|
|
|
@ -60,28 +57,14 @@ public class PartyMemberTest {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The factory, used to create a new instance of the tested party member
|
|
|
|
|
*/
|
|
|
|
|
private final Supplier<PartyMember> memberSupplier;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Create a new test instance, using the given {@link PartyMember} factory
|
|
|
|
|
*
|
|
|
|
|
* @param memberSupplier The party member factory
|
|
|
|
|
*/
|
|
|
|
|
public PartyMemberTest(final Supplier<PartyMember> memberSupplier) {
|
|
|
|
|
this.memberSupplier = memberSupplier;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private InMemoryAppender appender;
|
|
|
|
|
|
|
|
|
|
@Before
|
|
|
|
|
@BeforeEach
|
|
|
|
|
public void setUp() {
|
|
|
|
|
appender = new InMemoryAppender(PartyMemberBase.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@After
|
|
|
|
|
@AfterEach
|
|
|
|
|
public void tearDown() {
|
|
|
|
|
appender.stop();
|
|
|
|
|
}
|
|
|
|
@ -89,9 +72,10 @@ public class PartyMemberTest {
|
|
|
|
|
/**
|
|
|
|
|
* Verify if a party action triggers the correct output to the std-Out
|
|
|
|
|
*/
|
|
|
|
|
@Test
|
|
|
|
|
public void testPartyAction() {
|
|
|
|
|
final PartyMember member = this.memberSupplier.get();
|
|
|
|
|
@ParameterizedTest
|
|
|
|
|
@MethodSource("dataProvider")
|
|
|
|
|
public void testPartyAction(Supplier<PartyMember> memberSupplier) {
|
|
|
|
|
final PartyMember member = memberSupplier.get();
|
|
|
|
|
|
|
|
|
|
for (final Action action : Action.values()) {
|
|
|
|
|
member.partyAction(action);
|
|
|
|
@ -104,9 +88,10 @@ public class PartyMemberTest {
|
|
|
|
|
/**
|
|
|
|
|
* Verify if a member action triggers the expected interactions with the party class
|
|
|
|
|
*/
|
|
|
|
|
@Test
|
|
|
|
|
public void testAct() {
|
|
|
|
|
final PartyMember member = this.memberSupplier.get();
|
|
|
|
|
@ParameterizedTest
|
|
|
|
|
@MethodSource("dataProvider")
|
|
|
|
|
public void testAct(Supplier<PartyMember> memberSupplier) {
|
|
|
|
|
final PartyMember member = memberSupplier.get();
|
|
|
|
|
|
|
|
|
|
member.act(Action.GOLD);
|
|
|
|
|
assertEquals(0, appender.getLogSize());
|
|
|
|
@ -127,9 +112,10 @@ public class PartyMemberTest {
|
|
|
|
|
/**
|
|
|
|
|
* Verify if {@link PartyMember#toString()} generate the expected output
|
|
|
|
|
*/
|
|
|
|
|
@Test
|
|
|
|
|
public void testToString() throws Exception {
|
|
|
|
|
final PartyMember member = this.memberSupplier.get();
|
|
|
|
|
@ParameterizedTest
|
|
|
|
|
@MethodSource("dataProvider")
|
|
|
|
|
public void testToString(Supplier<PartyMember> memberSupplier) throws Exception {
|
|
|
|
|
final PartyMember member = memberSupplier.get();
|
|
|
|
|
final Class<? extends PartyMember> memberClass = member.getClass();
|
|
|
|
|
assertEquals(memberClass.getSimpleName(), member.toString());
|
|
|
|
|
}
|
|
|
|
|