78 lines
2.2 KiB
Ruby
78 lines
2.2 KiB
Ruby
|
$LOAD_PATH.unshift '../../lib'
|
||
|
require 'test/unit'
|
||
|
require "xmlrpc/parser"
|
||
|
|
||
|
module GenericParserTest
|
||
|
def setup
|
||
|
@xml1 = File.readlines("data/xml1.xml").to_s
|
||
|
@expected1 = File.readlines("data/xml1.expected").to_s.chomp
|
||
|
|
||
|
@xml2 = File.readlines("data/bug_covert.xml").to_s
|
||
|
@expected2 = File.readlines("data/bug_covert.expected").to_s.chomp
|
||
|
|
||
|
@xml3 = File.readlines("data/bug_bool.xml").to_s
|
||
|
@expected3 = File.readlines("data/bug_bool.expected").to_s.chomp
|
||
|
|
||
|
@xml4 = File.readlines("data/value.xml").to_s
|
||
|
@expected4 = File.readlines("data/value.expected").to_s.chomp
|
||
|
|
||
|
@cdata_xml = File.readlines("data/bug_cdata.xml").to_s.chomp
|
||
|
@cdata_expected = File.readlines("data/bug_cdata.expected").to_s.chomp
|
||
|
|
||
|
@fault_doc = File.readlines("data/fault.xml").to_s
|
||
|
end
|
||
|
|
||
|
# test parseMethodResponse --------------------------------------------------
|
||
|
|
||
|
def test_parseMethodResponse1
|
||
|
assert_equal(@expected1, @p.parseMethodResponse(@xml1).inspect)
|
||
|
end
|
||
|
|
||
|
def test_parseMethodResponse2
|
||
|
assert_equal(@expected2, @p.parseMethodResponse(@xml2).inspect)
|
||
|
end
|
||
|
|
||
|
def test_parseMethodResponse3
|
||
|
assert_equal(@expected3, @p.parseMethodResponse(@xml3).inspect)
|
||
|
end
|
||
|
|
||
|
def test_cdata
|
||
|
assert_equal(@cdata_expected, @p.parseMethodResponse(@cdata_xml).inspect)
|
||
|
end
|
||
|
|
||
|
# test parseMethodCall ------------------------------------------------------
|
||
|
|
||
|
def test_parseMethodCall
|
||
|
assert_equal(@expected4, @p.parseMethodCall(@xml4).inspect)
|
||
|
end
|
||
|
|
||
|
# test fault ----------------------------------------------------------------
|
||
|
|
||
|
def test_fault
|
||
|
flag, fault = @p.parseMethodResponse(@fault_doc)
|
||
|
assert_equal(flag, false)
|
||
|
unless fault.is_a? XMLRPC::FaultException
|
||
|
assert(false, "must be an instance of class XMLRPC::FaultException")
|
||
|
end
|
||
|
assert_equal(fault.faultCode, 4)
|
||
|
assert_equal(fault.faultString, "an error message")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# create test class for each installed parser
|
||
|
XMLRPC::XMLParser.each_installed_parser do |parser|
|
||
|
klass = parser.class
|
||
|
name = klass.to_s.split("::").last
|
||
|
|
||
|
eval %{
|
||
|
class Test_#{name} < Test::Unit::TestCase
|
||
|
include GenericParserTest
|
||
|
|
||
|
def setup
|
||
|
super
|
||
|
@p = #{klass}.new
|
||
|
end
|
||
|
end
|
||
|
}
|
||
|
end
|