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;
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.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -18,8 +20,12 @@ public class Card_V2_002_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "102_2");
// put other cards in here as needed for the test case
put("raider", "102_2");
put("card1", "102_3");
put("card2", "102_4");
put("card3", "102_5");
put("card4", "102_6");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +53,7 @@ public class Card_V2_002_Tests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("raider");
assertEquals("Dunlending Raider", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -62,18 +68,45 @@ public class Card_V2_002_Tests
assertEquals(3, card.getBlueprint().getSiteNumber());
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void DunlendingRaiderTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void DunlendingRaiderCosts3IfFreepsHasInitiative() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
var raider = scn.GetShadowCard("raider");
scn.ShadowMoveCardToHand(raider);
scn.FreepsMoveCardToHand("card1", "card2", "card3", "card4");
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.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -18,8 +17,12 @@ public class Card_V2_003_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "102_3");
// put other cards in here as needed for the test case
put("reaver", "102_3");
put("card1", "102_4");
put("card2", "102_5");
put("card3", "102_6");
put("card4", "102_7");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +50,7 @@ public class Card_V2_003_Tests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("reaver");
assertEquals("Dunlending Reaver", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -62,18 +65,45 @@ public class Card_V2_003_Tests
assertEquals(3, card.getBlueprint().getSiteNumber());
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void DunlendingReaverTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void DunlendingReaverNoBonusIfFreepsHasInitiative() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
var reaver = scn.GetShadowCard("reaver");
scn.ShadowMoveCardToHand(reaver);
scn.FreepsMoveCardToHand("card1", "card2", "card3", "card4");
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.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -18,8 +17,16 @@ public class Card_V2_004_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "102_4");
// put other cards in here as needed for the test case
put("horsemen", "102_4");
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.FOTRFrodo,
@@ -44,7 +51,7 @@ public class Card_V2_004_Tests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("horsemen");
assertEquals("Horsemen Took Your Lands", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -56,18 +63,75 @@ public class Card_V2_004_Tests
assertEquals(1, card.getBlueprint().getTwilightCost());
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void HorsemenTookYourLandsTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void HorsemenTookYourLandsPlaysNonUniqueDunlendingFromDiscardWithPossessionWithInitiative() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
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);
scn.FreepsMoveCardToDiscard(card4);
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;
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.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -52,19 +51,4 @@ public class Card_V2_074_Tests
assertFalse(card.getBlueprint().isUnique());
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;
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.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -52,19 +51,4 @@ public class Card_V2_075_Tests
assertFalse(card.getBlueprint().isUnique());
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;
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.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -52,19 +51,4 @@ public class Card_V2_076_Tests
assertFalse(card.getBlueprint().isUnique());
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());
}
}