Sha256: c161e37a88147cfe5c3ab8d1f7154c7af13433f8768e734d6dd1daecd8f31e9e

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

require_relative 'assertion'

module Rproof
  class TestResult
    def initialize(name, description)
      @name = name
      @description = description
      @assertions = []
      @warnings = []
      @exceptions = []
    end
    attr_reader :name, :description, :assertions, :warnings, :exceptions

    def add_assertion(assertion)
      @assertions << assertion
    end

    def add_warning(warning)
      @warnings << warning
    end

    def add_exception(exception)
      @exceptions << exception
    end

    def successes_nb
      successes.count
    end

    def failures_nb
      failures.count
    end

    def successes
      @assertions.select { |assertion| assertion.is_successful }
    end

    def failures
      @assertions.select { |assertion| not assertion.is_successful }
    end

    def status
      if @exceptions.count > 0
        :exception
      elsif failures_nb > 0
        :failed
      else
        :succeed
      end
    end

    # Return worse status between the two
    def self.get_worse_status(status_1, status_2)
      if [status_1, status_2].include? :exception
        :exception
      elsif [status_1, status_2].include? :failed
        :failed
      else
        :succeed
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rproof-0.0.1 lib/rproof/test_result.rb