mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
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 String frameVersion;
|
||||||
public List<String> printings; // set codes with that card
|
public List<String> printings; // set codes with that card
|
||||||
public boolean isFunny;
|
public boolean isFunny;
|
||||||
|
public List<String> promoTypes;
|
||||||
|
public boolean isTextless;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|
|
||||||
|
|
@ -697,32 +697,6 @@ public class VerifyCardDataTest {
|
||||||
// String code = MtgJsonService.xMageToMtgJsonCodes.getOrDefault(set.getCode(), set.getCode()) + " - " + jsonCard.getNameAsFull() + " - " + jsonCard.number;
|
// String code = MtgJsonService.xMageToMtgJsonCodes.getOrDefault(set.getCode(), set.getCode()) + " - " + jsonCard.getNameAsFull() + " - " + jsonCard.number;
|
||||||
// foundedJsonCards.add(code);
|
// 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
|
@Test
|
||||||
@Ignore // TODO: enable after all missing cards and settings fixes
|
@Ignore // TODO: enable after all missing cards and settings fixes
|
||||||
public void test_checkMissingScryfallSettingsAndCardNumbers() {
|
public void test_checkMissingScryfallSettingsAndCardNumbers() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue