mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Extended CardDB API (w/ Tests) adding a Predicate filter for getCardFromEditions series
The getCardFromEditions series now include new variants (also for released before/after) accepting an extra filter to be passed used as an extra filter for returned cards!
This commit is contained in:
@@ -126,7 +126,7 @@ public class CardDbTestCase extends ForgeCardMockTestCase {
|
||||
assertNotNull(allCardsInSet);
|
||||
}
|
||||
|
||||
@Test void testGetAllCardsOfaGivenNameAndLegalInSets(){
|
||||
@Test void testGetAllCardsOfaGivenNameAndPrintedInSets(){
|
||||
List<String> allowedSets = new ArrayList<>(Arrays.asList(this.editionsCounterspell));
|
||||
Predicate<PaperCard> printedInSets = (Predicate<PaperCard>) this.cardDb.wasPrintedInSets(allowedSets);
|
||||
List<PaperCard> allCounterSpellsInSets = this.cardDb.getAllCards(this.cardNameCounterspell, printedInSets);
|
||||
@@ -138,6 +138,29 @@ public class CardDbTestCase extends ForgeCardMockTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAllCardsLegalInSets(){
|
||||
List<String> allowedSets = new ArrayList<>();
|
||||
allowedSets.add(this.latestArtShivanDragonEdition);
|
||||
Predicate<PaperCard> legalInSets = (Predicate<PaperCard>) this.cardDb.isLegal(allowedSets);
|
||||
List<PaperCard> allCardsInSet = this.cardDb.getAllCards(legalInSets);
|
||||
assertNotNull(allCardsInSet);
|
||||
for (PaperCard card : allCardsInSet)
|
||||
assertEquals(card.getEdition(), this.latestArtShivanDragonEdition);
|
||||
}
|
||||
|
||||
@Test void testGetAllCardsOfaGivenNameAndLegalInSets(){
|
||||
List<String> allowedSets = new ArrayList<>(Arrays.asList(this.editionsCounterspell));
|
||||
Predicate<PaperCard> legalInSets = (Predicate<PaperCard>) this.cardDb.isLegal(allowedSets);
|
||||
List<PaperCard> allCounterSpellsInSets = this.cardDb.getAllCards(this.cardNameCounterspell, legalInSets);
|
||||
assertNotNull(allCounterSpellsInSets);
|
||||
assertTrue(allCounterSpellsInSets.size() > 0);
|
||||
assertTrue(allCounterSpellsInSets.size() > 1);
|
||||
for (PaperCard card : allCounterSpellsInSets) {
|
||||
assertEquals(card.getName(), this.cardNameCounterspell);
|
||||
assertTrue(allowedSets.contains(card.getEdition()));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TEST FOR CARD RETRIEVAL METHODS
|
||||
@@ -628,7 +651,7 @@ public class CardDbTestCase extends ForgeCardMockTestCase {
|
||||
|
||||
// Passing null preference
|
||||
assertEquals(this.cardDb.getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||
PaperCard httCard = this.cardDb.getCardFromEditions(cardNameHymnToTourach, null);
|
||||
PaperCard httCard = this.cardDb.getCardFromEditions(cardNameHymnToTourach, null, null);
|
||||
assertNotNull(httCard);
|
||||
assertEquals(httCard.getName(), cardNameHymnToTourach);
|
||||
assertEquals(httCard.getEdition(), latestArtHymnToTourachEdition);
|
||||
@@ -636,7 +659,7 @@ public class CardDbTestCase extends ForgeCardMockTestCase {
|
||||
// Changing default value for default card art preference
|
||||
this.cardDb.setCardArtPreference(false, false);
|
||||
assertEquals(this.cardDb.getCardArtPreference(), CardDb.CardArtPreference.ORIGINAL_ART_ALL_EDITIONS);
|
||||
httCard = this.cardDb.getCardFromEditions(cardNameHymnToTourach, null);
|
||||
httCard = this.cardDb.getCardFromEditions(cardNameHymnToTourach, null, null);
|
||||
assertNotNull(httCard);
|
||||
assertEquals(httCard.getName(), cardNameHymnToTourach);
|
||||
assertEquals(httCard.getEdition(), originalArtHymnToTourachEdition);
|
||||
@@ -2071,7 +2094,7 @@ public class CardDbTestCase extends ForgeCardMockTestCase {
|
||||
assertEquals(islandLatest.getEdition(), "SLD");
|
||||
assertEquals(islandLatest.getArtIndex(), 12);
|
||||
|
||||
// PALP
|
||||
// SLD
|
||||
PaperCard islandOriginal = this.cardDb.getCardFromEditions(cardName, CardDb.CardArtPreference.ORIGINAL_ART_CORE_EXPANSIONS_REPRINT_ONLY, 12);
|
||||
assertNotNull(islandOriginal);
|
||||
assertEquals(islandOriginal.getName(), "Island");
|
||||
@@ -2085,6 +2108,85 @@ public class CardDbTestCase extends ForgeCardMockTestCase {
|
||||
assertEquals(maxArtIndex, 13);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCardFromEditionsWithFilteredPool(){
|
||||
// test initial conditions
|
||||
assertEquals(this.cardDb.getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||
|
||||
// Set Allowed Editions
|
||||
List<String> allowedSets = new ArrayList<>();
|
||||
allowedSets.add(this.latestArtShivanDragonEdition);
|
||||
allowedSets.add(this.originalArtShivanDragonEdition);
|
||||
Predicate<PaperCard> printedInSetPredicate = (Predicate<PaperCard>) this.cardDb.wasPrintedInSets(allowedSets);
|
||||
PaperCard shivanDragonCard = this.cardDb.getCardFromEditions(this.cardNameShivanDragon, printedInSetPredicate);
|
||||
assertNotNull(shivanDragonCard);
|
||||
assertEquals(shivanDragonCard.getName(), this.cardNameShivanDragon);
|
||||
assertEquals(shivanDragonCard.getEdition(), this.latestArtShivanDragonEdition);
|
||||
|
||||
// Use Original Art Preference Now
|
||||
shivanDragonCard = this.cardDb.getCardFromEditions(this.cardNameShivanDragon, CardDb.CardArtPreference.ORIGINAL_ART_ALL_EDITIONS, printedInSetPredicate);
|
||||
assertNotNull(shivanDragonCard);
|
||||
assertEquals(shivanDragonCard.getName(), this.cardNameShivanDragon);
|
||||
assertEquals(shivanDragonCard.getEdition(), this.originalArtShivanDragonEdition);
|
||||
|
||||
// Testing null cards
|
||||
allowedSets.clear();
|
||||
allowedSets.add(this.originalArtHymnToTourachEdition); // FEM - it does not exist a shivan in FEM
|
||||
printedInSetPredicate = (Predicate<PaperCard>) this.cardDb.wasPrintedInSets(allowedSets);
|
||||
shivanDragonCard = this.cardDb.getCardFromEditions(this.cardNameShivanDragon, printedInSetPredicate);
|
||||
assertNull(shivanDragonCard);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCardsFromEditionsReleasedBeforeDateWithFilter(){
|
||||
// test initial conditions
|
||||
assertEquals(this.cardDb.getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||
|
||||
Date afterTenthEdition = null;
|
||||
try {
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||
afterTenthEdition = format.parse(releasedAfterTenthEditionDate);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
fail();
|
||||
}
|
||||
|
||||
// Set Allowed Editions
|
||||
List<String> allowedSets = new ArrayList<>();
|
||||
allowedSets.add(this.latestArtShivanDragonEdition);
|
||||
allowedSets.add(this.originalArtShivanDragonEdition);
|
||||
allowedSets.add(this.originalArtShivanDragonEditionReleasedAfterTenthEditionNoPromo);
|
||||
Predicate<PaperCard> legalInSetFilter = (Predicate<PaperCard>) this.cardDb.isLegal(allowedSets);
|
||||
PaperCard shivanDragonCard = this.cardDb.getCardFromEditionsReleasedAfter(this.cardNameShivanDragon, CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS,
|
||||
afterTenthEdition, legalInSetFilter);
|
||||
assertNotNull(shivanDragonCard);
|
||||
assertEquals(shivanDragonCard.getName(), cardNameShivanDragon);
|
||||
assertEquals(shivanDragonCard.getEdition(), latestArtShivanDragonEdition);
|
||||
|
||||
// Original Art Should be excluded by date filter
|
||||
shivanDragonCard = this.cardDb.getCardFromEditionsReleasedAfter(this.cardNameShivanDragon, CardDb.CardArtPreference.ORIGINAL_ART_ALL_EDITIONS,
|
||||
afterTenthEdition, legalInSetFilter);
|
||||
assertNotNull(shivanDragonCard);
|
||||
assertEquals(shivanDragonCard.getName(), cardNameShivanDragon);
|
||||
assertEquals(shivanDragonCard.getEdition(), originalArtShivanDragonEditionReleasedAfterTenthEditionNoPromo);
|
||||
|
||||
// == Try same but with Released Before
|
||||
shivanDragonCard = this.cardDb.getCardFromEditionsReleasedBefore(this.cardNameShivanDragon, CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS,
|
||||
afterTenthEdition, legalInSetFilter);
|
||||
assertNotNull(shivanDragonCard);
|
||||
assertEquals(shivanDragonCard.getName(), cardNameShivanDragon);
|
||||
assertEquals(shivanDragonCard.getEdition(), originalArtShivanDragonEdition);
|
||||
|
||||
// Original Art Should be excluded by date filter
|
||||
shivanDragonCard = this.cardDb.getCardFromEditionsReleasedBefore(this.cardNameShivanDragon, CardDb.CardArtPreference.ORIGINAL_ART_ALL_EDITIONS,
|
||||
afterTenthEdition, legalInSetFilter);
|
||||
assertNotNull(shivanDragonCard);
|
||||
assertEquals(shivanDragonCard.getName(), cardNameShivanDragon);
|
||||
assertEquals(shivanDragonCard.getEdition(), originalArtShivanDragonEdition);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user