Handle game termination on ICS.
[kaya.git] / test / test_history.rb
blob1830a41b26cc8cd40b366b62a18d63ff83eab2b6
1 require 'test/unit'
2 require 'history'
4 class TestHistory < Test::Unit::TestCase
5   def setup
6     @history = History.new("initial_state")
7   end
8   
9   def test_initial_state
10     assert_equal 0, @history.current
11     assert_equal "initial_state", @history.state
12     assert_nil @history.move
13     assert_equal 1, @history.size
14   end
15   
16   def test_add_move
17     @history.add_move("new_state", "first_move")
18     assert_equal 1, @history.current
19     assert_equal "new_state", @history.state
20     assert_equal "first_move", @history.move
21     assert_equal 2, @history.size
22     @history.add_move("new_new_state", "second_move")
23     assert_equal 2, @history.current
24     assert_equal "new_new_state", @history.state
25     assert_equal "second_move", @history.move
26     assert_equal 3, @history.size
27   end
28   
29   def test_back_on_first
30     assert_raise History::OutOfBound do
31       @history.back
32       assert_equal 0, @history.current
33     end
34   end
35   
36   def test_forward_on_last
37     @history.add_move("new_state", "first_move")
38     assert_raise History::OutOfBound do
39       @history.forward
40       assert_equal 1, @history.current
41     end
42   end
43   
44   def test_back
45     @history.add_move("new_state", "first_move")
46     @history.back
47     assert_equal 0, @history.current
48   end
49   
50   def test_forward
51     @history.add_move("new_state", "first_move")
52     @history.back
53     @history.forward
54     assert_equal 1, @history.current
55   end
56   
57   def test_overwrite_moves
58     @history.add_move("new_state1", "first_move1")
59     @history.add_move("new_new_state1", "second_move1")
60     @history.back
61     @history.back
62     @history.add_move("new_state2", "first_move2")
63     assert_equal 1, @history.current
64     assert_equal "new_state2", @history.state
65     assert_equal "first_move2", @history.move
66     assert_equal 2, @history.size
67   end
68 end