forked from External/mage
tests: added verify tests for retro and full art images (#13912)
* Add promoTypes and isTextless fields to MtgJsonCard; enhance VerifyCardDataTest for full art validation * whitespace fixes * Add null check * Split Retro and FullArt to seperate Test * Refactor VerifyCardDataTest to consolidate full art setting checks for poster promoType and textless cards * Add validation for full art lands in VerifyCardDataTest * Remove duplicate checks in checkWrongCardsDataInSets and add "not use" checks
This commit is contained in:
parent
5d034fcb0c
commit
0adbc7c0c3
2 changed files with 59 additions and 26 deletions
|
|
@ -43,6 +43,8 @@ public final class MtgJsonCard {
|
|||
public String frameVersion;
|
||||
public List<String> printings; // set codes with that card
|
||||
public boolean isFunny;
|
||||
public List<String> promoTypes;
|
||||
public boolean isTextless;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
|
|
|||
|
|
@ -697,32 +697,6 @@ public class VerifyCardDataTest {
|
|||
// String code = MtgJsonService.xMageToMtgJsonCodes.getOrDefault(set.getCode(), set.getCode()) + " - " + jsonCard.getNameAsFull() + " - " + jsonCard.number;
|
||||
// foundedJsonCards.add(code);
|
||||
//
|
||||
// // CHECK: only lands can use full art in current version;
|
||||
// // Another cards must be in text render mode as normal, example: https://scryfall.com/card/sld/76/athreos-god-of-passage
|
||||
// // TODO: add support textless cards like https://scryfall.com/card/sch/12/thalia-and-the-gitrog-monster
|
||||
// boolean isLand = card.getRarity().equals(Rarity.LAND);
|
||||
// if (card.isFullArt() && !isLand) {
|
||||
// errorsList.add("Error: only lands can use full art setting: "
|
||||
// + set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
// }
|
||||
//
|
||||
// // CHECK: must use full art setting
|
||||
// if (jsonCard.isFullArt && isLand && !card.isFullArt()) {
|
||||
// errorsList.add("Error: card must use full art setting: "
|
||||
// + set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
// }
|
||||
//
|
||||
// // CHECK: must not use full art setting
|
||||
// if (!jsonCard.isFullArt && card.isFullArt()) {
|
||||
// errorsList.add("Error: card must NOT use full art setting: "
|
||||
// + set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
// }
|
||||
|
||||
// CHECK: must use retro frame setting
|
||||
if ((jsonCard.frameVersion.equals("1993") || jsonCard.frameVersion.equals("1997")) && !card.isRetroFrame()) {
|
||||
errorsList.add("Error: card must use retro art setting: "
|
||||
+ set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -766,6 +740,63 @@ public class VerifyCardDataTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void test_checkWrongFullArtAndRetro() {
|
||||
Collection<String> errorsList = new ArrayList<>();
|
||||
Collection<ExpansionSet> xmageSets = Sets.getInstance().values();
|
||||
|
||||
// CHECK: wrong card numbers
|
||||
for (ExpansionSet set : xmageSets) {
|
||||
if (skipListHaveName(SKIP_LIST_WRONG_CARD_NUMBERS, set.getCode())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (ExpansionSet.SetCardInfo card : set.getSetCardInfo()) {
|
||||
MtgJsonCard jsonCard = MtgJsonService.cardFromSet(set.getCode(), card.getName(), card.getCardNumber());
|
||||
if (jsonCard == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// CHECK: poster promoType and/or textless must use full art setting
|
||||
if (((jsonCard.promoTypes != null && jsonCard.promoTypes.contains("poster")) || jsonCard.isTextless) && !card.isFullArt()) {
|
||||
errorsList.add("Error: card must use full art setting: "
|
||||
+ set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
}
|
||||
|
||||
// CHECK: full art lands must use full art setting
|
||||
boolean isLand = card.getRarity().equals(Rarity.LAND);
|
||||
if (isLand && jsonCard.isFullArt && !card.isFullArt()) {
|
||||
errorsList.add("Error: card must use full art lands setting: "
|
||||
+ set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
}
|
||||
|
||||
// CHECK: non-full art lands must not use full art setting
|
||||
if (isLand && !jsonCard.isFullArt && card.isFullArt()) {
|
||||
errorsList.add("Error: card must NOT use full art lands setting: "
|
||||
+ set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
}
|
||||
|
||||
// CHECK: must use retro frame setting
|
||||
if ((jsonCard.frameVersion.equals("1993") || jsonCard.frameVersion.equals("1997")) && !card.isRetroFrame()) {
|
||||
errorsList.add("Error: card must use retro art setting: "
|
||||
+ set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
}
|
||||
|
||||
// CHECK: must not use retro frame setting
|
||||
if ((!(jsonCard.frameVersion.equals("1993") || jsonCard.frameVersion.equals("1997"))) && card.isRetroFrame()) {
|
||||
errorsList.add("Error: card must NOT use retro art setting: "
|
||||
+ set.getCode() + " - " + set.getName() + " - " + card.getName() + " - " + card.getCardNumber());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
printMessages(errorsList);
|
||||
if (errorsList.size() > 0) {
|
||||
Assert.fail("Found wrong cards data in sets, errors: " + errorsList.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore // TODO: enable after all missing cards and settings fixes
|
||||
public void test_checkMissingScryfallSettingsAndCardNumbers() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue