require 'rubygems' require 'test/unit' require 'shoulda' require 'mocha' require 'ssci_inc' class Test::Unit::TestCase def self.should_have_attr_accessor(*args) should "have attr_accessor for #{args.inspect}" do args.each do |a| assert_respond_to subject, a assert_respond_to subject, "#{a}=" end end end def self.should_have_attr_reader(*args) should "have attr_reader for #{args.inspect}" do args.each do |a| assert_respond_to subject, a end end end def self.should_call_builder_with(*args) should "should set type and qualifier attributes" do node = mock subject.expects(:builder). with(*args). returns(node) assert_equal node, subject.as_xml end end def assert_xml_attr_equal(node, method_name, attribute_name=method_name) assert_equal subject.send(method_name).to_s, node.at("//@#{attribute_name}").value end def assert_xml_text_equal(node, method_name, attribute_name=method_name.to_s.camelize) expected = subject.send(method_name).to_s actual = node.at("//#{attribute_name}").try(:text).to_s #puts "for #{method_name}, assert_equal #{expected}, #{actual}" assert_equal expected, actual end TEST_HASH = { :user_name => "username", :password => "password", :type => "My Package", :reference_id => 112233, :reference => "ABC Company Inc.", :given_name => "HANK", :family_name => "MESS", :ssn => "333-22-1111", :date_of_birth => "1960-01-01", :country_code => "US", :postal_code => "60750", :region => "IL", :municipality => "FANTASY ISLAND", :address_line => 899, :street_name => "LINCOLN RD", :postback_url => "http://127.0.0.1/listen.php", :postback_username => "user", :postback_password => "secret", :use_defaults => true } TEST_ERROR_RESPONSE = %Q{ some_id_value ABC Company Inc. x:error 4 Invalid username and/or password. } TEST_PENDING_RESPONSE = %Q{ some_id_value ABC Company Inc. 12358 x:pending } TEST_CALLBACK_RESPONSE = %Q{ some_id_value ABC Company Inc. 12358 x:ready Pass display.php } end