OSDN Git Service

[shogi-server] Enhance capability of Floodgate configuration file
[shogi-server/shogi-server.git] / test / TC_floodgate_history.rb
1 $:.unshift File.join(File.dirname(__FILE__), "..")
2 require 'test/unit'
3 require 'yaml'
4 require 'shogi_server'
5 require 'shogi_server/player'
6 require 'shogi_server/league/floodgate'
7
8 $league = ShogiServer::League.new(File.dirname(__FILE__))
9 $league.event = "TC_floodgate_history"
10
11 class MockGame
12   attr_accessor :game_id, :game_name
13
14   def regist_observers
15     # do nothing
16   end
17 end
18
19 class MockPlayer < ShogiServer::BasicPlayer
20   attr_accessor :status
21   attr_accessor :last_command_at
22 end
23
24 class TestHistory < Test::Unit::TestCase
25   def setup
26     @orig_logger = $logger
27     $logger ||= Logger.new(STDERR)
28   end
29
30   def teardown
31     $logger = @orig_logger
32   end
33
34   def removed_file
35     file = Pathname.new "test_floodgate_history.yaml"
36     if file.exist?
37       file.delete
38     end
39     assert(!file.exist?)
40     return file
41   end
42
43   def test_load_no_file
44     file = removed_file
45
46     history = ShogiServer::League::Floodgate::History.new(file)
47     history.load
48     assert(true)
49   end
50
51   def test_load_empty_file
52     file = removed_file
53
54     file.open("w") {|f| f.write ""}
55     assert(file.exist?)
56
57     history = ShogiServer::League::Floodgate::History.new(file)
58     history.load
59     assert(true)
60
61     a = MockPlayer.new
62     a.name = "a"
63     a.win  = 1
64     a.loss = 2
65     a.rate = 0
66     a.last_game_win = false
67     a.sente = true
68     a.status = ""
69     b = MockPlayer.new
70     b.name = "b"
71     b.win  = 10
72     b.loss = 20
73     b.rate = 1500
74     b.last_game_win = true
75     b.sente = false
76     b.status = ""
77
78     game = MockGame.new
79     game.game_id = "dummy_game_id"
80     game.game_name = "dummy_game_name"
81     
82     gr = ShogiServer::GameResult.new(game, a, b)
83     history.update(gr)
84     assert true
85   end
86 end