simcha-mappum 0.1.0

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.
@@ -0,0 +1 @@
1
+ ruby ../../bin/mapserver.rb $*
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema version="1.0"
3
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="http://mappum.ivmx.pl/client">
5
+ <xsd:element name="client">
6
+ <xsd:complexType>
7
+ <xsd:sequence>
8
+ <xsd:element name="title" type="xsd:string" maxOccurs="1"/>
9
+ <xsd:element name="id" type="xsd:string" minOccurs="0" maxOccurs="1"/>
10
+ <xsd:element name="first_name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
11
+ <xsd:element name="surname" type="xsd:string" minOccurs="0" maxOccurs="1"/>
12
+ <xsd:element name="sex_id" type="xsd:string" minOccurs="0" maxOccurs="1"/>
13
+ <xsd:element name="phones" type="xsd:string" minOccurs="0" maxOccurs="20"/>
14
+ <xsd:element name="emails" type="xsd:string" minOccurs="0" maxOccurs="3"/>
15
+ <xsd:element name="main_phone" type="xsd:string" minOccurs="0" maxOccurs="1"/>
16
+ <xsd:element name="main_phone_type" type="xsd:string" minOccurs="0" maxOccurs="1"/>
17
+ <xsd:element name="address" minOccurs="0" maxOccurs="1">
18
+ <xsd:complexType>
19
+ <xsd:sequence>
20
+ <xsd:element name="street" type="xsd:string"/>
21
+ <xsd:element name="city" type="xsd:string" minOccurs="0"/>
22
+ </xsd:sequence>
23
+ </xsd:complexType>
24
+ </xsd:element>
25
+ </xsd:sequence>
26
+ </xsd:complexType>
27
+ </xsd:element>
28
+ </xsd:schema>
29
+
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema version="1.0"
3
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="http://mappum.ivmx.pl/person"
5
+ xmlns:tns="http://mappum.ivmx.pl/person">
6
+ <xsd:element name="person">
7
+ <xsd:complexType>
8
+ <xsd:sequence>
9
+ <xsd:element name="title" type="xsd:string" maxOccurs="1"/>
10
+ <xsd:element name="person_id" type="xsd:string" minOccurs="0" maxOccurs="1"/>
11
+ <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
12
+ <xsd:element name="surname" type="xsd:string" minOccurs="0" maxOccurs="1"/>
13
+ <xsd:element name="sex" type="xsd:string" minOccurs="0" maxOccurs="1"/>
14
+ <xsd:element name="email1" type="xsd:string" minOccurs="0" maxOccurs="1"/>
15
+ <xsd:element name="email2" type="xsd:string" minOccurs="0" maxOccurs="1"/>
16
+ <xsd:element name="email3" type="xsd:string" minOccurs="0" maxOccurs="1"/>
17
+ <xsd:element name="main_phone" type="tns:phone" minOccurs="0" maxOccurs="1"/>
18
+ <xsd:element name="address" minOccurs="0" maxOccurs="1">
19
+ <xsd:complexType>
20
+ <xsd:sequence>
21
+ <xsd:element name="street" type="xsd:string"/>
22
+ <xsd:element name="city" type="xsd:string" minOccurs="0"/>
23
+ </xsd:sequence>
24
+ </xsd:complexType>
25
+ </xsd:element>
26
+ <xsd:element name="phones" type="tns:phone" minOccurs="0" maxOccurs="5"/>
27
+ </xsd:sequence>
28
+ </xsd:complexType>
29
+ </xsd:element>
30
+ <xsd:complexType name="phone">
31
+ <xsd:sequence>
32
+ <xsd:element name="number" type="xsd:string"/>
33
+ <xsd:element name="extension" type="xsd:string" minOccurs="0"/>
34
+ <xsd:element name="type" type="xsd:string" minOccurs="0"/>
35
+ </xsd:sequence>
36
+ </xsd:complexType>
37
+ </xsd:schema>
38
+
@@ -0,0 +1,137 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
+ #TODO fix imports
3
+ require 'mappum/ruby_transform'
4
+ require 'test/unit'
5
+ require 'sample/example_map'
6
+
7
+ class TestExample < Test::Unit::TestCase
8
+ def stest_map
9
+ catalogue = Mappum.catalogue("CRM-ERP")
10
+
11
+ main_map = catalogue[ERP::Person]
12
+
13
+ assert_equal(ERP::Person, main_map.from.clazz)
14
+ assert_equal(CRM::Client, main_map.to.clazz)
15
+ #assert_equal(5, main_map.maps.size)
16
+
17
+ # check >>
18
+ map_title = main_map.maps[0]
19
+ assert_equal(:title, map_title.from.name)
20
+ assert_equal(main_map.from, map_title.from.parent)
21
+ assert_equal(:title, map_title.to.name)
22
+ assert_equal(main_map.to, map_title.to.parent)
23
+
24
+ # check >>
25
+ map_title = main_map.maps[1]
26
+ assert_equal(:person_id, map_title.from.name)
27
+ assert_equal(main_map.from, map_title.from.parent)
28
+ assert_equal(:id, map_title.to.name)
29
+ assert_equal(main_map.to, map_title.to.parent)
30
+
31
+ main_map = catalogue[CRM::Client]
32
+
33
+ # check <<
34
+ map_title = main_map.maps[0]
35
+ assert_equal(:title, map_title.from.name)
36
+ assert_equal(main_map.from, map_title.from.parent)
37
+ assert_equal(:title, map_title.to.name)
38
+ assert_equal(main_map.to, map_title.to.parent)
39
+
40
+ # check <<
41
+ map_title = main_map.maps[1]
42
+ assert_equal(:id, map_title.from.name)
43
+ assert_equal(main_map.from, map_title.from.parent)
44
+ assert_equal(:person_id, map_title.to.name)
45
+ assert_equal(main_map.to, map_title.to.parent)
46
+ end
47
+ def test_transform
48
+ catalogue = Mappum.catalogue("CRM-ERP")
49
+ rt = Mappum::RubyTransform.new(catalogue)
50
+
51
+ per = ERP::Person.new
52
+ per.title = "sir"
53
+ per.type = "NaN"
54
+ per.person_id = "asddsa"
55
+ per.sex = "M"
56
+ per.name = "Skory"
57
+ per.address = ERP::Address.new
58
+ per.address.street = "Victoria"
59
+ per.email1 = "j@j.com"
60
+ per.email2 = "k@k.com"
61
+ per.email3 = "l@l.com"
62
+ per.phones = [ERP::Phone.new("21311231"), ERP::Phone.new("21311232")]
63
+ per.main_phone = ERP::Phone.new
64
+ per.main_phone.number ="09876567"
65
+ per.main_phone.type = :mobile
66
+ per.corporation = "Corporation l.t.d."
67
+ per.date_updated = Date.today
68
+ per.spouse = ERP::Person.new
69
+ per.spouse.name = "Linda"
70
+
71
+ cli = rt.transform(per)
72
+
73
+ assert_equal("sir", cli.title)
74
+ assert_equal("ASDDSA", cli.id)
75
+ assert_equal("2", cli.sex_id)
76
+ assert_equal("Skoryski", cli.surname)
77
+ assert_equal(CRM::Address, cli.address.class)
78
+ assert_equal("Victoria", cli.address.street)
79
+ assert_equal(["j@j.com", "k@k.com", "l@l.com"], cli.emails)
80
+ assert_equal(["21311231", "21311232"], cli.phones)
81
+ assert_equal("09876567", cli.main_phone)
82
+ assert_equal("Last", cli.order_by)
83
+ assert_equal("Linda", cli.partners[0].name)
84
+ assert_equal("Linda", cli.partners[1].name)
85
+ assert(cli.updated.kind_of?(Time))
86
+
87
+
88
+ per2 = rt.transform(cli)
89
+ assert_equal(per, per2)
90
+ end
91
+ def stest_transform_nil_array
92
+ catalogue = Mappum.catalogue("CRM-ERP")
93
+ rt = Mappum::RubyTransform.new(catalogue)
94
+
95
+ per = ERP::Person.new
96
+ per.title = "sir"
97
+ per.type = "NaN"
98
+ per.person_id = "asddsa"
99
+ per.sex = "M"
100
+ per.name = "Skory"
101
+ per.address = ERP::Address.new
102
+ per.address.street = "Victoria"
103
+ per.date_updated = Date.today
104
+
105
+
106
+ cli = rt.transform(per)
107
+ assert_equal("sir", cli.title)
108
+ assert_equal("ASDDSA", cli.id)
109
+ assert_equal("2", cli.sex_id)
110
+ assert_equal("Skoryski", cli.surname)
111
+ assert_equal(CRM::Address, cli.address.class)
112
+ assert_equal("Victoria", cli.address.street)
113
+ assert_nil(cli.phones)
114
+ assert_nil(cli.main_phone)
115
+
116
+ per2 = rt.transform(cli)
117
+ assert_equal(per, per2)
118
+ end
119
+ def stest_transform_funny_array
120
+ catalogue = Mappum.catalogue("CRM-ERP")
121
+ rt = Mappum::RubyTransform.new(catalogue)
122
+
123
+ per = ERP::Person.new
124
+ per.type = "NaN"
125
+ per.email1 = "j@j.com"
126
+ per.email3 = "l@l.com"
127
+ per.main_phone = ERP::Phone.new("7869876")
128
+ per.date_updated = Date.today
129
+
130
+ cli = rt.transform(per)
131
+
132
+ assert_equal(["j@j.com", nil, "l@l.com"], cli.emails)
133
+
134
+ per2 = rt.transform(cli)
135
+ assert_equal(per, per2)
136
+ end
137
+ end
@@ -0,0 +1,129 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
+ #TODO fix imports
3
+ require 'mappum/ruby_transform'
4
+ require 'test/unit'
5
+ require 'sample/example_notypes'
6
+
7
+ class TestOpenStruct < Test::Unit::TestCase
8
+ def test_map
9
+ catalogue = Mappum.catalogue("NOTYPE-CRM-ERP")
10
+
11
+ main_map = catalogue[:person]
12
+
13
+ assert_equal(:person, main_map.from.clazz)
14
+ assert_equal(:client, main_map.to.clazz)
15
+ #assert_equal(5, main_map.maps.size)
16
+
17
+ # check >>
18
+ map_title = main_map.maps[0]
19
+ assert_equal(:title, map_title.from.name)
20
+ assert_equal(main_map.from, map_title.from.parent)
21
+ assert_equal(:title, map_title.to.name)
22
+ assert_equal(main_map.to, map_title.to.parent)
23
+
24
+ # check >>
25
+ map_title = main_map.maps[1]
26
+ assert_equal(:person_id, map_title.from.name)
27
+ assert_equal(main_map.from, map_title.from.parent)
28
+ assert_equal(:id, map_title.to.name)
29
+ assert_equal(main_map.to, map_title.to.parent)
30
+
31
+ main_map = catalogue[:client]
32
+ # check <<
33
+ map_title = main_map.maps[0]
34
+ assert_equal(:title, map_title.from.name)
35
+ assert_equal(main_map.from, map_title.from.parent)
36
+ assert_equal(:title, map_title.to.name)
37
+ assert_equal(main_map.to, map_title.to.parent)
38
+
39
+ # check <<
40
+ map_title = main_map.maps[1]
41
+ assert_equal(:id, map_title.from.name)
42
+ assert_equal(main_map.from, map_title.from.parent)
43
+ assert_equal(:person_id, map_title.to.name)
44
+ assert_equal(main_map.to, map_title.to.parent)
45
+ end
46
+ def test_transform
47
+ catalogue = Mappum.catalogue("NOTYPE-CRM-ERP")
48
+ rt = Mappum::RubyTransform.new(catalogue)
49
+
50
+ per = Mappum::OpenStruct.new
51
+ per.title = "sir"
52
+ per.person_id = "asddsa"
53
+ per.sex = "M"
54
+ per.name = "Skory"
55
+ per.address = Mappum::OpenStruct.new
56
+ per.address.street = "Victoria"
57
+ per.email1 = "j@j.com"
58
+ per.email2 = "k@k.com"
59
+ per.email3 = "l@l.com"
60
+
61
+ phone1 = Mappum::OpenStruct.new
62
+ phone1.number="21311231"
63
+
64
+ phone2 = Mappum::OpenStruct.new
65
+ phone2.number="21311232"
66
+
67
+ per.phones = [phone1, phone2]
68
+ per.main_phone = Mappum::OpenStruct.new
69
+ per.main_phone.number ="09876567"
70
+ per.main_phone.type = :mobile
71
+
72
+ cli = rt.transform(per,catalogue[:person])
73
+ assert_equal("sir", cli.title)
74
+ assert_equal("ASDDSA", cli.id)
75
+ assert_equal("2", cli.sex_id)
76
+ assert_equal("Skoryski", cli.surname)
77
+ assert_equal("Victoria", cli.address.street)
78
+ assert_equal(["j@j.com", "k@k.com", "l@l.com"], cli.emails)
79
+ assert_equal(["21311231", "21311232"], cli.phones)
80
+ assert_equal("09876567", cli.main_phone)
81
+
82
+ per2 = rt.transform(cli,catalogue[:client])
83
+ assert_equal(per, per2)
84
+
85
+
86
+ end
87
+ def test_transform_nil_array
88
+ catalogue = Mappum.catalogue("NOTYPE-CRM-ERP")
89
+ rt = Mappum::RubyTransform.new(catalogue)
90
+
91
+ per = Mappum::OpenStruct.new
92
+ per.title = "sir"
93
+ per.person_id = "asddsa"
94
+ per.sex = "M"
95
+ per.name = "Skory"
96
+ per.address = Mappum::OpenStruct.new
97
+ per.address.street = "Victoria"
98
+
99
+
100
+
101
+ cli = rt.transform(per,catalogue[:person])
102
+ assert_equal("sir", cli.title)
103
+ assert_equal("ASDDSA", cli.id)
104
+ assert_equal("2", cli.sex_id)
105
+ assert_equal("Skoryski", cli.surname)
106
+ assert_equal("Victoria", cli.address.street)
107
+ assert_nil(cli.phones)
108
+ assert_nil(cli.main_phone)
109
+
110
+ per2 = rt.transform(cli,catalogue[:client])
111
+ assert_equal(per, per2)
112
+ end
113
+ def test_transform_funny_array
114
+ catalogue = Mappum.catalogue("NOTYPE-CRM-ERP")
115
+ rt = Mappum::RubyTransform.new(catalogue)
116
+
117
+ per = Mappum::OpenStruct.new
118
+ per.email1 = "j@j.com"
119
+ per.email3 = "l@l.com"
120
+ per.main_phone = Mappum::OpenStruct.new
121
+ per.main_phone.number ="09876567"
122
+
123
+ cli = rt.transform(per,catalogue[:person])
124
+ assert_equal(["j@j.com", nil, "l@l.com"], cli.emails)
125
+
126
+ per2 = rt.transform(cli,catalogue[:client])
127
+ assert_equal(per, per2)
128
+ end
129
+ end
@@ -0,0 +1,108 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
+ #TODO fix imports
3
+ require 'mappum/xml_transform'
4
+ require 'test/unit'
5
+ require 'rubygems'
6
+ gem 'soap4r'
7
+ gem 'facets'
8
+ require 'facets/equatable'
9
+ require 'soap/marshal'
10
+
11
+ wl = Mappum::WorkdirLoader.new("sample/server/schema", "sample/server/map")
12
+ wl.generate_and_require
13
+
14
+ class Erp::Person
15
+ include Equatable(:title, :person_id, :name, :surname, :sex, :email1,
16
+ :email2, :email3, :main_phone, :address, :phones)
17
+ end
18
+ class Erp::Phone
19
+ include Equatable(:number, :extension, :type)
20
+ end
21
+ class Erp::Person::Address
22
+ include Equatable(:city, :street)
23
+ end
24
+
25
+ class TestExample < Test::Unit::TestCase
26
+ def initialize(*args)
27
+ super(*args)
28
+ @rt = Mappum::XmlTransform.new
29
+ @personMapper = Erp::ErpErp_personMapper.new
30
+ @clientMapper = Crm_clientMapper.new
31
+ end
32
+ def test_xml_transform
33
+
34
+ xml = IO.read("sample/person_fixture.xml")
35
+
36
+ xml_cli = @rt.transform(xml)
37
+
38
+ xml2 = @rt.transform(xml_cli)
39
+
40
+ assert_equal(xml.strip, xml2.strip)
41
+
42
+ end
43
+ def test_transform
44
+
45
+ xml = IO.read("sample/person_fixture.xml")
46
+ clixml = @rt.transform(xml)
47
+ cli = @clientMapper.xml2obj(clixml)
48
+
49
+ assert_equal("sir", cli.title)
50
+ assert_equal("ASDDSA", cli.id)
51
+ assert_equal("2", cli.sex_id)
52
+ assert_equal("Skoryski", cli.surname)
53
+ assert_equal(Client::Address, cli.address.class)
54
+ assert_equal("Victoria", cli.address.street)
55
+ assert_equal(["j@j.com", "k@k.com", "l@l.com"], cli.emails)
56
+ assert_equal(["21311231", "21311232"], cli.phones)
57
+ assert_equal("09876567", cli.main_phone)
58
+
59
+ xml2 = @rt.transform(clixml)
60
+
61
+ assert_equal(xml.strip, xml2.strip)
62
+
63
+
64
+ end
65
+ def test_transform_nil_array
66
+
67
+ per = Erp::Person.new
68
+ per.title = "sir"
69
+ per.person_id = "asddsa"
70
+ per.sex = "M"
71
+ per.name = "Skory"
72
+ per.address = Erp::Person::Address.new
73
+ per.address.street = "Victoria"
74
+ per.phones = nil
75
+
76
+ perxml = @personMapper.obj2xml(per)
77
+ clixml = @rt.transform(perxml)
78
+ cli = @clientMapper.xml2obj(clixml)
79
+
80
+ assert_equal("sir", cli.title)
81
+ assert_equal("ASDDSA", cli.id)
82
+ assert_equal("2", cli.sex_id)
83
+ assert_equal("Skoryski", cli.surname)
84
+ assert_equal(Client::Address, cli.address.class)
85
+ assert_equal("Victoria", cli.address.street)
86
+ assert_nil(cli.phones)
87
+ assert_nil(cli.main_phone)
88
+ per2xml = @rt.transform(clixml)
89
+
90
+ per2 = @personMapper.xml2obj(per2xml)
91
+
92
+ assert_equal(per, per2)
93
+ end
94
+ def test_transform_funny_array
95
+ catalogue = Mappum.catalogue
96
+ rt = Mappum::RubyTransform.new(catalogue)
97
+
98
+ per = Erp::Person.new
99
+ per.email1 = "j@j.com"
100
+ per.email3 = "l@l.com"
101
+ per.main_phone = Erp::Phone.new("7869876")
102
+ cli = rt.transform(per)
103
+ assert_equal(["j@j.com", nil, "l@l.com"], cli.emails)
104
+
105
+ per2 = rt.transform(cli)
106
+ assert_equal(per, per2)
107
+ end
108
+ end