Sha256: 87598a54f97c82ee6ed46ba260a47732143fd8a8bbc886536185c419c11b630f

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

require 'assay/assertion'

module Assay

  class EmptyFailure < Assertion

    def self.assertion_name
      :empty
    end

    def self.assertion_operator
      :empty?
    end

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

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

      exp = @arguments.first.inspect

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

  end


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

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

    alias_method :assert_not_empty, :refute_empty
  end


  module Matchers
    # Empty?
    #
    #   object.assert is_true
    #
    def is_empty
      EmptyFailure.to_matcher
    end

    # Empty?
    #
    #   object.should be_empty
    #
    def be_empty
      EmptyFailure.to_matcher
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

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