main
1# frozen_string_literal: true
2
3require 'rspec/expectations'
4
5RSpec::Matchers.define :match_xsd do |expected|
6 match do |actual|
7 file = File.expand_path(File.join(__dir__, "../../fixtures/xsd/#{expected}.xsd"))
8 xml = Nokogiri::XML(actual).document
9 Dir.chdir(File.dirname(file)) do
10 xsd = Nokogiri::XML::Schema(IO.read(file))
11 errors = xsd.validate(xml)
12 @actual = errors
13 expect(errors).to be_empty
14 end
15 end
16
17 diffable
18end