Sha256: a93d6fd7ce3275388c272116b4a0b0da37a3302b87714a689ddd0974d29114bd

Contents?: true

Size: 920 Bytes

Versions: 1

Compression:

Stored size: 920 Bytes

Contents

module TestXml
  module Spec
    class MatchXml
      include TestXml::Matchers

      def initialize(expected, compare_values = false)
        @expected = expected
        @compare_values = compare_values
      end

      def matches?(actual)
        @actual = actual
        match_xml?(@actual, @expected, @compare_values)
      end

      def failure_message_for_should
        "expected\n#{@actual} to match#{structure_message}\n#{@expected}"
      end

      def failure_message_for_should_not
        "expected\n#{@actual} not to match#{structure_message}\n#{@expected}"
      end

      private
      def structure_message
        " structure" unless @compare_values
      end
    end

    def match_xml(expected)
      MatchXml.new(expected, true)
    end

    def match_xml_structure(expected)
      MatchXml.new(expected, false)
    end
  end
end

class Spec::Example::ExampleGroup
  include TestXml::Spec
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
test_xml-0.0.1 lib/test_xml/spec.rb