Files
FFCardGame/tests/fixtures/test_card_data.gd
2026-01-28 11:22:20 -05:00

181 lines
4.5 KiB
GDScript

class_name TestCardData
extends RefCounted
## Factory for creating test CardData objects without CardDatabase autoload
## Use these methods in unit tests to create cards with specific properties
static func create_forward(
id: String = "test-forward-001",
card_name: String = "Test Forward",
element: Enums.Element = Enums.Element.FIRE,
cost: int = 3,
power: int = 5000,
is_generic: bool = false,
abilities: Array[CardDatabase.AbilityData] = []
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
card.elements.append(element)
card.cost = cost
card.power = power
card.is_generic = is_generic
card.abilities = abilities
return card
static func create_backup(
id: String = "test-backup-001",
card_name: String = "Test Backup",
element: Enums.Element = Enums.Element.FIRE,
cost: int = 2,
is_generic: bool = false
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.BACKUP
card.elements.append(element)
card.cost = cost
card.power = 0
card.is_generic = is_generic
return card
static func create_summon(
id: String = "test-summon-001",
card_name: String = "Test Summon",
element: Enums.Element = Enums.Element.FIRE,
cost: int = 2,
has_ex_burst: bool = false
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.SUMMON
card.elements.append(element)
card.cost = cost
card.has_ex_burst = has_ex_burst
return card
static func create_light_forward(
id: String = "test-light-001",
card_name: String = "Light Forward",
cost: int = 5,
power: int = 9000
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
card.elements.append(Enums.Element.LIGHT)
card.cost = cost
card.power = power
return card
static func create_dark_forward(
id: String = "test-dark-001",
card_name: String = "Dark Forward",
cost: int = 5,
power: int = 9000
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
card.elements.append(Enums.Element.DARK)
card.cost = cost
card.power = power
return card
static func create_multi_element_forward(
id: String = "test-multi-001",
card_name: String = "Multi Element Forward",
elements: Array[Enums.Element] = [Enums.Element.FIRE, Enums.Element.ICE],
cost: int = 4,
power: int = 7000
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
for elem in elements:
card.elements.append(elem)
card.cost = cost
card.power = power
return card
static func create_haste_forward(
id: String = "test-haste-001",
card_name: String = "Haste Forward",
element: Enums.Element = Enums.Element.FIRE,
cost: int = 3,
power: int = 5000
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
card.elements.append(element)
card.cost = cost
card.power = power
var haste_ability = CardDatabase.AbilityData.new()
haste_ability.type = Enums.AbilityType.FIELD
haste_ability.effect = "Haste"
card.abilities.append(haste_ability)
return card
static func create_brave_forward(
id: String = "test-brave-001",
card_name: String = "Brave Forward",
element: Enums.Element = Enums.Element.WIND,
cost: int = 4,
power: int = 6000
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
card.elements.append(element)
card.cost = cost
card.power = power
var brave_ability = CardDatabase.AbilityData.new()
brave_ability.type = Enums.AbilityType.FIELD
brave_ability.effect = "Brave"
card.abilities.append(brave_ability)
return card
static func create_first_strike_forward(
id: String = "test-first-strike-001",
card_name: String = "First Strike Forward",
element: Enums.Element = Enums.Element.LIGHTNING,
cost: int = 3,
power: int = 4000
) -> CardDatabase.CardData:
var card = CardDatabase.CardData.new()
card.id = id
card.name = card_name
card.type = Enums.CardType.FORWARD
card.elements.append(element)
card.cost = cost
card.power = power
var first_strike_ability = CardDatabase.AbilityData.new()
first_strike_ability.type = Enums.AbilityType.FIELD
first_strike_ability.effect = "First Strike"
card.abilities.append(first_strike_ability)
return card