2
require 'xmlrpc/datetime'
3
require "xmlrpc/parser"
6
module GenericParserTest
8
File.join(File.dirname(__FILE__), "data", base)
12
[File.read(datafile(name) + ".xml"), YAML.load(File.read(datafile(name) + ".expected"))]
16
@xml1, @expected1 = load_data('xml1')
17
@xml2, @expected2 = load_data('bug_covert')
18
@xml3, @expected3 = load_data('bug_bool')
19
@xml4, @expected4 = load_data('value')
21
@cdata_xml, @cdata_expected = load_data('bug_cdata')
23
@datetime_xml = File.read(datafile('datetime_iso8601.xml'))
24
@datetime_expected = XMLRPC::DateTime.new(2004, 11, 5, 1, 15, 23)
26
@fault_doc = File.read(datafile('fault.xml'))
29
# test parseMethodResponse --------------------------------------------------
31
def test_parseMethodResponse1
32
assert_equal(@expected1, @p.parseMethodResponse(@xml1))
35
def test_parseMethodResponse2
36
assert_equal(@expected2, @p.parseMethodResponse(@xml2))
39
def test_parseMethodResponse3
40
assert_equal(@expected3, @p.parseMethodResponse(@xml3))
44
assert_equal(@cdata_expected, @p.parseMethodResponse(@cdata_xml))
48
assert_equal(@datetime_expected, @p.parseMethodResponse(@datetime_xml)[1])
51
# test parseMethodCall ------------------------------------------------------
53
def test_parseMethodCall
54
assert_equal(@expected4, @p.parseMethodCall(@xml4))
57
# test fault ----------------------------------------------------------------
60
flag, fault = @p.parseMethodResponse(@fault_doc)
61
assert_equal(flag, false)
62
unless fault.is_a? XMLRPC::FaultException
63
assert(false, "must be an instance of class XMLRPC::FaultException")
65
assert_equal(fault.faultCode, 4)
66
assert_equal(fault.faultString, "an error message")
70
# create test class for each installed parser
71
XMLRPC::XMLParser.each_installed_parser do |parser|
73
name = klass.to_s.split("::").last
76
class Test_#{name} < Test::Unit::TestCase
77
include GenericParserTest