spec/response_spec.rb in relax-0.0.2 vs spec/response_spec.rb in relax-0.0.3
- old
+ new
@@ -20,23 +20,26 @@
<Message>Failed</Message>
</Error>
</RESTResponse>
EOF
-class TestResponse < Relax::Response
+class BaseResponse < Relax::Response
+ parameter :status, :required => true
+ parameter :request_id, :element => :requestid, :type => :integer
+end
+
+class TestResponse < BaseResponse
class Token < Relax::Response
parameter :token_id, :element => :tokenid
parameter :status
end
class Error < Relax::Response
parameter :code, :type => :integer
parameter :message
end
- parameter :status
- parameter :request_id, :element => :requestid, :type => :integer
parameter :valid_request, :element => :requestid, :attribute => :valid
parameter :tokens, :collection => Token
parameter :error, :type => Error
end
@@ -81,18 +84,26 @@
TestResponse.new(XML).respond_to?(:status).should be_true
end
it 'should automatically pull parameters from the XML' do
response = TestResponse.new(XML)
- response.status.should eql('Success')
- response.request_id.should eql(44287)
response.valid_request.should eql('true')
response.tokens.length.should eql(2)
response.tokens.first.status.should eql('Active')
response.error.code.should eql(1)
response.error.message.should eql('Failed')
end
+ it "should automatically pull its parent's parameters from the XML" do
+ response = TestResponse.new(XML)
+ response.status.should eql('Success')
+ response.request_id.should eql(44287)
+ end
+
it 'should be relationally equivalent to its children' do
(Relax::Response === TestResponse).should be_true
+ end
+
+ it 'should raise MissingParameter if required parameters are missing' do
+ proc { TestResponse.new('') }.should raise_error(Relax::MissingParameter)
end
end