$topdir = File.expand_path File.dirname(__FILE__)
require 'test/unit'
require 'tempfile'
-require 'mock_game'
-require 'mock_log_message'
+require 'test/mock_game'
+require 'test/mock_log_message'
require 'test/mock_player'
require 'shogi_server/login'
require 'shogi_server/player'
assert_instance_of(ShogiServer::GameChallengeCommand, cmd)
end
+ def test_game_challenge_command_game_fischer
+ cmd = ShogiServer::Command.factory("%%GAME default-600-10F +", @p)
+ assert_instance_of(ShogiServer::GameChallengeCommand, cmd)
+ end
+
def test_game_challenge_command_challenge
cmd = ShogiServer::Command.factory("%%CHALLENGE default-1500-0 -", @p)
assert_instance_of(ShogiServer::GameChallengeCommand, cmd)
end
+ def test_game_challenge_command_challenge_fischer
+ cmd = ShogiServer::Command.factory("%%CHALLENGE default-600-10F -", @p)
+ assert_instance_of(ShogiServer::GameChallengeCommand, cmd)
+ end
+
def test_chat_command
cmd = ShogiServer::Command.factory("%%CHAT hello", @p)
assert_instance_of(ShogiServer::ChatCommand, cmd)
assert_instance_of(ShogiServer::SetBuoyCommand, cmd)
end
+ def test_setbuoy_command_fischer
+ cmd = ShogiServer::Command.factory("%%SETBUOY buoy_test-600-10F +7776FU", @p)
+ assert_instance_of(ShogiServer::SetBuoyCommand, cmd)
+ end
+
def test_setbuoy_command_with_counter
cmd = ShogiServer::Command.factory("%%SETBUOY buoy_test-1500-0 +7776FU 3", @p)
assert_instance_of(ShogiServer::SetBuoyCommand, cmd)
end
+ def test_setbuoy_command_with_counter_fischer
+ cmd = ShogiServer::Command.factory("%%SETBUOY buoy_test-600-10F +7776FU 3", @p)
+ assert_instance_of(ShogiServer::SetBuoyCommand, cmd)
+ end
+
def test_deletebuoy_command
cmd = ShogiServer::Command.factory("%%DELETEBUOY buoy_test-1500-0", @p)
assert_instance_of(ShogiServer::DeleteBuoyCommand, cmd)
end
+ def test_deletebuoy_command_fischer
+ cmd = ShogiServer::Command.factory("%%DELETEBUOY buoy_test-600-10F", @p)
+ assert_instance_of(ShogiServer::DeleteBuoyCommand, cmd)
+ end
+
def test_getbuoycount_command
cmd = ShogiServer::Command.factory("%%GETBUOYCOUNT buoy_test-1500-0", @p)
assert_instance_of(ShogiServer::GetBuoyCountCommand, cmd)
end
+ def test_getbuoycount_command_fischer
+ cmd = ShogiServer::Command.factory("%%GETBUOYCOUNT buoy_test-600-10F", @p)
+ assert_instance_of(ShogiServer::GetBuoyCountCommand, cmd)
+ end
+
def test_fork_command
cmd = ShogiServer::Command.factory("%%FORK server-denou-14400-60+p1+p2+20130223185013 buoy_denou-14400-60", @p)
assert_instance_of(ShogiServer::ForkCommand, cmd)
end
+ def test_fork_command_fischer
+ cmd = ShogiServer::Command.factory("%%FORK server-denou-14400-60F+p1+p2+20130223185013 buoy_denou-14400-60F", @p)
+ assert_instance_of(ShogiServer::ForkCommand, cmd)
+ end
+
+ def test_fork_command2
+ cmd = ShogiServer::Command.factory("%%FORK server-denou-14400-60+p1+p2+20130223185013", @p)
+ assert_instance_of(ShogiServer::ForkCommand, cmd)
+ end
+
+ def test_fork_command2_fischer
+ cmd = ShogiServer::Command.factory("%%FORK server-denou-14400-60F+p1+p2+20130223185013", @p)
+ assert_instance_of(ShogiServer::ForkCommand, cmd)
+ end
+
def test_void_command
cmd = ShogiServer::Command.factory("%%%HOGE", @p)
assert_instance_of(ShogiServer::VoidCommand, cmd)
cmd = ShogiServer::Command.factory("should_be_error", @p)
assert_instance_of(ShogiServer::ErrorCommand, cmd)
cmd.call
- assert_match /unknown command should_be_error/, cmd.msg
+ assert_match /unknown command: should_be_error/, cmd.msg
end
def test_error_login
cmd = ShogiServer::Command.factory("LOGIN hoge foo", @p)
assert_instance_of(ShogiServer::ErrorCommand, cmd)
cmd.call
- assert_no_match /unknown command LOGIN hoge foo/, cmd.msg
+ assert_no_match /unknown command: LOGIN hoge foo/, cmd.msg
cmd = ShogiServer::Command.factory("LOGin hoge foo", @p)
assert_instance_of(ShogiServer::ErrorCommand, cmd)
cmd.call
- assert_no_match /unknown command LOGIN hoge foo/, cmd.msg
+ assert_no_match /unknown command: LOGIN hoge foo/, cmd.msg
cmd = ShogiServer::Command.factory("LOGIN hoge foo", @p)
assert_instance_of(ShogiServer::ErrorCommand, cmd)
cmd.call
- assert_no_match /unknown command LOGIN hoge foo/, cmd.msg
+ assert_no_match /unknown command: LOGIN hoge foo/, cmd.msg
cmd = ShogiServer::Command.factory("LOGINhoge foo", @p)
assert_instance_of(ShogiServer::ErrorCommand, cmd)
cmd.call
- assert_no_match /unknown command LOGIN hoge foo/, cmd.msg
+ assert_no_match /unknown command: LOGIN hoge foo/, cmd.msg
end
end
assert @buoy.is_new_game?("buoy_hoge-1500-0")
cmd = ShogiServer::SetBuoyCommand.new "%%SETBUOY", @p, "buoy_hoge-1500-0", "+7776FU", 2
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert !@buoy.is_new_game?("buoy_hoge-1500-0")
assert !$p1.out.empty?
assert !$p2.out.empty?
assert @buoy.is_new_game?("buoy_hoge-1500-0")
cmd = ShogiServer::SetBuoyCommand.new "%%SETBUOY", @p, "buoy_hoge-1500-0", "+7776FU", 1
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert @buoy.is_new_game?("buoy_hoge-1500-0")
assert !$p1.out.empty?
assert !$p2.out.empty?
assert @buoy.is_new_game?("buoy_hoge-1500-0")
cmd = ShogiServer::SetBuoyCommand.new "%%SETBUOY", @p, "buoyhoge-1500-0", "+7776FU", 1
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert $p1.out.empty?
assert $p2.out.empty?
assert @buoy.is_new_game?("buoy_hoge-1500-0")
cmd = ShogiServer::SetBuoyCommand.new "%%SETBUOY", @p, "buoy_duplicated-1500-0", "+7776FU", 1
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert $p1.out.empty?
assert $p2.out.empty?
assert !@buoy.is_new_game?("buoy_duplicated-1500-0")
assert @buoy.is_new_game?("buoy_badmoves-1500-0")
cmd = ShogiServer::SetBuoyCommand.new "%%SETBUOY", @p, "buoy_badmoves-1500-0", "+7776FU+8786FU", 1
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert $p1.out.empty?
assert $p2.out.empty?
assert @buoy.is_new_game?("buoy_badmoves-1500-0")
assert @buoy.is_new_game?("buoy_badcounter-1500-0")
cmd = ShogiServer::SetBuoyCommand.new "%%SETBUOY", @p, "buoy_badcounter-1500-0", "+7776FU", 0
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert $p1.out.empty?
assert $p2.out.empty?
assert @buoy.is_new_game?("buoy_badcounter-1500-0")
assert !@buoy.is_new_game?(buoy_game.game_name)
cmd = ShogiServer::DeleteBuoyCommand.new "%%DELETEBUOY", @p, buoy_game.game_name
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert $p1.out.empty?
assert $p2.out.empty?
assert @buoy.is_new_game?(buoy_game.game_name)
assert @buoy.is_new_game?(buoy_game.game_name)
cmd = ShogiServer::DeleteBuoyCommand.new "%%DELETEBUOY", @p, buoy_game.game_name
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert $p1.out.empty?
assert $p2.out.empty?
assert @buoy.is_new_game?(buoy_game.game_name)
cmd = ShogiServer::DeleteBuoyCommand.new "%%DELETEBUOY", @p, buoy_game.game_name
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert_equal "##[ERROR] you are not allowed to delete a buoy game that you did not set: buoy_anotherplayer-1500-0\n", @p.out.first
assert !@buoy.is_new_game?(buoy_game.game_name)
end
#
#
+class TestForkCommand < Test::Unit::TestCase
+ def setup
+ @player = MockPlayer.new
+ end
+
+ def test_new_buoy_game_name
+ src = "%%FORK server+denou-14400-60+p1+p2+20130223185013"
+ c = ShogiServer::ForkCommand.new src, @player, "server+denou-14400-60+p1+p2+20130223185013", nil, 13
+ c.decide_new_buoy_game_name
+ assert_equal "buoy_denou_13-14400-60", c.new_buoy_game
+ end
+
+ def test_new_buoy_game_name2
+ src = "%%FORK server+denou-14400-060+p1+p2+20130223185013"
+ c = ShogiServer::ForkCommand.new src, @player, "server+denou-14400-060+p1+p2+20130223185013", nil, 13
+ c.decide_new_buoy_game_name
+ assert_equal "buoy_denou_13-14400-060", c.new_buoy_game
+ end
+end
+
+#
+#
class TestGetBuoyCountCommand < BaseTestBuoyCommand
def test_call
buoy_game = ShogiServer::BuoyGame.new("buoy_testdeletebuoy-1500-0", "+7776FU", @p.name, 1)
assert !@buoy.is_new_game?(buoy_game.game_name)
cmd = ShogiServer::GetBuoyCountCommand.new "%%GETBUOYCOUNT", @p, buoy_game.game_name
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert_equal ["##[GETBUOYCOUNT] 1\n", "##[GETBUOYCOUNT] +OK\n"], @p.out
end
assert @buoy.is_new_game?(buoy_game.game_name)
cmd = ShogiServer::GetBuoyCountCommand.new "%%GETBUOYCOUNT", @p, buoy_game.game_name
rt = cmd.call
- assert :continue, rt
+ assert_equal :continue, rt
assert_equal ["##[GETBUOYCOUNT] -1\n", "##[GETBUOYCOUNT] +OK\n"], @p.out
end
end
@player.out.join)
end
end
-