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