OSDN Git Service

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