mappum 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|