module Matchers module EPP class Code def initialize(expected) @expected = expected end def matches?(response) @xml = response.body actual == expected end def failure_message "Expected EPP code of #{expected}, got #{actual} (#{code_description})" end def description "should have EPP code of #{expected}" end private attr_reader :xml attr_reader :expected def actual xml_document.xpath('//xmlns:result').first['code'].to_i end def code_description xml_document.css('result msg').text end def xml_document @xml_document ||= Nokogiri::XML(xml) end end end end