Sha256: f4281f1a5f680ff708b87ab830b840e719f74fa34d614f861e5d035c6fa2dad2

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'assay/assertions/compare_failure'

module Assay

  class FalseFailure < CompareFailure

    def self.assertion_name
      :false
    end

    def self.assertion_operator
      :false?
    end

    # Check assertion.
    def self.pass?(exp)
      FalseClass === exp
    end

    #
    def to_s
      return super unless @arguments.size == 1

      exp = @arguments[0].inspect

      if @_negated
        "Expected #{exp} to NOT be false"
      else
        "Expected #{exp} to be false"
      end
    end

  end


  module Assertives
    # Passed if object is +false+.
    #
    def assert_false(exp, opts={})
      opts[:backtrace] ||= caller
      FalseFailure.assert(exp, opts)
    end

    # Passed if object is not +false+.
    #
    #   assert_not_false(false)
    #
    def assert_not_false(exp, opts={})
      opts[:backtrace] ||= caller
      FalseFailure.refute(exp, opts)
    end
  end


  module Matchers
    #
    #
    #   value.assert is_false
    #
    def is_false
      FalseFailure.to_matcher
    end

    #
    #
    #   value.should be_false
    #
    def be_false
      FalseFailure.to_matcher
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
assay-0.2.0 lib/assay/assertions/false_failure.rb