test/unit/test_fault.rb in lolsoap-0.1.4 vs test/unit/test_fault.rb in lolsoap-0.2.0

- old
+ new

@@ -2,32 +2,50 @@ require 'lolsoap/envelope' require 'lolsoap/fault' module LolSoap describe Fault do - let(:request) { OpenStruct.new(:soap_namespace => Envelope::SOAP_NAMESPACE) } - let(:node) do - doc = Nokogiri::XML(File.read(TEST_ROOT + '/fixtures/stock_quote_fault.xml')) - doc.at_xpath('//soap:Fault', 'soap' => Envelope::SOAP_NAMESPACE) - end + examples = proc do + describe '#code' do + it 'returns the code' do + subject.code.must_equal 'soap:Sender' + end + end - subject { Fault.new(request, node) } + describe '#reason' do + it 'returns the reason' do + subject.reason.must_match(/^Omg.*crashed!$/) + end + end - describe '#code' do - it 'returns the code' do - subject.code.must_equal 'soap:Sender' + describe '#detail' do + it 'returns the detail' do + subject.detail.must_equal '<Foo>Some detail</Foo>' + end end end - describe '#reason' do - it 'returns the reason' do - subject.reason.must_match(/^Omg.*crashed!$/) + describe 'SOAP 1.1' do + let(:request) { OpenStruct.new(:soap_version => '1.2', :soap_namespace => Envelope::SOAP_1_2) } + let(:node) do + doc = Nokogiri::XML(File.read(TEST_ROOT + '/fixtures/stock_quote_fault.xml')) + doc.at_xpath('//soap:Fault', 'soap' => Envelope::SOAP_1_2) end + + subject { Fault.new(request, node) } + + instance_eval(&examples) end - describe '#detail' do - it 'returns the detail' do - subject.detail.must_equal '<Foo>Some detail</Foo>' + describe 'SOAP 1.2' do + let(:request) { OpenStruct.new(:soap_version => '1.1', :soap_namespace => Envelope::SOAP_1_1) } + let(:node) do + doc = Nokogiri::XML(File.read(TEST_ROOT + '/fixtures/stock_quote_fault_soap_1_1.xml')) + doc.at_xpath('//soap:Fault', 'soap' => Envelope::SOAP_1_1) end + + subject { Fault.new(request, node) } + + instance_eval(&examples) end end end