1 $:.unshift File.join(File.dirname(__FILE__), "..")
5 require 'shogi_server/game'
7 $league = ShogiServer::League.new(File.dirname(__FILE__))
8 $league.event = "TC_game_result"
12 attr_accessor :sente, :status
19 class TestGameResult < Test::Unit::TestCase
21 attr_accessor :game_name
30 @p1 = ShogiServer::BasicPlayer.new
32 @p2 = ShogiServer::BasicPlayer.new
37 def test_game_result_win
38 gr = ShogiServer::GameResultWin.new(@game, @p1, @p2)
39 assert_equal(@p1.last_game_win, true)
40 assert_equal(@p2.last_game_win, false)
41 assert_equal(nil, gr.log_summary_type)
44 def test_game_result_abnormal_win
45 gr = ShogiServer::GameResultAbnormalWin.new(@game, @p1, @p2)
46 assert_equal(@p1.last_game_win, true)
47 assert_equal(@p2.last_game_win, false)
48 assert_equal("abnormal", gr.log_summary_type)
51 def test_game_result_kachi_win
52 gr = ShogiServer::GameResultKachiWin.new(@game, @p1, @p2)
53 assert_equal(@p1.last_game_win, true)
54 assert_equal(@p2.last_game_win, false)
55 assert_equal("kachi", gr.log_summary_type)
58 def test_game_result_illegal_kachi_win
59 gr = ShogiServer::GameResultIllegalKachiWin.new(@game, @p1, @p2)
60 assert_equal(@p1.last_game_win, true)
61 assert_equal(@p2.last_game_win, false)
62 assert_equal("illegal kachi", gr.log_summary_type)
65 def test_game_result_illegal_move_win
66 gr = ShogiServer::GameResultIllegalMoveWin.new(@game, @p1, @p2)
67 assert_equal(@p1.last_game_win, true)
68 assert_equal(@p2.last_game_win, false)
69 assert_equal("illegal move", gr.log_summary_type)
72 def test_game_result_uchifuzume_win
73 gr = ShogiServer::GameResultUchifuzumeWin.new(@game, @p1, @p2)
74 assert_equal(@p1.last_game_win, true)
75 assert_equal(@p2.last_game_win, false)
76 assert_equal("uchifuzume", gr.log_summary_type)
79 def test_game_result_oute_kaihi_more_win
80 gr = ShogiServer::GameResultOuteKaihiMoreWin.new(@game, @p1, @p2)
81 assert_equal(@p1.last_game_win, true)
82 assert_equal(@p2.last_game_win, false)
83 assert_equal("oute_kaihimore", gr.log_summary_type)
86 def test_game_result_outori_win
87 gr = ShogiServer::GameResultOutoriWin.new(@game, @p1, @p2)
88 assert_equal(@p1.last_game_win, true)
89 assert_equal(@p2.last_game_win, false)
90 assert_equal("outori", gr.log_summary_type)
93 def test_game_result_toryo_win
94 gr = ShogiServer::GameResultToryoWin.new(@game, @p1, @p2)
95 assert_equal(@p1.last_game_win, true)
96 assert_equal(@p2.last_game_win, false)
97 assert_equal("toryo", gr.log_summary_type)
100 def test_game_result_oute_sennichite_win
101 gr = ShogiServer::GameResultOuteSennichiteWin.new(@game, @p1, @p2)
102 assert_equal(@p1.last_game_win, true)
103 assert_equal(@p2.last_game_win, false)
104 assert_equal("oute_sennichite", gr.log_summary_type)
107 def test_game_result_draw
108 gr = ShogiServer::GameResultDraw.new(@game, @p1, @p2)
109 assert_equal(@p1.last_game_win, false)
110 assert_equal(@p2.last_game_win, false)
111 assert_equal(nil, gr.log_summary_type)
114 def test_game_result_sennichite_draw
115 gr = ShogiServer::GameResultSennichiteDraw.new(@game, @p1, @p2)
120 assert_equal(@p1.last_game_win, false)
121 assert_equal(@p2.last_game_win, false)
122 assert_equal("sennichite", gr.log_summary_type)
126 assert_equal("%SENNICHITE", $cache_state[0])
129 def test_game_result_timeout
130 gr = ShogiServer::GameResultTimeoutWin.new(@game, @p2, @p1)
137 assert_equal("%TIME_UP", $cache_state[0])