aboutsummaryrefslogtreecommitdiff
path: root/go/game/cardParsing_test.go
blob: 6f003b575dffb332d2fccc1a3e95b3f7d616beff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package game

import (
	"errors"
	"testing"
)

func TestCloak(t *testing.T) {
	s, _, p, _ := newMockState()
	a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p)
	c := s.addNewEquipment(NewCard("equipments/cloak"), Position{1, 0}, p)
	die := NewCard("magic/die!")

	ea := NewEquipAction(a, c)
	ea.costFunc = genBaseActionCost(a, 1, 0)
	s.ResolveAction(ea)

	if !a.HasEffect("shroud") {
		t.Fatal("archer not shrouded")
	}

	pa := NewPlayAction(p, die)
	err := pa.Target().AddSelection(a)
	if !errors.Is(err, ErrTargetHasShroud) {
		t.Fatal("shrouded archer targeted")
	}
}

func TestFighter(t *testing.T) {
	s, _, p, _ := newMockState()
	f := s.addNewUnit(NewCard("base/fighter"), Position{0, 0}, p)
	f.onUpkeep()
	if f.AvailAttackActions != 2 {
		t.Fatal("fighter does not have two attack actions")
	}
}