1 # Copyright (c) 2009 Paolo Capriotti <p.capriotti@gmail.com>
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
11 class TestProtocol < Test::Unit::TestCase
13 @protocol = ICS::Protocol.new(false)
17 example1 = "Creating: azsxdc (++++) Hispanico (1684) unrated crazyhouse 3 0"
18 example2 = "{Game 502 (azsxdc vs. Hispanico) Creating unrated crazyhouse match.}"
21 @protocol.observe(:creating_game) { |game_info| }
22 @protocol.process(example1)
23 @protocol.process(example2)
25 assert_not_nil game_info
26 assert_equal 'azsxdc', game_info[:white][:name]
27 assert_equal 0, game_info[:white][:score]
28 assert_equal 'Hispanico', game_info[:black][:name]
29 assert_equal 1684, game_info[:black][:score]
30 assert_equal 'unrated', game_info[:rated]
31 assert_equal 'crazyhouse', game_info[:type]
32 assert_equal 3, game_info[:time]
33 assert_equal 0, game_info[:increment]
38 @protocol.observe :login_prompt do
41 @protocol.process_partial("login: ")
47 @protocol.observe :login_prompt do
50 @protocol.process("login: ")
56 @protocol.observe :beep do
59 @protocol.process("\a")