sandozxmlconv 1.0.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.
- data/.gemtest +0 -0
- data/History.txt +6 -0
- data/LICENSE +339 -0
- data/README.txt +25 -0
- data/Rakefile +38 -0
- data/doc/index.rbx +14 -0
- data/doc/propharma.rbx +57 -0
- data/doc/resources/xmlconv.css +94 -0
- data/doc/soap.rbx +55 -0
- data/doc/sunstore.rbx +57 -0
- data/doc/unilog.rbx +57 -0
- data/doc/volksapotheke.rbx +57 -0
- data/doc/wbmb.rbx +56 -0
- data/etc/trans_handler.yml +0 -0
- data/lib/conversion/bdd_csv.rb +60 -0
- data/lib/conversion/pharmacieplus_bdd.rb +140 -0
- data/lib/conversion/propharma_bdd.rb +100 -0
- data/lib/conversion/sunstore_bdd.rb +222 -0
- data/lib/conversion/wbmb_bdd.rb +200 -0
- data/lib/conversion/xundart_bdd.rb +73 -0
- data/lib/postprocess/bbmb.rb +88 -0
- data/lib/postprocess/bbmb2.rb +102 -0
- data/lib/postprocess/soap.rb +15 -0
- data/lib/sandozxmlconv.rb +3 -0
- data/test/mock.rb +149 -0
- data/test/rcov +2 -0
- data/test/suite.rb +16 -0
- data/test/test_conversion/pharmacieplus_bdd.rb +224 -0
- data/test/test_conversion/propharma_bdd.rb +101 -0
- data/test/test_conversion/sunstore_bdd.rb +159 -0
- data/test/test_conversion/wbmb_bdd.rb +206 -0
- data/test/test_conversion/xundart_bdd.rb +93 -0
- data/test/test_integration/pharmacieplus_csv.rb +205 -0
- data/test/test_integration/propharma_csv.rb +129 -0
- data/test/test_integration/sunstore_csv.rb +79 -0
- data/test/test_integration/xundart_csv.rb +71 -0
- data/test/test_postprocess/bbmb.rb +229 -0
- data/test/test_postprocess/bbmb2.rb +441 -0
- data/test/test_postprocess/soap.rb +37 -0
- metadata +123 -0
@@ -0,0 +1,224 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestPharmaciePlusBdd -- xmlconv2 -- 18.08.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.dirname(__FILE__)
|
5
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
6
|
+
|
7
|
+
require 'test/unit'
|
8
|
+
require 'conversion/pharmacieplus_bdd'
|
9
|
+
|
10
|
+
|
11
|
+
module XmlConv
|
12
|
+
module Conversion
|
13
|
+
class TestGehBdd < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@src = <<-XML
|
16
|
+
<?xml version="1.0" encoding="ISO-8859-1"?>
|
17
|
+
<commande id="1861" date="2006-08-16T09:32:35.303+02:00" xmlns="http://www.ofac.ch/XEDO">
|
18
|
+
<groupe>
|
19
|
+
<last-name>pharmacieplus Directe</last-name>
|
20
|
+
<first-name> </first-name>
|
21
|
+
<other-name>Messieurs Eric Bussat + Christian Rouvinez</other-name>
|
22
|
+
<address>
|
23
|
+
<street>les courbes 5</street>
|
24
|
+
<zip>1121</zip>
|
25
|
+
<city>Bremblens</city>
|
26
|
+
</address>
|
27
|
+
<telecom>
|
28
|
+
<phone number="021 811 48 88"/>
|
29
|
+
<fax number="021 811 48 89"/>
|
30
|
+
</telecom>
|
31
|
+
<online>
|
32
|
+
<email>secretariat@pharmacieplus.ch</email>
|
33
|
+
</online>
|
34
|
+
</groupe>
|
35
|
+
<fournisseur ean="7601001000681">
|
36
|
+
<last-name>GLOBOPHARM AG</last-name>
|
37
|
+
<first-name> </first-name>
|
38
|
+
<address>
|
39
|
+
<street>Seestrasse 200</street>
|
40
|
+
<zip>8700</zip>
|
41
|
+
<city>KUESNACHT</city>
|
42
|
+
<country>CH</country>
|
43
|
+
</address>
|
44
|
+
</fournisseur>
|
45
|
+
<com-global>
|
46
|
+
<article ean="7680543802083" pharmacode="2054106" qte-livraison="12" qte-facture="10">
|
47
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 100 Stk</desc>
|
48
|
+
<cond-com>
|
49
|
+
<bonus facture="10" livre="12"/>
|
50
|
+
</cond-com>
|
51
|
+
</article>
|
52
|
+
<article ean="7680543800386" pharmacode="2054081" qte-livraison="12" qte-facture="10">
|
53
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 28 Stk</desc>
|
54
|
+
<cond-com>
|
55
|
+
<bonus facture="10" livre="12"/>
|
56
|
+
</cond-com>
|
57
|
+
</article>
|
58
|
+
<article ean="7680543801949" pharmacode="2054098" qte-livraison="30" qte-facture="20">
|
59
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 56 Stk</desc>
|
60
|
+
<cond-com>
|
61
|
+
<bonus facture="10" livre="15"/>
|
62
|
+
</cond-com>
|
63
|
+
</article>
|
64
|
+
<article ean="7680543802403" pharmacode="2054158" qte-livraison="15" qte-facture="10">
|
65
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 100 Stk</desc>
|
66
|
+
<cond-com>
|
67
|
+
<bonus facture="10" livre="15"/>
|
68
|
+
</cond-com>
|
69
|
+
</article>
|
70
|
+
<article ean="7680543800898" pharmacode="2054129" qte-livraison="13" qte-facture="13">
|
71
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 14 Stk</desc>
|
72
|
+
<cond-com rabais="10.0"/>
|
73
|
+
</article>
|
74
|
+
<article ean="7680543800973" pharmacode="2054135" qte-livraison="28" qte-facture="20">
|
75
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 28 Stk</desc>
|
76
|
+
<cond-com>
|
77
|
+
<bonus facture="10" livre="14"/>
|
78
|
+
</cond-com>
|
79
|
+
</article>
|
80
|
+
<article ean="7680543802328" pharmacode="2054141" qte-livraison="17" qte-facture="17">
|
81
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 56 Stk</desc>
|
82
|
+
<cond-com rabais="15.0"/>
|
83
|
+
</article>
|
84
|
+
<article ean="7680543800706" pharmacode="2054112" qte-livraison="28" qte-facture="20">
|
85
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 7 Stk</desc>
|
86
|
+
<cond-com>
|
87
|
+
<bonus facture="10" livre="14"/>
|
88
|
+
</cond-com>
|
89
|
+
</article>
|
90
|
+
<article ean="7680548750532" pharmacode="2204899" qte-livraison="11" qte-facture="11">
|
91
|
+
<desc>ATACAND PLUS Tabl 16/12.5 mg 28 Stk</desc>
|
92
|
+
<cond-com rabais="5.0"/>
|
93
|
+
</article>
|
94
|
+
<article ean="7680548750617" pharmacode="2204907" qte-livraison="30" qte-facture="20">
|
95
|
+
<desc>ATACAND PLUS Tabl 16/12.5 mg 98 Stk</desc>
|
96
|
+
<cond-com>
|
97
|
+
<bonus facture="10" livre="15"/>
|
98
|
+
</cond-com>
|
99
|
+
</article>
|
100
|
+
</com-global>
|
101
|
+
<com-pharma ean="7601001368095">
|
102
|
+
<livraison>
|
103
|
+
<last-name>Pharmacie du Mandement</last-name>
|
104
|
+
<first-name> </first-name>
|
105
|
+
<other-name> Madame Fran�oise Recipient </other-name>
|
106
|
+
<address>
|
107
|
+
<street>3e adresse e-mail</street>
|
108
|
+
<zip>1242</zip>
|
109
|
+
<city>Satigny</city>
|
110
|
+
</address>
|
111
|
+
</livraison>
|
112
|
+
<article ean="7680543801949" pharmacode="2054098" qte-livraison="15" qte-facture="10">
|
113
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 56 Stk</desc>
|
114
|
+
</article>
|
115
|
+
<article ean="7680543802403" pharmacode="2054158" qte-livraison="15" qte-facture="10">
|
116
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 100 Stk</desc>
|
117
|
+
</article>
|
118
|
+
<article ean="7680543800898" pharmacode="2054129" qte-livraison="6" qte-facture="6">
|
119
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 14 Stk</desc>
|
120
|
+
</article>
|
121
|
+
<article ean="7680543802328" pharmacode="2054141" qte-livraison="9" qte-facture="9">
|
122
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 56 Stk</desc>
|
123
|
+
</article>
|
124
|
+
<article ean="7680543800706" pharmacode="2054112" qte-livraison="28" qte-facture="20">
|
125
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 7 Stk</desc>
|
126
|
+
</article>
|
127
|
+
<article ean="7680548750532" pharmacode="2204899" qte-livraison="11" qte-facture="11">
|
128
|
+
<desc>ATACAND PLUS Tabl 16/12.5 mg 28 Stk</desc>
|
129
|
+
</article>
|
130
|
+
<article ean="7680548750617" pharmacode="2204907" qte-livraison="30" qte-facture="20">
|
131
|
+
<desc>ATACAND PLUS Tabl 16/12.5 mg 98 Stk</desc>
|
132
|
+
</article>
|
133
|
+
</com-pharma>
|
134
|
+
<com-pharma ean="7601001368491">
|
135
|
+
<livraison>
|
136
|
+
<last-name>Pharm. Ecole-de-M�decine</last-name>
|
137
|
+
<first-name> </first-name>
|
138
|
+
<other-name> Monsieur Fr�d�ric Recipient </other-name>
|
139
|
+
<address>
|
140
|
+
<street>3e adresse e-mail</street>
|
141
|
+
<zip>1205</zip>
|
142
|
+
<city>Gen�ve</city>
|
143
|
+
</address>
|
144
|
+
</livraison>
|
145
|
+
<article ean="7680543802083" pharmacode="2054106" qte-livraison="12" qte-facture="10">
|
146
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 100 Stk</desc>
|
147
|
+
</article>
|
148
|
+
<article ean="7680543800386" pharmacode="2054081" qte-livraison="12" qte-facture="10">
|
149
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 28 Stk</desc>
|
150
|
+
</article>
|
151
|
+
<article ean="7680543801949" pharmacode="2054098" qte-livraison="15" qte-facture="10">
|
152
|
+
<desc>ANTRA MUPS 10 Tabl 10 mg 56 Stk</desc>
|
153
|
+
</article>
|
154
|
+
<article ean="7680543800898" pharmacode="2054129" qte-livraison="7" qte-facture="7">
|
155
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 14 Stk</desc>
|
156
|
+
</article>
|
157
|
+
<article ean="7680543800973" pharmacode="2054135" qte-livraison="28" qte-facture="20">
|
158
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 28 Stk</desc>
|
159
|
+
</article>
|
160
|
+
<article ean="7680543802328" pharmacode="2054141" qte-livraison="8" qte-facture="8">
|
161
|
+
<desc>ANTRA MUPS 20 Tabl 20 mg 56 Stk</desc>
|
162
|
+
</article>
|
163
|
+
</com-pharma>
|
164
|
+
</commande>
|
165
|
+
XML
|
166
|
+
@xml_doc = REXML::Document.new(@src)
|
167
|
+
end
|
168
|
+
def test_parse
|
169
|
+
document = PharmaciePlusBdd.parse(@src)
|
170
|
+
assert_instance_of(REXML::Document, document)
|
171
|
+
end
|
172
|
+
def test_convert
|
173
|
+
bdd = PharmaciePlusBdd.convert(@xml_doc)
|
174
|
+
assert_instance_of(Model::Bdd, bdd)
|
175
|
+
assert_equal(2, bdd.deliveries.size)
|
176
|
+
delivery = bdd.deliveries.first
|
177
|
+
assert_instance_of(Model::Delivery, delivery)
|
178
|
+
assert_equal('1861', delivery.customer_id)
|
179
|
+
bsr = delivery.bsr
|
180
|
+
assert_instance_of(Model::Bsr, bsr)
|
181
|
+
assert_equal('7601001368095', delivery.bsr_id)
|
182
|
+
customer = delivery.customer
|
183
|
+
assert_instance_of(Model::Party, customer)
|
184
|
+
shipto = customer.ship_to
|
185
|
+
assert_instance_of(Model::Party, shipto)
|
186
|
+
name = shipto.name
|
187
|
+
assert_instance_of(Model::Name, name)
|
188
|
+
expected = "Madame Fran�oise Recipient"
|
189
|
+
assert_equal(expected, name.to_s)
|
190
|
+
address = shipto.address
|
191
|
+
assert_instance_of(Model::Address, address)
|
192
|
+
assert_equal(["Pharmacie du Mandement", "3e adresse e-mail"],
|
193
|
+
address.lines)
|
194
|
+
assert_equal("1242", address.zip_code)
|
195
|
+
assert_equal("Satigny", address.city)
|
196
|
+
assert_equal(7, delivery.items.size)
|
197
|
+
|
198
|
+
item = delivery.items.first
|
199
|
+
assert_instance_of(Model::DeliveryItem, item)
|
200
|
+
assert_equal('1', item.line_no)
|
201
|
+
assert_equal('7680543801949', item.et_nummer_id)
|
202
|
+
assert_equal('2054098', item.pharmacode_id)
|
203
|
+
assert_equal('10', item.qty)
|
204
|
+
|
205
|
+
#bsr = delivery.bsr
|
206
|
+
#assert_instance_of(Model::Bsr, bsr)
|
207
|
+
|
208
|
+
## second delivery:
|
209
|
+
delivery = bdd.deliveries.last
|
210
|
+
assert_instance_of(Model::Delivery, delivery)
|
211
|
+
assert_equal('1861', delivery.customer_id)
|
212
|
+
assert_equal('7601001368491', delivery.bsr_id)
|
213
|
+
customer = delivery.customer
|
214
|
+
assert_instance_of(Model::Party, customer)
|
215
|
+
name = customer.name
|
216
|
+
assert_instance_of(Model::Name, name)
|
217
|
+
expected = "Monsieur Fr�d�ric Recipient"
|
218
|
+
assert_equal(expected, name.to_s)
|
219
|
+
expected = "Pharm. Ecole-de-M�decine"
|
220
|
+
assert_equal(expected, customer.ship_to.address.lines.first)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Conversion::TestProPharmaBdd -- xmlconv2 -- 14.09.2007 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('..', File.dirname(__FILE__))
|
5
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
6
|
+
|
7
|
+
require 'test/unit'
|
8
|
+
require 'conversion/propharma_bdd'
|
9
|
+
require 'flexmock'
|
10
|
+
|
11
|
+
module XmlConv
|
12
|
+
module Conversion
|
13
|
+
class TestWbmbBdd < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@src = <<-EOS
|
16
|
+
[KUNDE]
|
17
|
+
idt=123456
|
18
|
+
nam=Linden APOTHEKE
|
19
|
+
ort=5430 Wettingen
|
20
|
+
[BSTELL]
|
21
|
+
ref=100446
|
22
|
+
dat=A70626
|
23
|
+
tim=2131
|
24
|
+
[ARTIK]
|
25
|
+
typ=P
|
26
|
+
phc=02201228
|
27
|
+
art=AVEENO ADULTS CREAM 100 ML
|
28
|
+
mge=1
|
29
|
+
[ARTIK]
|
30
|
+
typ=P
|
31
|
+
phc=00931796
|
32
|
+
art=MEPHAMESON 8 INJ LOES 8 MG 50 AMP 2 ML
|
33
|
+
mge=4
|
34
|
+
[ARTIK]
|
35
|
+
typ=P
|
36
|
+
phc=01995226
|
37
|
+
art=3M INDAIR TAPE HEISSLUFT 19MMX50M 12 STK
|
38
|
+
mge=19
|
39
|
+
[ARTIK]
|
40
|
+
typ=P
|
41
|
+
phc=02584519
|
42
|
+
art=ABRI NET NETZHOSE 130-190CM XXL ORANGE BTL 50 STK
|
43
|
+
mge=4
|
44
|
+
[ARTIK]
|
45
|
+
typ=P
|
46
|
+
phc=01901722
|
47
|
+
art=ASPIRIN CARDIO 300 TABL 300 MG 90 STK
|
48
|
+
mge=10
|
49
|
+
[ARTIK]
|
50
|
+
typ=P
|
51
|
+
phc=10001318
|
52
|
+
art=BLUTDRUCKMESSEN
|
53
|
+
mge=1
|
54
|
+
[ARTIK]
|
55
|
+
typ=P
|
56
|
+
phc=00829336
|
57
|
+
art=PONSTAN FILMTABS 500 MG 120 STK
|
58
|
+
mge=2
|
59
|
+
[ARTIK]
|
60
|
+
typ=P
|
61
|
+
phc=00703285
|
62
|
+
art=PONSTAN FILMTABS 500 MG 36 STK
|
63
|
+
mge=11
|
64
|
+
[ARTIK]
|
65
|
+
typ=P
|
66
|
+
phc=10001446
|
67
|
+
art=REZEPTEROEFFNUNG
|
68
|
+
mge=2
|
69
|
+
EOS
|
70
|
+
end
|
71
|
+
def test_parse
|
72
|
+
ast = ProPharmaBdd.parse(@src)
|
73
|
+
assert_instance_of(SyntaxTree, ast)
|
74
|
+
end
|
75
|
+
def test_convert
|
76
|
+
bdd = ProPharmaBdd.convert(ProPharmaBdd.parse(@src))
|
77
|
+
assert_instance_of(Model::Bdd, bdd)
|
78
|
+
assert_equal(1, bdd.deliveries.size)
|
79
|
+
delivery = bdd.deliveries.first
|
80
|
+
customer = delivery.customer
|
81
|
+
assert_instance_of(Model::Party, customer)
|
82
|
+
assert_equal("Linden APOTHEKE", customer.name.to_s)
|
83
|
+
# customer_id is in reality the delivery_id assigned by the
|
84
|
+
# customer - the slight confusion is due to automatic naming
|
85
|
+
assert_equal('100446', delivery.customer_id)
|
86
|
+
assert_equal('123456', delivery.bsr_id)
|
87
|
+
customer = delivery.customer
|
88
|
+
assert_equal('123456', customer.ids['customer'])
|
89
|
+
seller = delivery.seller
|
90
|
+
assert_equal('7601001000681', seller.acc_id)
|
91
|
+
assert_equal(9, delivery.items.size)
|
92
|
+
item = delivery.items.first
|
93
|
+
assert_equal('02201228', item.pharmacode_id)
|
94
|
+
assert_equal('1', item.qty)
|
95
|
+
item = delivery.items.last
|
96
|
+
assert_equal('10001446', item.pharmacode_id)
|
97
|
+
assert_equal('2', item.qty)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestSunStoreBdd -- xmlconv2 -- 18.08.2006 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.dirname(__FILE__)
|
5
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
6
|
+
|
7
|
+
require 'test/unit'
|
8
|
+
require 'conversion/sunstore_bdd'
|
9
|
+
require 'xmlconv/util/transaction'
|
10
|
+
|
11
|
+
module XmlConv
|
12
|
+
module Conversion
|
13
|
+
class TestGehBdd < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@src = <<-XML
|
16
|
+
<?xml version="1.0" encoding="ISO-8859-1"?>
|
17
|
+
<customerOrder xmlns="http://www.e-galexis.com/schemas/"
|
18
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
19
|
+
xsi:schemaLocation="http://www.e-galexis.com/schemas/ http://www.e-galexis.com/schemas/POS/customerOrder/customerOrder.xsd"
|
20
|
+
backLogDesired="true" compressionDesired="false" language="de"
|
21
|
+
productDescriptionDesired="false" roundUpForCondition="true"
|
22
|
+
version="1.0">
|
23
|
+
<client number="7601000755872" password="test" />
|
24
|
+
<orderHeader deliveryDate="2002-08-25"
|
25
|
+
referenceNumber="123ABCDE9012345" mannerOfTransport="tour"
|
26
|
+
urgent="false">
|
27
|
+
<deliveryAddress line1="Superkunde" line4="Linkestrasse 99"
|
28
|
+
line5PostalCode="3322" line5City="Schönbühl">
|
29
|
+
<addressLine2And3Text line2="Dorfladen" line3="Frau Muster" />
|
30
|
+
</deliveryAddress>
|
31
|
+
</orderHeader>
|
32
|
+
<orderLines>
|
33
|
+
<productOrderLine orderQuantity="10" roundUpForCondition="true"
|
34
|
+
backLogDesired="false">
|
35
|
+
<pharmaCode id="1336630" />
|
36
|
+
</productOrderLine>
|
37
|
+
<productLabelOrderLine defaultOrderQuantity="5">
|
38
|
+
<EAN id="7680123456789" />
|
39
|
+
<supplierProductNumber EANsupplierId="54321678091432"
|
40
|
+
id="123.234-2" />
|
41
|
+
</productLabelOrderLine>
|
42
|
+
</orderLines>
|
43
|
+
</customerOrder>
|
44
|
+
XML
|
45
|
+
@xml_doc = REXML::Document.new(@src)
|
46
|
+
end
|
47
|
+
def test_parse
|
48
|
+
document = SunStoreBdd.parse(@src)
|
49
|
+
assert_instance_of(REXML::Document, document)
|
50
|
+
end
|
51
|
+
def test_convert
|
52
|
+
bdd = SunStoreBdd.convert(@xml_doc)
|
53
|
+
assert_instance_of(Model::Bdd, bdd)
|
54
|
+
assert_equal(1, bdd.deliveries.size)
|
55
|
+
delivery = bdd.deliveries.first
|
56
|
+
assert_instance_of(Model::Delivery, delivery)
|
57
|
+
assert_equal('123ABCDE9012345', delivery.customer_id)
|
58
|
+
bsr = delivery.bsr
|
59
|
+
assert_instance_of(Model::Bsr, bsr)
|
60
|
+
assert_equal('7601000755872', delivery.bsr_id)
|
61
|
+
customer = delivery.customer
|
62
|
+
assert_instance_of(Model::Party, customer)
|
63
|
+
assert_equal('7601000755872', customer.acc_id)
|
64
|
+
shipto = customer.ship_to
|
65
|
+
assert_instance_of(Model::Party, shipto)
|
66
|
+
name = shipto.name
|
67
|
+
assert_instance_of(Model::Name, name)
|
68
|
+
expected = "Superkunde"
|
69
|
+
assert_equal(expected, name.to_s)
|
70
|
+
address = shipto.address
|
71
|
+
assert_instance_of(Model::Address, address)
|
72
|
+
assert_equal([ "Dorfladen", "Frau Muster",
|
73
|
+
"Linkestrasse 99" ],
|
74
|
+
address.lines)
|
75
|
+
assert_equal("3322", address.zip_code)
|
76
|
+
assert_equal("Sch\366nb\374hl", address.city)
|
77
|
+
assert_equal(2, delivery.items.size)
|
78
|
+
|
79
|
+
item = delivery.items.first
|
80
|
+
assert_instance_of(Model::DeliveryItem, item)
|
81
|
+
assert_equal('1', item.line_no)
|
82
|
+
assert_equal(nil, item.et_nummer_id)
|
83
|
+
assert_equal('1336630', item.pharmacode_id)
|
84
|
+
assert_equal('10', item.qty)
|
85
|
+
|
86
|
+
item = delivery.items.last
|
87
|
+
assert_instance_of(Model::DeliveryItem, item)
|
88
|
+
assert_equal('2', item.line_no)
|
89
|
+
assert_equal('7680123456789', item.et_nummer_id)
|
90
|
+
assert_equal(nil, item.pharmacode_id)
|
91
|
+
assert_equal('5', item.qty)
|
92
|
+
end
|
93
|
+
def test_respond
|
94
|
+
transaction = Util::Transaction.new
|
95
|
+
transaction.instance_variable_set('@model', SunStoreBdd.convert(@xml_doc))
|
96
|
+
response = SunStoreBdd.respond transaction, []
|
97
|
+
assert_instance_of REXML::Document, response
|
98
|
+
output = ''
|
99
|
+
REXML::Formatters::Pretty.new.write response, output
|
100
|
+
assert_equal <<-EOS.strip, output
|
101
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
102
|
+
<customerOrderResponse backLogDesired='false' language='de' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.e-galexis.com/schemas/ http://www.e-galexis.com/schemas/POS/customerOrder/customerOrderResponse.xsd' version='1.0' productDescriptionDesired='false' roundUpForCondition='false' xmlns='http://www.e-galexis.com/schemas/'>
|
103
|
+
<clientErrorResponse/>
|
104
|
+
</customerOrderResponse>
|
105
|
+
EOS
|
106
|
+
|
107
|
+
response = SunStoreBdd.respond transaction, [ :order_id => '12345-1',
|
108
|
+
:products => [] ]
|
109
|
+
output = ''
|
110
|
+
REXML::Formatters::Pretty.new.write response, output
|
111
|
+
assert_equal <<-EOS.strip, output
|
112
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
113
|
+
<customerOrderResponse backLogDesired='false' language='de' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.e-galexis.com/schemas/ http://www.e-galexis.com/schemas/POS/customerOrder/customerOrderResponse.xsd' version='1.0' productDescriptionDesired='false' roundUpForCondition='false' xmlns='http://www.e-galexis.com/schemas/'>
|
114
|
+
<clientResponse number='12345-1'/>
|
115
|
+
<orderHeaderErrorResponse/>
|
116
|
+
</customerOrderResponse>
|
117
|
+
EOS
|
118
|
+
|
119
|
+
products = [
|
120
|
+
{ :description => 'Product & 1',
|
121
|
+
:article_number => '1' },
|
122
|
+
{ :description => 'Product & 2',
|
123
|
+
:article_number => '2' }
|
124
|
+
]
|
125
|
+
response = SunStoreBdd.respond transaction, [ :order_id => '12345-1',
|
126
|
+
:products => products ]
|
127
|
+
output = ''
|
128
|
+
REXML::Formatters::Pretty.new.write response, output
|
129
|
+
assert_equal <<-EOS.strip, output
|
130
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
131
|
+
<customerOrderResponse backLogDesired='false' language='de' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.e-galexis.com/schemas/ http://www.e-galexis.com/schemas/POS/customerOrder/customerOrderResponse.xsd' version='1.0' productDescriptionDesired='false' roundUpForCondition='false' xmlns='http://www.e-galexis.com/schemas/'>
|
132
|
+
<clientResponse number='12345-1'/>
|
133
|
+
<orderHeaderResponse referenceNumber='123ABCDE9012345'>
|
134
|
+
<deliveryAddress line1='Superkunde' line5City='Schönbühl' line5PostalCode='3322' line4='Linkestrasse 99'>
|
135
|
+
<addressLine2And3Text line2='Dorfladen' line3='Frau Muster'/>
|
136
|
+
</deliveryAddress>
|
137
|
+
</orderHeaderResponse>
|
138
|
+
<orderLinesResponse>
|
139
|
+
<productOrderLineResponse lineAccepted='true' roundUpForConditionDone='false' productReplaced='false' backLogLine='false'>
|
140
|
+
<productOrderLine orderQuantity='10'>
|
141
|
+
<pharmaCode id='1336630'/>
|
142
|
+
</productOrderLine>
|
143
|
+
<productResponse description='Product & 1' wholesalerProductCode='1'/>
|
144
|
+
<availability status='yes'/>
|
145
|
+
</productOrderLineResponse>
|
146
|
+
<productOrderLineResponse lineAccepted='true' roundUpForConditionDone='false' productReplaced='false' backLogLine='false'>
|
147
|
+
<productOrderLine orderQuantity='5'>
|
148
|
+
<EAN id='7680123456789'/>
|
149
|
+
</productOrderLine>
|
150
|
+
<productResponse description='Product & 2' wholesalerProductCode='2'/>
|
151
|
+
<availability status='yes'/>
|
152
|
+
</productOrderLineResponse>
|
153
|
+
</orderLinesResponse>
|
154
|
+
</customerOrderResponse>
|
155
|
+
EOS
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|