mirror of
https://github.com/magefree/mage.git
synced 2025-12-21 11:02:00 -08:00
tests: improved test_showCardInfo, now it can check card's rules without set usage (VSC script support improved)
This commit is contained in:
parent
95eed18d73
commit
fda9d8fc1d
1 changed files with 45 additions and 8 deletions
|
|
@ -2188,7 +2188,8 @@ public class VerifyCardDataTest {
|
||||||
public void test_showCardInfo() {
|
public void test_showCardInfo() {
|
||||||
// debug only: show direct card rules from a class file without db-recreate
|
// debug only: show direct card rules from a class file without db-recreate
|
||||||
// - search by card name: Spark Double
|
// - search by card name: Spark Double
|
||||||
// - search by class name: SparkDouble
|
// - search by class name from set: SparkDouble
|
||||||
|
// - search by class name from non-set: SparkDoubleFixedV1;SparkDoubleFixedV2
|
||||||
// - multiple searches: name1;class2;name3
|
// - multiple searches: name1;class2;name3
|
||||||
String cardSearches = "Spark Double;AbandonedSarcophagus";
|
String cardSearches = "Spark Double;AbandonedSarcophagus";
|
||||||
|
|
||||||
|
|
@ -2206,21 +2207,57 @@ public class VerifyCardDataTest {
|
||||||
Arrays.stream(cardSearches.split(";")).forEach(searchName -> {
|
Arrays.stream(cardSearches.split(";")).forEach(searchName -> {
|
||||||
// original card
|
// original card
|
||||||
searchName = searchName.trim();
|
searchName = searchName.trim();
|
||||||
|
String searchClass = String.format("mage.cards.%s.%s",
|
||||||
|
searchName.substring(0, 1).toLowerCase(Locale.ENGLISH),
|
||||||
|
searchName);
|
||||||
|
|
||||||
|
String foundCardName = "";
|
||||||
|
String foundClassName = "";
|
||||||
|
|
||||||
|
// search by name
|
||||||
CardInfo cardInfo = CardRepository.instance.findCard(searchName);
|
CardInfo cardInfo = CardRepository.instance.findCard(searchName);
|
||||||
if (cardInfo == null) {
|
if (cardInfo != null) {
|
||||||
String searchClass = String.format("mage.cards.%s.%s",
|
foundCardName = cardInfo.getName();
|
||||||
searchName.substring(0, 1).toLowerCase(Locale.ENGLISH),
|
foundClassName = cardInfo.getClassName();
|
||||||
searchName);
|
}
|
||||||
|
|
||||||
|
// search by class from set
|
||||||
|
if (foundClassName.isEmpty()) {
|
||||||
cardInfo = CardRepository.instance.findCardsByClass(searchClass)
|
cardInfo = CardRepository.instance.findCardsByClass(searchClass)
|
||||||
.stream()
|
.stream()
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
|
if (cardInfo != null) {
|
||||||
|
foundCardName = cardInfo.getName();
|
||||||
|
foundClassName = cardInfo.getClassName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (cardInfo == null) {
|
|
||||||
|
// search by class from non-set (must store in mage.cards.* package)
|
||||||
|
if (foundClassName.isEmpty()) {
|
||||||
|
Reflections reflections = new Reflections(searchClass);
|
||||||
|
Set<Class<? extends CardImpl>> founded = null;
|
||||||
|
try {
|
||||||
|
founded = reflections.getSubTypesOf(CardImpl.class);
|
||||||
|
if (!founded.isEmpty()) {
|
||||||
|
foundClassName = founded.stream().findFirst().get().getName();
|
||||||
|
foundCardName = searchClass;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
if (!e.getMessage().contains("SubTypesScanner was not configured")) {
|
||||||
|
// unknown error
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (foundClassName.isEmpty()) {
|
||||||
Assert.fail("Can't find card by name or class: " + searchName);
|
Assert.fail("Can't find card by name or class: " + searchName);
|
||||||
}
|
}
|
||||||
CardSetInfo testSet = new CardSetInfo(cardInfo.getName(), "test", "123", Rarity.COMMON);
|
|
||||||
Card card = CardImpl.createCard(cardInfo.getClassName(), testSet);
|
CardSetInfo testSet = new CardSetInfo(foundCardName, "test", "123", Rarity.COMMON);
|
||||||
|
Card card = CardImpl.createCard(foundClassName, testSet);
|
||||||
|
Assert.assertNotNull("Card can't be loaded: " + foundClassName, card);
|
||||||
|
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println(card.getName() + " " + card.getManaCost().getText());
|
System.out.println(card.getName() + " " + card.getManaCost().getText());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue