Groovy for Domain-specific Languages - Second Edition

(nextflipdebug2) #1

Integrating It All


[ 322 ]

We can verify this with a Spock test:


given:
def engine = new GameEngineClient()

expect:
!engine.session
when:
def savedSession = engine.game_start()
then:
engine.session
engine.page == 'players'
engine.session.players.size() == 2
engine.session.players[0].playerClass == 'NextFreeSpacePlayer'
engine.session.players[1].playerClass == 'RandomPlayer'
when:
engine = new GameEngineClient()
savedSession = engine.select_players(
[
playerX: 'NextFreeSpacePlayer',
playerO: 'NextFreeSpacePlayer'
],
savedSession)
then:
engine.page == 'roundX'
when:
engine = new GameEngineClient()
savedSession = engine.play_round([player: 'X'], savedSession)
then:
engine.page == 'roundO'
when:
engine = new GameEngineClient()
savedSession = engine.play_round([player: 'O'], savedSession)
engine = new GameEngineClient()
savedSession = engine.play_round([player: 'X'], savedSession)
engine = new GameEngineClient()
savedSession = engine.play_round([player: 'O'], savedSession)
engine = new GameEngineClient()
savedSession = engine.play_round([player: 'X'], savedSession)
engine = new GameEngineClient()
savedSession = engine.play_round([player: 'O'], savedSession)
then:
engine.page == 'roundX'

http://www.ebook3000.com
Free download pdf