# !/arch/unix/bin/ruby
require 'test/unit'
require 'code/proxyturn.rb'
require 'code/alliance.rb'
require 'code/category.rb'
require 'code/image.rb'
require 'code/card.rb'
require 'code/deck.rb'
require 'code/hand.rb'
require 'code/squadron.rb'
require 'code/stack.rb'
require 'code/turn.rb'
require 'code/player.rb'
require 'code/administrator.rb'
class TestProxyTurn < Test::Unit::TestCase
def setup
@okay = ''
@aircraft = ''
@keepem = ''
@victory = ''
image = Image.new('.gif')
axis = Axis.new
allies = Allies.new
fighter = Fighter.new
bomber = Bomber.new
@air1 = Aircraft.new(Image.new("question.gif"), "Baku Geki KI-99", axis, bomber, 1)
@air2 = Aircraft.new(Image.new("question.gif"), "Baku Geki KI-99", axis, bomber, 2)
@air3 = Aircraft.new(Image.new("question.gif"), "Baku Geki KI-99", axis, bomber, 3)
@air4 = Aircraft.new(Image.new("Bell P-39D.gif"), "Bell P-39D", allies, fighter, 1)
@air5 = Aircraft.new(Image.new("Bell P-39D.gif"), "Bell P-39D", allies, fighter, 2)
@air6 = Aircraft.new(Image.new("Bell P-39D.gif"), "Bell P-39D", allies, fighter, 3)
@air7 = Aircraft.new(Image.new("Dornier Do 26.gif"), "Dornier Do 26", axis, bomber, 1)
@air8 = Aircraft.new(Image.new("Dornier Do 26.gif"), "Dornier Do 26", axis, bomber, 2)
@air9 = Aircraft.new(Image.new("Dornier Do 26.gif"), "Dornier Do 26", axis, bomber, 3)
@air10 = Aircraft.new(Image.new("Brewster F2A-3.gif"), "Brewster F2A-3", allies, fighter, 1)
@air11 = Aircraft.new(Image.new("Brewster F2A-3.gif"), "Brewster F2A-3", allies, fighter, 2)
@air12 = Aircraft.new(Image.new("Brewster F2A-3.gif"), "Brewster F2A-3", allies, fighter, 3)
@air13 = Aircraft.new(Image.new("Curtiss P-40E.gif"), "Curtiss P-40E", allies, fighter, 1)
@air14 = Aircraft.new(Image.new("Curtiss P-40E.gif"), "Curtiss P-40E", allies, fighter, 2)
@air15 = Aircraft.new(Image.new("Curtiss P-40E.gif"), "Curtiss P-40E", allies, fighter, 3)
@air16 = Aircraft.new(Image.new("Messerschmitt ME-109"), "Messerschmitt ME-109", axis, fighter, 1)
@air17 = Aircraft.new(Image.new("Messerschmitt ME-109"), "Messerschmitt ME-109", axis, fighter, 2)
@air18 = Aircraft.new(Image.new("Messerschmitt ME-109"), "Messerschmitt ME-109", axis, fighter, 3)
@air19 = Aircraft.new(Image.new("Vickers Wellington"), "Vickers Wellington", allies, bomber, 1)
@air20 = Aircraft.new(Image.new("Vickers Wellington"), "Vickers Wellington", allies, bomber, 2)
@air21 = Aircraft.new(Image.new("Vickers Wellington"), "Vickers Wellington", allies, bomber, 3)
@keep1 = Keepem.new(Image.new("keepem.gif"), 1)
@keep2 = Keepem.new(Image.new("keepem.gif"), 2)
@keep3 = Keepem.new(Image.new("keepem.gif"), 3)
@keep4 = Keepem.new(Image.new("keepem.gif"), 4)
@keep5 = Keepem.new(Image.new("keepem.gif"), 5)
@keep6 = Keepem.new(Image.new("keepem.gif"), 6)
@vic1 = Victory.new(Image.new("victory.gif"))
@stack = Stack.new([@air4, @air5, @air7])
@list_of_squads = [Squadron.new([@air1, @air2, @air3])]
@proxy_turn1 = ProxyTurn.new(true, @stack, @list_of_squads)
@proxy_turn2 = ProxyTurn.new(false, @stack, @list_of_squads)
end
def test_contract_get_from_deck
STDOUT << "\n" + 'Please input: ' + "\n"
turn_test = ProxyTurn.new(true, @stack, @list_of_squads)
turn_test.turn_get_a_card_from_deck
assert_raise TimingError do
turn_test.turn_get_a_card_from_deck
end
end
def test_contract_get_cards_from_stack
STDOUT << "\n" + 'Please input: ' + "\n"
test_stack1 = Stack.new([@air1, @air2, @air3, @air4, @air5])
turn_test = ProxyTurn.new(true, test_stack1, @list_of_squads)
turn_test.turn_get_a_card_from_deck
assert_raise TimingError do
turn_test.turn_get_cards_from_stack(3)
end
end
def test_contract_get_cards_from_stack_no_stack_cards
test_stack1 = Stack.new([])
turn_test = ProxyTurn.new(false, test_stack1, @list_of_squads)
assert_raise ContractViolation do
turn_test.turn_get_cards_from_stack(3)
end
end
def test_proxyturn_create
assert_instance_of(ProxyTurn, ProxyTurn.new(true, @stack, @list_of_squads), "ProxyTurn.new failed")
assert_instance_of(ProxyTurn, ProxyTurn.new(false, @stack, @list_of_squads), "ProxyTurn.new failed")
end
def test_turn_get_cards_from_stack_1
STDOUT << "\n" + 'Please input: ' + "\n"
assert_equal([@air4], @proxy_turn1.turn_get_cards_from_stack(1))
end
def test_turn_get_cards_from_stack_2
STDOUT << "\n" + 'Please input: ' + "\n"
assert_equal([@air4, @air5], @proxy_turn1.turn_get_cards_from_stack(2))
end
def test_turn_get_cards_from_stack_3
STDOUT << "\n" + 'Please input: ' + "\n"
assert_equal([@air4, @air5, @air7], @proxy_turn1.turn_get_cards_from_stack(3))
end
def test_turn_get_cards_from_stack_4
STDOUT << "\n" + 'Please input: ' + "\n"
assert_equal([@air4], @proxy_turn2.turn_get_cards_from_stack(1))
end
def test_turn_get_cards_from_stack_5
STDOUT << "\n" + 'Please input: ' + "\n"
assert_equal([@air4, @air5], @proxy_turn2.turn_get_cards_from_stack(2))
end
def test_turn_get_cards_from_stack_6
STDOUT << "\n" + 'Please input: ' + "\n"
assert_equal([@air4, @air5, @air7], @proxy_turn2.turn_get_cards_from_stack(3))
end
def test_turn_get_a_card_from_deck_aircraft
STDOUT << "\n" + 'Please input: ' + "\n"
assert(@air4.cards_have_same_name?(@proxy_turn1.turn_get_a_card_from_deck))
end
def test_turn_get_a_card_from_deck_keepem
STDOUT << "\n" + 'Please input: ' + "\n"
assert(@keep1.cards_have_same_name?(@proxy_turn1.turn_get_a_card_from_deck))
end
def test_turn_get_a_card_from_deck_victory
STDOUT << "\n" + 'Please input: ' + "\n"
assert(@vic1.cards_have_same_name?(@proxy_turn1.turn_get_a_card_from_deck))
end
def test_xml_to_pturn
turn_doc = Document.new File.new("xmltests/turn_test.xml")
ex_bool = true
ex_stck = Stack.new([@vic1])
ex_slst =
[Squadron.new([@air19, @air20, @air21]),
Squadron.new([@air7, @air8, @air9])]
expected = ProxyTurn.new(ex_bool, ex_stck, ex_slst)
results = ProxyTurn.xml_to_proxyturn(turn_doc)
assert_same(expected, results)
end
end