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