shared_examples_for 'Soap Read Object' do
  it { should respond_to(:info) }
  it { should respond_to(:get) }
end

shared_examples_for 'Soap CUD Object' do
  it { should respond_to(:post) }
  it { should respond_to(:patch) }
  it { should respond_to(:delete) }
end

shared_examples_for 'Soap Object' do
  it { should respond_to(:id) }
  it_behaves_like 'Soap Read Object'
  it_behaves_like 'Soap CUD Object'
end

shared_examples_for 'Soap Read Only Object' do
  it { should respond_to(:id) }
  it_behaves_like 'Soap Read Object'
  it { should_not respond_to(:post) }
  it { should_not respond_to(:patch) }
  it { should_not respond_to(:delete) }
end