require "spec_helper"
require "integration/support/server"
describe Savon::Message do
before do
@server = IntegrationServer.run
end
after do
@server.stop
end
let(:client_config) {
{
:endpoint => @server.url(:repeat),
:namespace => 'http://example.com',
:log => false,
:element_form_default => :qualified,
:convert_request_keys_to => :camelcase,
:convert_response_tags_to => nil
}
}
let(:client) { Savon.client(client_config) }
context "with a qualified message" do
let(:message) {
{
:email_count => 3,
:user_name => 'josh',
:order! => [:user_name, :email_count]
}
}
let(:converted_keys) {
'josh3'
}
it "converts request Hash keys for which there is not namespace" do
response = client.call(:something, :message => message)
expect(response.xml).to include(converted_keys)
end
end
context 'use_wsa_headers' do
let(:client_config) { super().merge(use_wsa_headers: true) }
context 'headers' do
[ 'wsa:Action', 'wsa:To', 'wsa:MessageID' ].each do |header|
it "should include #{header} header" do
response = client.call(:something, message: {})
expect(response.xml).to include(header)
end
end
end
context 'wsa:MessageID' do
let(:message_id_tag) {
''
}
it 'should include xmlns:wsa attribute' do
response = client.call(:something, message: {})
expect(response.xml).to include(message_id_tag)
end
end
end
end