package org.royaldev.thehumanity; import org.royaldev.thehumanity.cards.packs.CAHCardPack; import org.royaldev.thehumanity.cards.Deck; import org.royaldev.thehumanity.cards.packs.MemoryCardPack; import org.royaldev.thehumanity.cards.types.BlackCard; import org.royaldev.thehumanity.cards.types.WhiteCard; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import static org.powermock.api.mockito.PowerMockito.mock; public final class CardHelper { private static final CAHCardPack cp = mock(MemoryCardPack.class); public static BlackCard makeBlackCard(final CAHCardPack cp, final String text) { return new BlackCard(cp, text); } public static BlackCard makeBlackCard(final String text) { return CardHelper.makeBlackCard(CardHelper.cp, text); } public static List<BlackCard> makeBlackCards(final CAHCardPack cp, final String... texts) { return Arrays.stream(texts).map(text -> CardHelper.makeBlackCard(cp, text)).collect(Collectors.toList()); } public static List<BlackCard> makeBlackCards(final String... texts) { return CardHelper.makeBlackCards(CardHelper.cp, texts); } public static CAHCardPack makeCardPack(final String name, final List<String> whiteCards, final List<String> blackCards) { final CAHCardPack cp = new MemoryCardPack(name); whiteCards.stream().map(text -> CardHelper.makeWhiteCard(cp, text)).forEach(cp::addCard); blackCards.stream().map(text -> CardHelper.makeBlackCard(cp, text)).forEach(cp::addCard); return cp; } public static Deck makeDeck(final List<CAHCardPack> cardPacks) { return new Deck(cardPacks); } public static WhiteCard makeWhiteCard(final String text) { return CardHelper.makeWhiteCard(CardHelper.cp, text); } public static WhiteCard makeWhiteCard(final CAHCardPack cp, final String text) { return new WhiteCard(cp, text); } public static List<WhiteCard> makeWhiteCards(final String... texts) { return CardHelper.makeWhiteCards(CardHelper.cp, texts); } public static List<WhiteCard> makeWhiteCards(final CAHCardPack cp, final String... texts) { return Arrays.stream(texts).map(text -> CardHelper.makeWhiteCard(cp, text)).collect(Collectors.toList()); } }