mappum 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/java-api/pom.xml +1 -1
- data/java-api/src/main/java/pl/ivmx/mappum/JavaMappumException.java +151 -0
- data/java-api/src/main/java/pl/ivmx/mappum/JavaTransform.java +36 -4
- data/java-api/src/main/java/pl/ivmx/mappum/TreeElement.java +1 -1
- data/java-api/src/test/java/iv/Client.java +8 -6
- data/java-api/src/test/java/pl/ivmx/mappum/MappumTest.java +84 -6
- data/java-api/src/test/resources/map/error_map.rb +17 -0
- data/java-api/src/test/resources/map/example_map.rb +5 -3
- data/lib/mappum/dsl.rb +37 -17
- data/lib/mappum/java_transform.rb +62 -9
- data/lib/mappum/map.rb +18 -8
- data/lib/mappum/map_space.rb +11 -0
- data/lib/mappum/mappum_exception.rb +14 -6
- data/lib/mappum/mapserver/mapgraph.rb +1 -1
- data/lib/mappum/mapserver/mapserver.rb +32 -25
- data/lib/mappum/mapserver/views/main.erb +1 -0
- data/lib/mappum/ruby_transform.rb +132 -80
- data/lib/mappum/xml_transform.rb +36 -10
- data/mappum.gemspec +9 -3
- data/sample/crm.rb +1 -1
- data/sample/crm_client.xsd +1 -0
- data/sample/erp.rb +1 -1
- data/sample/example_context.rb +89 -0
- data/sample/example_map.rb +4 -1
- data/sample/server/schema/crm_client.xsd +1 -0
- data/test/test_context.rb +58 -0
- data/test/test_example.rb +7 -3
- data/test/test_openstruct.rb +2 -2
- data/test/test_soap4r.rb +6 -3
- data/test/test_xml_any.rb +6 -2
- metadata +8 -2
data/lib/mappum/xml_transform.rb
CHANGED
@@ -54,6 +54,12 @@ class XSD::Mapping::Mapper
|
|
54
54
|
return ret_qname
|
55
55
|
|
56
56
|
end
|
57
|
+
def self.get_class_from_qname(qname)
|
58
|
+
mapper = find_mapper_for_type(qname)
|
59
|
+
return nil if mapper.nil?
|
60
|
+
sch = mapper.registry.schema_definition_from_elename(qname)
|
61
|
+
return sch.class_for
|
62
|
+
end
|
57
63
|
def self.find_mapper_for_type(qname)
|
58
64
|
ret_maper=nil
|
59
65
|
#FIXME add cache
|
@@ -126,18 +132,20 @@ module Mappum
|
|
126
132
|
|
127
133
|
|
128
134
|
from_mapper = XSD::Mapping::Mapper.find_mapper_for_type(from_qname)
|
135
|
+
|
129
136
|
if from_mapper.nil?
|
130
137
|
from_mapper = @default_mapper
|
131
138
|
end
|
132
139
|
|
140
|
+
from_clazz = XSD::Mapping::Mapper.get_class_from_qname(from_qname) unless from_qname.nil?
|
133
141
|
begin
|
134
|
-
parsed =SOAP::Mapping.soap2obj(preparsed, from_mapper.registry,
|
142
|
+
parsed =SOAP::Mapping.soap2obj(preparsed, from_mapper.registry, from_clazz)
|
135
143
|
rescue NoMethodError => e
|
136
144
|
raise ParsingFailedException.new("Parsing failed for xml with root element: #{from_qname}")
|
137
145
|
end
|
138
146
|
|
139
147
|
map ||= @ruby_transform.map_catalogue[from_qname]
|
140
|
-
map ||= @ruby_transform.map_catalogue[from_qname.name.to_sym]
|
148
|
+
map ||= @ruby_transform.map_catalogue[from_qname.name.to_sym] unless from_qname.name.nil?
|
141
149
|
if not map.nil? and not map.kind_of?(Map)
|
142
150
|
map = @ruby_transform.map_catalogue[map.to_sym]
|
143
151
|
end
|
@@ -162,7 +170,7 @@ module Mappum
|
|
162
170
|
raise e
|
163
171
|
end
|
164
172
|
|
165
|
-
|
173
|
+
return to_xml_string(transformed, map, to_qname, soap)
|
166
174
|
end
|
167
175
|
def to_xml_string(transformed, map=nil, to_qname=nil, soap=false)
|
168
176
|
to_mapper = XSD::Mapping::Mapper.find_mapper_for_class(transformed.class)
|
@@ -190,12 +198,12 @@ module Mappum
|
|
190
198
|
def initialize(*args)
|
191
199
|
super(*args)
|
192
200
|
end
|
193
|
-
def get(object, field, parent_field=nil)
|
201
|
+
def get(object, field, parent_field=nil, options={})
|
194
202
|
begin
|
195
|
-
super(object, field, parent_field)
|
203
|
+
super(object, field, parent_field, options)
|
196
204
|
rescue NoMethodError
|
197
205
|
begin
|
198
|
-
super(object, XSD::CodeGen::GenSupport.safemethodname(field.name.to_s).to_sym, parent_field)
|
206
|
+
super(object, XSD::CodeGen::GenSupport.safemethodname(field.name.to_s).to_sym, parent_field, options)
|
199
207
|
rescue NoMethodError
|
200
208
|
#for dynamic xml nil value == no methond
|
201
209
|
if object.kind_of?(SOAP::Mapping::Object)
|
@@ -208,6 +216,11 @@ module Mappum
|
|
208
216
|
end
|
209
217
|
end
|
210
218
|
class TreeElement < Struct.new(:name, :elements, :is_array, :clazz)
|
219
|
+
include Comparable
|
220
|
+
def <=>(anOther)
|
221
|
+
return name <=> null if anOther.nil?
|
222
|
+
name <=> anOther.name
|
223
|
+
end
|
211
224
|
end
|
212
225
|
# Class supporting loading working directory of the layout:
|
213
226
|
#
|
@@ -303,15 +316,28 @@ module Mappum
|
|
303
316
|
name ||= schema_definition.class_for
|
304
317
|
is_array = false
|
305
318
|
is_array = schema_definition.as_array? if schema_definition.respond_to?(:as_array?)
|
319
|
+
|
320
|
+
subelems = nil
|
321
|
+
mapped_class = schema_definition.mapped_class if schema_definition.respond_to?(:mapped_class)
|
322
|
+
|
306
323
|
if schema_definition.respond_to?(:elements) and not schema_definition.elements.nil?
|
307
|
-
subelems
|
324
|
+
subelems ||= []
|
308
325
|
schema_definition.elements.each do |element|
|
309
326
|
subelems << defined_element_trees(element)
|
310
327
|
end
|
311
|
-
|
328
|
+
mapped_class = nil
|
312
329
|
end
|
313
|
-
|
314
|
-
|
330
|
+
if schema_definition.respond_to?(:attributes) and not schema_definition.attributes.nil?
|
331
|
+
|
332
|
+
subelems ||= []
|
333
|
+
schema_definition.attributes.each do |qname, type|
|
334
|
+
subelems << TreeElement.new("xmlattr_#{qname.name}", nil,false,type)
|
335
|
+
end
|
336
|
+
end
|
337
|
+
|
338
|
+
subelems.sort! unless subelems.nil?
|
339
|
+
|
340
|
+
return TreeElement.new(name, subelems,is_array,mapped_class)
|
315
341
|
end
|
316
342
|
#
|
317
343
|
# Remove tmpdir
|
data/mappum.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mappum}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jan Topi\305\204ski"]
|
12
|
-
s.date = %q{2009-
|
12
|
+
s.date = %q{2009-12-15}
|
13
13
|
s.default_executable = %q{mapserver.rb}
|
14
14
|
s.description = %q{}
|
15
15
|
s.email = %q{jtopinski@chatka.org}
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"bin/mapserver.rb",
|
28
28
|
"java-api/pom.xml",
|
29
|
+
"java-api/src/main/java/pl/ivmx/mappum/JavaMappumException.java",
|
29
30
|
"java-api/src/main/java/pl/ivmx/mappum/JavaTransform.java",
|
30
31
|
"java-api/src/main/java/pl/ivmx/mappum/MappumApi.java",
|
31
32
|
"java-api/src/main/java/pl/ivmx/mappum/TreeElement.java",
|
@@ -33,12 +34,14 @@ Gem::Specification.new do |s|
|
|
33
34
|
"java-api/src/test/java/iv/Client.java",
|
34
35
|
"java-api/src/test/java/iv/Person.java",
|
35
36
|
"java-api/src/test/java/pl/ivmx/mappum/MappumTest.java",
|
37
|
+
"java-api/src/test/resources/map/error_map.rb",
|
36
38
|
"java-api/src/test/resources/map/example_map.rb",
|
37
39
|
"lib/mappum.rb",
|
38
40
|
"lib/mappum/autoconv_catalogue.rb",
|
39
41
|
"lib/mappum/dsl.rb",
|
40
42
|
"lib/mappum/java_transform.rb",
|
41
43
|
"lib/mappum/map.rb",
|
44
|
+
"lib/mappum/map_space.rb",
|
42
45
|
"lib/mappum/mappum_exception.rb",
|
43
46
|
"lib/mappum/mapserver/mapgraph.rb",
|
44
47
|
"lib/mappum/mapserver/mapserver.rb",
|
@@ -59,6 +62,7 @@ Gem::Specification.new do |s|
|
|
59
62
|
"sample/crm_client.xsd",
|
60
63
|
"sample/erp.rb",
|
61
64
|
"sample/erp_person.xsd",
|
65
|
+
"sample/example_context.rb",
|
62
66
|
"sample/example_conversions.rb",
|
63
67
|
"sample/example_map.rb",
|
64
68
|
"sample/example_notypes.rb",
|
@@ -70,6 +74,7 @@ Gem::Specification.new do |s|
|
|
70
74
|
"sample/server/mapserver.sh",
|
71
75
|
"sample/server/schema/crm_client.xsd",
|
72
76
|
"sample/server/schema/erp/erp_person.xsd",
|
77
|
+
"test/test_context.rb",
|
73
78
|
"test/test_conversions.rb",
|
74
79
|
"test/test_example.rb",
|
75
80
|
"test/test_openstruct.rb",
|
@@ -88,7 +93,8 @@ Gem::Specification.new do |s|
|
|
88
93
|
"test/test_when.rb",
|
89
94
|
"test/test_conversions.rb",
|
90
95
|
"test/test_xml_any.rb",
|
91
|
-
"test/test_soap4r.rb"
|
96
|
+
"test/test_soap4r.rb",
|
97
|
+
"test/test_context.rb"
|
92
98
|
]
|
93
99
|
|
94
100
|
if s.respond_to? :specification_version then
|
data/sample/crm.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module CRM
|
2
2
|
class Client
|
3
3
|
attr_accessor :title, :id, :key, :first_name, :surname, :address,
|
4
|
-
:sex_id, :phones, :emails, :main_phone, :main_phone_type, :company, :company_suffix, :order_by, :updated, :partners
|
4
|
+
:sex_id, :phones, :emails, :main_phone, :main_phone_type, :company, :company_suffix, :order_by, :updated, :partners, :country
|
5
5
|
end
|
6
6
|
class Address
|
7
7
|
attr_accessor :street
|
data/sample/crm_client.xsd
CHANGED
data/sample/erp.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module ERP
|
2
2
|
Person = Struct.new(:title, :type,:date_updated, :person_id, :id2, :name, :address, :sex,
|
3
|
-
:phones, :email1, :email2, :email3, :main_phone, :corporation, :spouse)
|
3
|
+
:phones, :email1, :email2, :email3, :main_phone, :corporation, :spouse, :properties)
|
4
4
|
Address = Struct.new(:street)
|
5
5
|
Phone = Struct.new(:number, :extension, :type)
|
6
6
|
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# Example of map for given object domains CRM and ERP
|
2
|
+
require 'mappum'
|
3
|
+
require 'sample/erp'
|
4
|
+
require 'sample/crm'
|
5
|
+
require 'date'
|
6
|
+
|
7
|
+
Mappum.catalogue_add "Context" do
|
8
|
+
|
9
|
+
map ERP::Person, CRM::Client do |p, c|
|
10
|
+
|
11
|
+
`simple mapping`
|
12
|
+
map context.properties[:title] <=> c.title
|
13
|
+
map p.title <=> context.properties[:title]
|
14
|
+
|
15
|
+
map p.title >> context.properties[:new_title]
|
16
|
+
`map with simple function call`
|
17
|
+
map p.person_id << context.properties[:id].downcase
|
18
|
+
map context.properties[:id].upcase >> c.id
|
19
|
+
|
20
|
+
`dictionary use`
|
21
|
+
map p.sex <=> c.sex_id, :dict => {"F" => "1", "M" => "2"}
|
22
|
+
|
23
|
+
`submaps`
|
24
|
+
map p.address(ERP::Address) <=> c.address(CRM::Address) do |a, b|
|
25
|
+
map a.street <=> b.street
|
26
|
+
#etc.
|
27
|
+
end
|
28
|
+
|
29
|
+
`compicated finc call`
|
30
|
+
map p.name >> c.surname do |name|
|
31
|
+
name + "ski"
|
32
|
+
end
|
33
|
+
map p.name << c.surname do |name|
|
34
|
+
if name =~ /ski/
|
35
|
+
name[0..-4]
|
36
|
+
else
|
37
|
+
name
|
38
|
+
end
|
39
|
+
end
|
40
|
+
`field to array and array to field`
|
41
|
+
map p.email1 <=> c.emails[0]
|
42
|
+
map p.email2 <=> c.emails[1]
|
43
|
+
map p.email3 <=> c.emails[2]
|
44
|
+
|
45
|
+
map p.spouse(ERP::Person) <=> c.partners.find{|cp|cp.type == "Wife"} do |ps,cp|
|
46
|
+
map ps.name <=> cp.name
|
47
|
+
map "Wife" >> cp.type
|
48
|
+
end
|
49
|
+
map p.spouse(ERP::Person) <=> c.partners.find{|cp|cp.type == "Friend"} do |ps,cp|
|
50
|
+
map ps.name <=> cp.name
|
51
|
+
map "Friend" >> cp.type
|
52
|
+
end
|
53
|
+
map p.phones(ERP::Phone)[] <=> c.phones[] do |a, b|
|
54
|
+
map a.number <=> b.self
|
55
|
+
end
|
56
|
+
|
57
|
+
`subobject to fields`
|
58
|
+
map p.main_phone(ERP::Phone) <=> c.self do |a, b|
|
59
|
+
map a.number <=> b.main_phone
|
60
|
+
map a.type <=> b.main_phone_type
|
61
|
+
end
|
62
|
+
|
63
|
+
#TODO one to many
|
64
|
+
#map p.name << [c.first_name, c.surname] do |fname, surname|
|
65
|
+
# fname + " " + surname
|
66
|
+
#end
|
67
|
+
#map p.name.split >> [c.first_name, c.surname]
|
68
|
+
map p.corporation << c.self do |client|
|
69
|
+
"#{client.company} #{client.company_suffix}" unless client.company.nil?
|
70
|
+
end
|
71
|
+
map p.corporation >> c.company do |corpo|
|
72
|
+
corpo.split(" ")[0]
|
73
|
+
end
|
74
|
+
map p.corporation >> c.company_suffix do |corpo|
|
75
|
+
corpo.split(" ")[1]
|
76
|
+
end
|
77
|
+
`constants`
|
78
|
+
map p.type << "NaN"
|
79
|
+
map "Last" >> c.order_by
|
80
|
+
|
81
|
+
`func`
|
82
|
+
map p.date_updated << func do
|
83
|
+
Date.today
|
84
|
+
end
|
85
|
+
map func >> c.updated do
|
86
|
+
Time.now
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/sample/example_map.rb
CHANGED
@@ -35,7 +35,7 @@ Mappum.catalogue_add "CRM-ERP" do
|
|
35
35
|
name
|
36
36
|
end
|
37
37
|
end
|
38
|
-
`field to
|
38
|
+
`field to hash and hash to field`
|
39
39
|
map p.email1 <=> c.emails[0]
|
40
40
|
map p.email2 <=> c.emails[1]
|
41
41
|
map p.email3 <=> c.emails[2]
|
@@ -52,6 +52,9 @@ Mappum.catalogue_add "CRM-ERP" do
|
|
52
52
|
map a.number <=> b.self
|
53
53
|
end
|
54
54
|
|
55
|
+
`Hash to field`
|
56
|
+
map p.properties[:country] <=> c.country
|
57
|
+
|
55
58
|
`subobject to fields`
|
56
59
|
map p.main_phone(ERP::Phone) <=> c.self do |a, b|
|
57
60
|
map a.number <=> b.main_phone
|
@@ -0,0 +1,58 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
|
+
require 'mappum/ruby_transform'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'sample/example_context'
|
5
|
+
|
6
|
+
class Context < Struct.new(:properties, :session)
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestExample < Test::Unit::TestCase
|
10
|
+
def test_transform
|
11
|
+
catalogue = Mappum.catalogue("Context")
|
12
|
+
rt = Mappum::RubyTransform.new(catalogue)
|
13
|
+
|
14
|
+
per = ERP::Person.new
|
15
|
+
per.title = "sir"
|
16
|
+
per.type = "NaN"
|
17
|
+
per.person_id = "asddsa"
|
18
|
+
per.sex = "M"
|
19
|
+
per.name = "Skory"
|
20
|
+
per.address = ERP::Address.new
|
21
|
+
per.address.street = "Victoria"
|
22
|
+
per.email1 = "j@j.com"
|
23
|
+
per.email2 = "k@k.com"
|
24
|
+
per.email3 = "l@l.com"
|
25
|
+
per.phones = [ERP::Phone.new("21311231"), ERP::Phone.new("21311232")]
|
26
|
+
per.main_phone = ERP::Phone.new
|
27
|
+
per.main_phone.number ="09876567"
|
28
|
+
per.main_phone.type = :mobile
|
29
|
+
per.corporation = "Corporation l.t.d."
|
30
|
+
per.date_updated = Date.today
|
31
|
+
per.spouse = ERP::Person.new
|
32
|
+
per.spouse.name = "Linda"
|
33
|
+
ctx = Context.new
|
34
|
+
ctx.properties={:title => "sir", :id => "asDDsa"}
|
35
|
+
|
36
|
+
cli = rt.transform(per,nil,nil,{:context => ctx})
|
37
|
+
|
38
|
+
assert_equal("sir", ctx.properties[:new_title])
|
39
|
+
assert_equal("sir", cli.title)
|
40
|
+
assert_equal("ASDDSA", cli.id)
|
41
|
+
assert_equal("2", cli.sex_id)
|
42
|
+
assert_equal("Skoryski", cli.surname)
|
43
|
+
assert_equal(CRM::Address, cli.address.class)
|
44
|
+
assert_equal("Victoria", cli.address.street)
|
45
|
+
assert_equal({0=>"j@j.com", 1=>"k@k.com", 2=>"l@l.com"}, cli.emails)
|
46
|
+
assert_equal(["21311231", "21311232"], cli.phones)
|
47
|
+
assert_equal("09876567", cli.main_phone)
|
48
|
+
assert_equal("Last", cli.order_by)
|
49
|
+
assert_equal("Linda", cli.partners[0].name)
|
50
|
+
assert_equal("Wife", cli.partners[0].type)
|
51
|
+
assert_equal("Linda", cli.partners[1].name)
|
52
|
+
assert_equal("Friend", cli.partners[1].type)
|
53
|
+
assert(cli.updated.kind_of?(Time))
|
54
|
+
|
55
|
+
per2 = rt.transform(cli,nil,nil,{:context => ctx})
|
56
|
+
assert_equal(per, per2)
|
57
|
+
end
|
58
|
+
end
|
data/test/test_example.rb
CHANGED
@@ -70,6 +70,7 @@ class TestExample < Test::Unit::TestCase
|
|
70
70
|
per.date_updated = Date.today
|
71
71
|
per.spouse = ERP::Person.new
|
72
72
|
per.spouse.name = "Linda"
|
73
|
+
per.properties = {:country => "Poland"}
|
73
74
|
|
74
75
|
cli = rt.transform(per)
|
75
76
|
|
@@ -79,7 +80,7 @@ class TestExample < Test::Unit::TestCase
|
|
79
80
|
assert_equal("Skoryski", cli.surname)
|
80
81
|
assert_equal(CRM::Address, cli.address.class)
|
81
82
|
assert_equal("Victoria", cli.address.street)
|
82
|
-
assert_equal(
|
83
|
+
assert_equal({ 0 => "j@j.com", 1 => "k@k.com", 2 => "l@l.com"}, cli.emails)
|
83
84
|
assert_equal(["21311231", "21311232"], cli.phones)
|
84
85
|
assert_equal("09876567", cli.main_phone)
|
85
86
|
assert_equal("Last", cli.order_by)
|
@@ -87,8 +88,9 @@ class TestExample < Test::Unit::TestCase
|
|
87
88
|
assert_equal("Wife", cli.partners[0].type)
|
88
89
|
assert_equal("Linda", cli.partners[1].name)
|
89
90
|
assert_equal("Friend", cli.partners[1].type)
|
91
|
+
assert_equal("Poland", cli.country)
|
90
92
|
assert(cli.updated.kind_of?(Time))
|
91
|
-
|
93
|
+
|
92
94
|
per2 = rt.transform(cli)
|
93
95
|
assert_equal(per, per2)
|
94
96
|
end
|
@@ -105,6 +107,7 @@ class TestExample < Test::Unit::TestCase
|
|
105
107
|
per.address = ERP::Address.new
|
106
108
|
per.address.street = "Victoria"
|
107
109
|
per.date_updated = Date.today
|
110
|
+
per.properties = {:country => "Poland"}
|
108
111
|
|
109
112
|
|
110
113
|
cli = rt.transform(per)
|
@@ -130,10 +133,11 @@ class TestExample < Test::Unit::TestCase
|
|
130
133
|
per.email2 = "l@l.com"
|
131
134
|
per.main_phone = ERP::Phone.new("7869876")
|
132
135
|
per.date_updated = Date.today
|
136
|
+
per.properties = {:country => "Poland"}
|
133
137
|
|
134
138
|
cli = rt.transform(per)
|
135
139
|
|
136
|
-
assert_equal(
|
140
|
+
assert_equal({0 => "j@j.com", 1 => "l@l.com", 2 => nil}, cli.emails)
|
137
141
|
|
138
142
|
per2 = rt.transform(cli)
|
139
143
|
assert_equal(per, per2)
|
data/test/test_openstruct.rb
CHANGED
@@ -75,7 +75,7 @@ class TestOpenStruct < Test::Unit::TestCase
|
|
75
75
|
assert_equal("2", cli.sex_id)
|
76
76
|
assert_equal("Skoryski", cli.surname)
|
77
77
|
assert_equal("Victoria", cli.address.street)
|
78
|
-
assert_equal(
|
78
|
+
assert_equal({0 => "j@j.com", 1 => "k@k.com", 2 => "l@l.com"}, cli.emails)
|
79
79
|
assert_equal(["21311231", "21311232"], cli.phones)
|
80
80
|
assert_equal("09876567", cli.main_phone)
|
81
81
|
|
@@ -121,7 +121,7 @@ class TestOpenStruct < Test::Unit::TestCase
|
|
121
121
|
per.main_phone.number ="09876567"
|
122
122
|
|
123
123
|
cli = rt.transform(per,catalogue[:person])
|
124
|
-
assert_equal(
|
124
|
+
assert_equal({0 => "j@j.com", 1 => "l@l.com", 2 => nil}, cli.emails)
|
125
125
|
|
126
126
|
per2 = rt.transform(cli,catalogue[:client])
|
127
127
|
assert_equal(per, per2)
|
data/test/test_soap4r.rb
CHANGED
@@ -8,8 +8,8 @@ gem 'facets'
|
|
8
8
|
require 'facets/equatable'
|
9
9
|
require 'soap/marshal'
|
10
10
|
|
11
|
-
wl = Mappum::WorkdirLoader.new("sample/server/schema", "sample/server/map")
|
12
|
-
wl.generate_and_require
|
11
|
+
$wl = Mappum::WorkdirLoader.new("sample/server/schema", "sample/server/map")
|
12
|
+
$wl.generate_and_require
|
13
13
|
|
14
14
|
class Erp::Person
|
15
15
|
include Equatable(:title, :person_id, :name, :surname, :sex, :email1,
|
@@ -22,7 +22,7 @@ class Erp::Person::Address
|
|
22
22
|
include Equatable(:city, :street)
|
23
23
|
end
|
24
24
|
|
25
|
-
class
|
25
|
+
class TestSoap4r < Test::Unit::TestCase
|
26
26
|
def initialize(*args)
|
27
27
|
super(*args)
|
28
28
|
@rt = Mappum::XmlTransform.new
|
@@ -105,4 +105,7 @@ class TestExample < Test::Unit::TestCase
|
|
105
105
|
per2 = rt.transform(cli)
|
106
106
|
assert_equal(per, per2)
|
107
107
|
end
|
108
|
+
def test_tree
|
109
|
+
$wl.defined_element_trees
|
110
|
+
end
|
108
111
|
end
|