Skip to content

Commit

Permalink
[修改]happy_path增加damage_info狀態檢查
Browse files Browse the repository at this point in the history
  • Loading branch information
yockwang committed Nov 12, 2024
1 parent aa71286 commit 7b565fd
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 0 deletions.
30 changes: 30 additions & 0 deletions backend/tests/integration/happy_path/test_happy_path_round2.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ def mock_roll_dice():
game_service.cast_spell(game_id, "A", "Magic 5")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("A").get_HP() == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法1 R列
assert game.current_player == 1
Expand All @@ -66,6 +71,11 @@ def mock_roll_dice():
assert game.find_player_by_id("D").get_HP() == 5
assert game.find_player_by_id("E").get_HP() == 5
assert len(game.ladder) == 1
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == -1
assert game.damage_info[4] == -1

# B施法2 S列
game_service.cast_spell(game_id, "B", "Magic 2")
Expand All @@ -76,6 +86,11 @@ def mock_roll_dice():
assert game.find_player_by_id("D").get_HP() == 4
assert game.find_player_by_id("E").get_HP() == 4
assert len(game.ladder) == 2
assert game.damage_info[0] == -1
assert game.damage_info[1] == 1
assert game.damage_info[2] == -1
assert game.damage_info[3] == -1
assert game.damage_info[4] == -1

# B施法5 T列
game_service.cast_spell(game_id, "B", "Magic 5")
Expand All @@ -84,6 +99,11 @@ def mock_roll_dice():
assert game.find_player_by_id("A").get_HP() == 2
assert game.find_player_by_id("C").get_HP() == 3
assert len(game.ladder) == 3
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法5 U列
game_service.cast_spell(game_id, "B", "Magic 5")
Expand All @@ -92,6 +112,11 @@ def mock_roll_dice():
assert game.find_player_by_id("A").get_HP() == 1
assert game.find_player_by_id("C").get_HP() == 2
assert len(game.ladder) == 4
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法7, 殺死玩家A,將自動進行結算 V列
game_service.cast_spell(game_id, "B", "Magic 7")
Expand All @@ -101,3 +126,8 @@ def mock_roll_dice():
assert game.find_player_by_id("C").score == 3
assert game.find_player_by_id("D").score == 1
assert game.find_player_by_id("E").score == 1
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0
35 changes: 35 additions & 0 deletions backend/tests/integration/happy_path/test_happy_path_round3.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ def mock_roll_dice():
game_service.cast_spell(game_id, "A", "Magic 1")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("A").get_HP() == 3
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法7 X列
assert game.turn == 2
Expand All @@ -64,6 +69,11 @@ def mock_roll_dice():
assert game.find_player_by_id("A").get_HP() == 2
assert len(game.find_player_by_id("B").spells) == 4
assert len(game.ladder) == 1
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法7 AA列
assert game.turn == 2
Expand All @@ -73,6 +83,11 @@ def mock_roll_dice():
assert game.find_player_by_id("A").get_HP() == 1
assert len(game.find_player_by_id("B").spells) == 3
assert len(game.ladder) == 2
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B補充手牌 AB列
assert game.current_player == 1
Expand All @@ -81,20 +96,35 @@ def mock_roll_dice():
assert game.find_player_by_id("B").spells[3] == "Magic 6"
assert game.find_player_by_id("B").spells[4] == "Magic 8"
assert len(game.warehouse) == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# C施法4 AC列
assert game.turn == 3
assert game.current_player == 2
game_service.cast_spell(game_id, "C", "Magic 4")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("C").get_HP() == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# D施法5 AD列
assert game.turn == 4
assert game.current_player == 3
game_service.cast_spell(game_id, "D", "Magic 5")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("D").get_HP() == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# E施法5,殺死玩家A, 系統自動結算 AE列
assert game.turn == 5
Expand All @@ -106,3 +136,8 @@ def mock_roll_dice():
assert game.find_player_by_id("C").score == 4
assert game.find_player_by_id("D").score == 2
assert game.find_player_by_id("E").score == 4
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0
30 changes: 30 additions & 0 deletions backend/tests/integration/happy_path/test_happy_path_round4.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ def test_happy_path_round4(game_service, five_player_game):
game_service.cast_spell(game_id, "A", "Magic 5")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("A").get_HP() == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法5 AI列
assert game.turn == 2
Expand All @@ -52,26 +57,46 @@ def test_happy_path_round4(game_service, five_player_game):
assert game.find_player_by_id("C").get_HP() == 5
assert len(game.find_player_by_id("B").spells) == 4
assert len(game.ladder) == 1
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法6 AJ列
game_service.cast_spell(game_id, "B", "Magic 6")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("C").get_HP() == 4
assert len(game.find_player_by_id("B").spells) == 3
assert len(game.ladder) == 2
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法6 AK列
game_service.cast_spell(game_id, "B", "Magic 6")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("C").get_HP() == 3
assert len(game.find_player_by_id("B").spells) == 2
assert len(game.ladder) == 3
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法8 AL列
game_service.cast_spell(game_id, "B", "Magic 8")
game = game_service.game_repository.get_game_by_id(game_id)
assert len(game.find_player_by_id("B").spells) == 1
assert len(game.ladder) == 4
assert game.damage_info[0] == 0
assert game.damage_info[1] == 1
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B施法8, 玩家將手牌用完, 系統自動結算 AM列
game_service.cast_spell(game_id, "B", "Magic 8")
Expand All @@ -81,5 +106,10 @@ def test_happy_path_round4(game_service, five_player_game):
assert game.find_player_by_id("C").score == 4
assert game.find_player_by_id("D").score == 2
assert game.find_player_by_id("E").score == 4
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0
# 勝利者出現,遊戲結束
assert game.active is False

0 comments on commit 7b565fd

Please sign in to comment.