1 $:.unshift File.join(File.dirname(__FILE__), "..")
4 $topdir = File.expand_path File.dirname(__FILE__)
6 require 'shogi_server/league/floodgate'
7 require 'shogi_server/league/floodgate_thread'
8 require 'test/mock_log_message'
10 class MySetupFloodgate < ShogiServer::SetupFloodgate
11 def initialize(game_names)
13 @is_reload_shogi_server = false
14 @is_start_games = false
16 attr_reader :is_reload_shogi_server, :is_start_games
18 def reload_shogi_server
19 @is_reload_shogi_server = true
22 def start_games(floodgate)
23 @is_start_games = floodgate
27 class TestSetupFloodgate < Test::Unit::TestCase
29 game_names = %w(floodgate-900-0 floodgate-3600-0)
30 @sf = MySetupFloodgate.new game_names
33 def test_initialize_empty
34 sf = ShogiServer::SetupFloodgate.new []
40 leagues = @sf.mk_leagues
41 assert_equal 2, leagues.size
42 assert_equal "floodgate-900-0", leagues[0].game_name
43 assert_equal "floodgate-3600-0", leagues[1].game_name
51 fb.next_time = now + 1
52 assert_equal fa.next_time, @sf.next_league([fa]).next_time
53 assert_equal fa.next_time, @sf.next_league([fa,fb]).next_time
54 assert_equal fa.next_time, @sf.next_league([fb,fa]).next_time
57 def test_wait_next_floodgate
59 f.next_time = Time.now + 1;
60 assert @sf.wait_next_floodgate f
61 f.next_time = Time.now - 1;
62 assert(!@sf.wait_next_floodgate(f))
65 def test_regenerate_leagues
66 game_names = %w(floodgate-900-0 floodgate-3600-0)
68 next_array = [["floodgate-900-0", now+100], ["floodgate-3600-0", now+200]]
69 objs = @sf.regenerate_leagues(next_array)
70 assert_equal 2, objs.size
71 assert_instance_of ShogiServer::League::Floodgate, objs[0]
72 assert_instance_of ShogiServer::League::Floodgate, objs[1]
79 ret << ShogiServer::League::Floodgate.new($league,
80 {:game_name => "floodgate-900-0",
81 :next_time => (now-100)})
82 ret << ShogiServer::League::Floodgate.new($league,
83 {:game_name => "floodgate-3600-0",
84 :next_time => (now-200)})
89 assert_instance_of Thread, thread
90 assert_equal("floodgate-3600-0", @sf.is_start_games.game_name)