Added unit tests for all V2 Dunland cards; cleaned up the tests for the V2 Maps.

This commit is contained in:
Christian 'ketura' McCarty
2025-04-07 19:50:48 -05:00
parent 8f56866ad0
commit ba273f06f8
6 changed files with 164 additions and 85 deletions

View File

@@ -1,9 +1,11 @@
package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02; package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -18,8 +20,12 @@ public class Card_V2_002_Tests
return new GenericCardTestHelper( return new GenericCardTestHelper(
new HashMap<>() new HashMap<>()
{{ {{
put("card", "102_2"); put("raider", "102_2");
// put other cards in here as needed for the test case
put("card1", "102_3");
put("card2", "102_4");
put("card3", "102_5");
put("card4", "102_6");
}}, }},
GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +53,7 @@ public class Card_V2_002_Tests
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var card = scn.GetFreepsCard("raider");
assertEquals("Dunlending Raider", card.getBlueprint().getTitle()); assertEquals("Dunlending Raider", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle()); assertNull(card.getBlueprint().getSubtitle());
@@ -62,18 +68,45 @@ public class Card_V2_002_Tests
assertEquals(3, card.getBlueprint().getSiteNumber()); assertEquals(3, card.getBlueprint().getSiteNumber());
} }
// Uncomment any @Test markers below once this is ready to be used @Test
//@Test public void DunlendingRaiderCosts3IfFreepsHasInitiative() throws DecisionResultInvalidException, CardNotFoundException {
public void DunlendingRaiderTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var raider = scn.GetShadowCard("raider");
scn.FreepsMoveCardToHand(card); scn.ShadowMoveCardToHand(raider);
scn.FreepsMoveCardToHand("card1", "card2", "card3", "card4");
scn.StartGame(); scn.StartGame();
scn.FreepsPlayCard(card); scn.SetTwilight(7);
assertEquals(3, scn.GetTwilight()); scn.FreepsPassCurrentPhaseAction();
assertTrue(scn.ShadowPlayAvailable(raider));
assertEquals(10, scn.GetTwilight());
scn.ShadowPlayCard(raider);
//10 in the pool, -3 for full price -2 for roaming
assertEquals(5, scn.GetTwilight());
}
@Test
public void DunlendingRaiderCosts1IfShadowHasInitiative() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var raider = scn.GetShadowCard("raider");
scn.ShadowMoveCardToHand(raider);
scn.StartGame();
scn.SetTwilight(7);
scn.FreepsPassCurrentPhaseAction();
assertTrue(scn.ShadowPlayAvailable(raider));
assertEquals(10, scn.GetTwilight());
scn.ShadowPlayCard(raider);
//10 in the pool, -1 for full price -2 for roaming
assertEquals(7, scn.GetTwilight());
} }
} }

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -18,8 +17,12 @@ public class Card_V2_003_Tests
return new GenericCardTestHelper( return new GenericCardTestHelper(
new HashMap<>() new HashMap<>()
{{ {{
put("card", "102_3"); put("reaver", "102_3");
// put other cards in here as needed for the test case
put("card1", "102_4");
put("card2", "102_5");
put("card3", "102_6");
put("card4", "102_7");
}}, }},
GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +50,7 @@ public class Card_V2_003_Tests
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var card = scn.GetFreepsCard("reaver");
assertEquals("Dunlending Reaver", card.getBlueprint().getTitle()); assertEquals("Dunlending Reaver", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle()); assertNull(card.getBlueprint().getSubtitle());
@@ -62,18 +65,45 @@ public class Card_V2_003_Tests
assertEquals(3, card.getBlueprint().getSiteNumber()); assertEquals(3, card.getBlueprint().getSiteNumber());
} }
// Uncomment any @Test markers below once this is ready to be used @Test
//@Test public void DunlendingReaverNoBonusIfFreepsHasInitiative() throws DecisionResultInvalidException, CardNotFoundException {
public void DunlendingReaverTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var reaver = scn.GetShadowCard("reaver");
scn.FreepsMoveCardToHand(card); scn.ShadowMoveCardToHand(reaver);
scn.FreepsMoveCardToHand("card1", "card2", "card3", "card4");
scn.StartGame(); scn.StartGame();
scn.FreepsPlayCard(card); scn.SetTwilight(10);
assertEquals(2, scn.GetTwilight()); scn.FreepsPassCurrentPhaseAction();
assertTrue(scn.ShadowPlayAvailable(reaver));
scn.ShadowPlayCard(reaver);
assertEquals(8, scn.GetStrength(reaver));
assertFalse(scn.hasKeyword(reaver, Keyword.DAMAGE));
}
@Test
public void DunlendingReaverIsStrengthPlus3AndDamagePlus1IfShadowHasInitiative() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var reaver = scn.GetShadowCard("reaver");
scn.ShadowMoveCardToHand(reaver);
scn.StartGame();
scn.SetTwilight(10);
scn.FreepsPassCurrentPhaseAction();
assertTrue(scn.ShadowPlayAvailable(reaver));
scn.ShadowPlayCard(reaver);
assertEquals(11, scn.GetStrength(reaver));
assertTrue(scn.hasKeyword(reaver, Keyword.DAMAGE));
} }
} }

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -18,8 +17,16 @@ public class Card_V2_004_Tests
return new GenericCardTestHelper( return new GenericCardTestHelper(
new HashMap<>() new HashMap<>()
{{ {{
put("card", "102_4"); put("horsemen", "102_4");
// put other cards in here as needed for the test case put("band", "4_4");
put("chief", "4_20");
put("club", "4_36");
put("hides", "4_19");
put("card1", "1_3");
put("card2", "1_4");
put("card3", "1_5");
put("card4", "1_6");
}}, }},
GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
@@ -44,7 +51,7 @@ public class Card_V2_004_Tests
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var card = scn.GetFreepsCard("horsemen");
assertEquals("Horsemen Took Your Lands", card.getBlueprint().getTitle()); assertEquals("Horsemen Took Your Lands", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle()); assertNull(card.getBlueprint().getSubtitle());
@@ -56,18 +63,75 @@ public class Card_V2_004_Tests
assertEquals(1, card.getBlueprint().getTwilightCost()); assertEquals(1, card.getBlueprint().getTwilightCost());
} }
// Uncomment any @Test markers below once this is ready to be used @Test
//@Test public void HorsemenTookYourLandsPlaysNonUniqueDunlendingFromDiscardWithPossessionWithInitiative() throws DecisionResultInvalidException, CardNotFoundException {
public void HorsemenTookYourLandsTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var horsemen = scn.GetShadowCard("horsemen");
scn.FreepsMoveCardToHand(card); var band = scn.GetShadowCard("band");
var chief = scn.GetShadowCard("chief");
var club = scn.GetShadowCard("club");
var hides = scn.GetShadowCard("hides");
scn.ShadowMoveCardToHand(horsemen);
scn.ShadowMoveCardToDiscard(band, chief, club, hides);
var card1 = scn.GetFreepsCard("card1");
var card2 = scn.GetFreepsCard("card2");
var card3 = scn.GetFreepsCard("card3");
var card4 = scn.GetFreepsCard("card4");
scn.FreepsMoveCardToHand(card1, card2, card3);
scn.FreepsMoveCardToDiscard(card4);
scn.StartGame(); scn.StartGame();
scn.FreepsPlayCard(card); scn.SetTwilight(10);
scn.FreepsPassCurrentPhaseAction();
assertEquals(1, scn.GetTwilight()); assertEquals(Zone.DISCARD, band.getZone());
assertEquals(Zone.DISCARD, chief.getZone());
assertEquals(Zone.DISCARD, club.getZone());
assertEquals(Zone.DISCARD, hides.getZone());
assertTrue(scn.ShadowPlayAvailable(horsemen));
scn.ShadowPlayCard(horsemen);
assertEquals(Zone.SHADOW_CHARACTERS, band.getZone());
assertEquals(Zone.DISCARD, chief.getZone());
assertEquals(Zone.ATTACHED, club.getZone());
assertEquals(band, club.getAttachedTo());
assertEquals(Zone.DISCARD, hides.getZone());
}
@Test
public void HorsemenTookYourLandsPlaysNonUniqueDunlendingFromDiscardWithNoPossessionWithNoInitiative() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var horsemen = scn.GetShadowCard("horsemen");
var band = scn.GetShadowCard("band");
var chief = scn.GetShadowCard("chief");
var club = scn.GetShadowCard("club");
var hides = scn.GetShadowCard("hides");
scn.ShadowMoveCardToHand(horsemen);
scn.ShadowMoveCardToDiscard(band, chief, club, hides);
var card1 = scn.GetFreepsCard("card1");
var card2 = scn.GetFreepsCard("card2");
var card3 = scn.GetFreepsCard("card3");
var card4 = scn.GetFreepsCard("card4");
scn.FreepsMoveCardToHand(card1, card2, card3, card4);
scn.StartGame();
scn.SetTwilight(10);
scn.FreepsPassCurrentPhaseAction();
assertEquals(Zone.DISCARD, band.getZone());
assertEquals(Zone.DISCARD, chief.getZone());
assertEquals(Zone.DISCARD, club.getZone());
assertEquals(Zone.DISCARD, hides.getZone());
assertTrue(scn.ShadowPlayAvailable(horsemen));
scn.ShadowPlayCard(horsemen);
assertEquals(Zone.SHADOW_CHARACTERS, band.getZone());
assertEquals(Zone.DISCARD, chief.getZone());
assertEquals(Zone.DISCARD, club.getZone());
assertEquals(Zone.DISCARD, hides.getZone());
} }
} }

