1 $:.unshift File.join(File.dirname(__FILE__), "..")
4 require 'shogi_server/player'
5 require 'shogi_server/login'
6 require 'shogi_server/handicapped_boards'
10 class ShogiServer::BasicPlayer
11 attr_accessor :protocol
15 class TestLogin < Test::Unit::TestCase
17 @p_csa = ShogiServer::BasicPlayer.new
19 @p_x1 = ShogiServer::BasicPlayer.new
21 @csa = ShogiServer::LoginCSA.new(@p_csa,"floodgate-900-0,xyz")
22 @x1 = ShogiServer::Loginx1.new(@p_x1, "xyz")
24 $options["max-identifier"] = ShogiServer::Default_Max_Identifier_Length
28 assert(@p_x1.player_id == @p_csa.player_id)
31 def test_good_identifier
32 assert_true(ShogiServer::Login::good_identifier? "hoge")
33 assert_true(ShogiServer::Login::good_identifier? "12345678901234567890123456789012")
35 $options["max-identifier"] = 128
36 assert_true(ShogiServer::Login::good_identifier? "0"*128)
37 assert_false(ShogiServer::Login::good_identifier? "0"*129)
40 def test_login_factory_x1
41 player = ShogiServer::BasicPlayer.new
43 login = ShogiServer::Login::factory("LOGIN hoge xyz x1", player)
44 assert_instance_of(ShogiServer::Loginx1, login)
45 assert_equal("xyz", player.password)
46 assert_equal(@p_x1.player_id, player.player_id)
49 def test_login_factory_csa
50 player = ShogiServer::BasicPlayer.new
52 login = ShogiServer::Login::factory("LOGIN hoge floodagate-900-0,xyz", player)
53 assert_instance_of(ShogiServer::LoginCSA, login)
54 assert_equal("xyz", player.password)
55 assert_equal(@p_csa.player_id, player.player_id)
56 assert_equal("*", login.turn_preference)
59 def test_login_factory_csa_fischer
60 player = ShogiServer::BasicPlayer.new
62 login = ShogiServer::Login::factory("LOGIN hoge floodagate-600-10F,xyz", player)
63 assert_instance_of(ShogiServer::LoginCSA, login)
64 assert_equal("xyz", player.password)
65 assert_equal(@p_csa.player_id, player.player_id)
66 assert_equal("*", login.turn_preference)
69 def test_login_factory_csa_no_gamename
70 player = ShogiServer::BasicPlayer.new
72 login = ShogiServer::Login::factory("LOGIN hoge xyz", player)
73 assert_instance_of(ShogiServer::LoginCSA, login)
74 assert_equal("xyz", player.password)
75 assert_equal(@p_csa.player_id, player.player_id)
76 assert_equal("*", login.turn_preference)
77 assert_equal(ShogiServer::Default_Game_Name, login.gamename)
80 def test_login_factory_csa_with_black
81 player = ShogiServer::BasicPlayer.new
83 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-0-B,xyz", player)
84 assert_instance_of(ShogiServer::LoginCSA, login)
85 assert_equal("xyz", player.password)
86 assert_equal(@p_csa.player_id, player.player_id)
87 assert_equal("+", login.turn_preference)
88 assert_equal("floodgate-900-0", login.gamename)
91 def test_login_factory_csa_with_black_fischer
92 player = ShogiServer::BasicPlayer.new
94 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-10F-B,xyz", player)
95 assert_instance_of(ShogiServer::LoginCSA, login)
96 assert_equal("xyz", player.password)
97 assert_equal(@p_csa.player_id, player.player_id)
98 assert_equal("+", login.turn_preference)
99 assert_equal("floodgate-900-10F", login.gamename)
102 def test_login_factory_csa_with_white
103 player = ShogiServer::BasicPlayer.new
105 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-0-W,xyz", player)
106 assert_instance_of(ShogiServer::LoginCSA, login)
107 assert_equal("xyz", player.password)
108 assert_equal(@p_csa.player_id, player.player_id)
109 assert_equal("-", login.turn_preference)
110 assert_equal("floodgate-900-0", login.gamename)
113 def test_login_factory_csa_with_white_fischer
114 player = ShogiServer::BasicPlayer.new
116 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-10F-W,xyz", player)
117 assert_instance_of(ShogiServer::LoginCSA, login)
118 assert_equal("xyz", player.password)
119 assert_equal(@p_csa.player_id, player.player_id)
120 assert_equal("-", login.turn_preference)
121 assert_equal("floodgate-900-10F", login.gamename)
124 def test_login_factory_csa_without_trip
125 player = ShogiServer::BasicPlayer.new
127 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-0", player)
128 assert_instance_of(ShogiServer::LoginCSA, login)
129 assert_nil(player.password)
130 assert_equal(nil, player.player_id)
131 assert_equal("*", login.turn_preference)
132 assert_equal("floodgate-900-0", login.gamename)
135 def test_login_factory_csa_without_trip_with_black
136 player = ShogiServer::BasicPlayer.new
138 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-0-B", player)
139 assert_instance_of(ShogiServer::LoginCSA, login)
140 assert_nil(player.password)
141 assert_equal(nil, player.player_id)
142 assert_equal("+", login.turn_preference)
143 assert_equal("floodgate-900-0", login.gamename)
146 def test_login_factory_csa_without_trip_with_white
147 player = ShogiServer::BasicPlayer.new
149 login = ShogiServer::Login::factory("LOGIN hoge floodgate-900-0-W", player)
150 assert_instance_of(ShogiServer::LoginCSA, login)
151 assert_nil(player.password)
152 assert_equal(nil, player.player_id)
153 assert_equal("-", login.turn_preference)
154 assert_equal("floodgate-900-0", login.gamename)