Sha256: b9f4326ce611fb350d587326f962f9c730bc1d9f8a90ddfeabebb2d30c5a1934

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

module StonesSpec
  module Postcondition
    def self.from(example, check_head_position, show_initial_board)
      if example.final_board
        ExpectedFinalBoard.new(example, check_head_position, show_initial_board)
      elsif example.return
        ExpectedReturnValue.new(example, show_initial_board)
      else
        ExpectedBoom.new(example)
      end
    end

    class ExpectedResult
      include StonesSpec::WithGbbHtmlRendering

      attr_reader :example

      def initialize(example)
        @example = example
      end

      def validate(initial_board_gbb, actual_final_board_gbb, result, status)
        if status == :failed || status == :unknown_error
          [example.title, :failed, make_error_output(result, status, initial_board_gbb)]
        else
          validate_expected_result(initial_board_gbb, actual_final_board_gbb, result)
        end
      end
    end
  end
end

require_relative './expected_boom'
require_relative './expected_final_board'
require_relative './expected_return_value'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stones-spec-1.0.4 lib/postcondition/postcondition.rb
stones-spec-1.0.3 lib/postcondition/postcondition.rb