View File

@@ -1,9 +1,8 @@
package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02; package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -52,19 +51,4 @@ public class Card_V2_074_Tests
assertFalse(card.getBlueprint().isUnique()); assertFalse(card.getBlueprint().isUnique());
assertEquals(CardType.MAP, card.getBlueprint().getCardType()); assertEquals(CardType.MAP, card.getBlueprint().getCardType());
} }
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void PathoftheFellowshipTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(0, scn.GetTwilight());
}
} }

View File

@@ -1,9 +1,8 @@
package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02; package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -52,19 +51,4 @@ public class Card_V2_075_Tests
assertFalse(card.getBlueprint().isUnique()); assertFalse(card.getBlueprint().isUnique());
assertEquals(CardType.MAP, card.getBlueprint().getCardType()); assertEquals(CardType.MAP, card.getBlueprint().getCardType());
} }
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void RoadtotheTowersTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(0, scn.GetTwilight());
}
} }

View File

@@ -1,9 +1,8 @@
package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02; package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -52,19 +51,4 @@ public class Card_V2_076_Tests
assertFalse(card.getBlueprint().isUnique()); assertFalse(card.getBlueprint().isUnique());
assertEquals(CardType.MAP, card.getBlueprint().getCardType()); assertEquals(CardType.MAP, card.getBlueprint().getCardType());
} }
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void JourneyoftheKingTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(0, scn.GetTwilight());
}
} }