Sha256: b0a4c6aef761895916c14c1db1c933c3e70b4f90985ce5355c512327fd2b1b67
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
require 'ostruct' module StonesSpec class Example < OpenStruct def initialize(subject, attributes) super attributes @title = attributes[:title] @subject = subject @precondition = Precondition.from_example(self) end def execution_data(source) { source: @subject.test_program(source, @precondition.arguments), initial_board: @precondition.initial_board_gbb } end def execute!(files, parser) parser.run(files[:source], files[:initial_board], files[:final_board]) end def result(files, execution, postcondition) if execution[:status] == :aborted raise Gobstones::AbortedError, execution[:result] if execution[:status] == :syntax_error raise Gobstones::SyntaxError, execution[:result] end postcondition.validate(files[:initial_board].open.read, files[:final_board].open.read, execution[:result], execution[:status]) end def title @title || default_title end private def default_title @subject.default_title @precondition.arguments end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
stones-spec-1.0.3 | lib/example.rb |