Sha256: 9674b12a771e9860ae39b25ee50ac6bdc7d443e1e86e1fa011da1ea2a1381337

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

module Theotokos
  module Assertion

    class TestAssertion
    
      def self.compare_file(expected, actual)
        raise Exception, "File #{expected} does not exist" unless File.exist? expected
        raise Exception, "File #{actual} does not exist" unless File.exist? actual
        
        TestAssertion.compare_text File.read(expected), File.read(actual), :equals
      end
    
      def self.compare_text(expected, actual, assertion = :equals)
        case assertion
          when :equals then TestAssertion.assert_equals expected, actual
          when :contains then TestAssertion.assert_contains expected, actual
          when :not_contains then TestAssertion.assert_not_contains expected, actual
          when :regex then TestAssertion.assert_match expected, actual
          else nil
        end
      end
      
      def self.assert_equals(expected, actual)
        opts = { :element_order => false, :normalize_whitespace => true }
        EquivalentXml.equivalent?(expected, actual, opts)
      end
      
      def self.assert_contains(expected, actual)
        actual.to_s.include? expected.to_s
      end
      
      def self.assert_not_contains(expected, actual)
        !TestAssertion.assert_contains(expected, actual)
      end
      
      def self.assert_match(regex, actual)
        regex = Regexp.new(regex.to_s) unless regex.instance_of? Regexp
        !(regex =~ actual.to_s).nil?
      end
    
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
theotokos-0.1.3 lib/assertion/test_assertion.rb
theotokos-0.1.2 lib/assertion/test_assertion.rb
theotokos-0.1.1 lib/assertion/test_assertion.rb