oddb2xml 1.8.6 → 1.8.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@ before_install:
6
6
  - gem update --system 2.1.11
7
7
  - gem --version
8
8
 
9
- script: bundle exec rake test
9
+ script: bundle exec rspec
10
10
 
11
11
  rvm:
12
12
  - 1.9.3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oddb2xml (1.8.6)
4
+ oddb2xml (1.8.7)
5
5
  archive-tar-minitar (~> 0.5.2)
6
6
  mechanize (~> 2.5.1)
7
7
  nokogiri (~> 1.5.10)
@@ -1,3 +1,7 @@
1
+ === 1.8.7 / 05.08.2014
2
+
3
+ * Documented meaning of SALECD field oddb2xml.xsd
4
+
1
5
  === 1.8.6 / 04.08.2014
2
6
 
3
7
  * Always fetch additionals (price) information from ZurRose
@@ -632,7 +632,8 @@ module Oddb2xml
632
632
  xml.VAT info_zur_rose[:vat]
633
633
  end
634
634
 
635
- xml.SALECD( (info_zur_rose && info_zur_rose[:cmut] != '3') ? 'A' : 'I') # XML_OPTIONS
635
+ nincd = detect_nincd(de_idx)
636
+ (nincd and nincd == 13) ? xml.SALECD('A') : xml.SALECD( (info_zur_rose && info_zur_rose[:cmut] != '3') ? 'A' : 'I') # XML_OPTIONS
636
637
  if pac and pac[:limitation_points]
637
638
  #xml.INSLIM
638
639
  xml.LIMPTS pac[:limitation_points] unless pac[:limitation_points].empty?
@@ -750,7 +751,7 @@ module Oddb2xml
750
751
  #xml.ARTLIM {
751
752
  # xml.LIMCD
752
753
  #}
753
- if nincd = detect_nincd(de_idx)
754
+ if nincd
754
755
  xml.ARTINS {
755
756
  #xml.VDAT
756
757
  #xml.INCD
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "1.8.6"
2
+ VERSION = "1.8.7"
3
3
  end
@@ -158,6 +158,14 @@
158
158
  </xs:element>
159
159
  <xs:element name="SALECD">
160
160
  <xs:simpleType>
161
+ <xs:annotation>
162
+ <xs:documentation xml:lang="de">
163
+ Bedeutung ist 'A' = Aktiv,'I' = inaktiv == Ausser Handel
164
+ </xs:documentation>
165
+ <xs:documentation xml:lang="en">
166
+ meaning is 'A' = active,'I' = inactive == out of trade
167
+ </xs:documentation>
168
+ </xs:annotation>
161
169
  <xs:restriction base="xs:string">
162
170
  <xs:enumeration value="A" />
163
171
  <xs:enumeration value="I" />
@@ -257,6 +265,11 @@
257
265
  </xs:element>
258
266
  <xs:element name="NINCD">
259
267
  <xs:simpleType>
268
+ <xs:annotation>
269
+ <xs:documentation xml:lang="en">
270
+ possible values are 10 => BAG-XML (SL/LS), 13 -> MiGel, 20 => (LPPV) Limitation, empty => NonPharma)
271
+ </xs:documentation>
272
+ </xs:annotation>
260
273
  <xs:restriction base="xs:byte">
261
274
  <xs:enumeration value="10" />
262
275
  <xs:enumeration value="20" />
@@ -25,25 +25,26 @@ def check_validation_via_xsd
25
25
  xsd = Nokogiri::XML::Schema(File.read(@oddb2xml_xsd))
26
26
  files.each{
27
27
  |file|
28
- doc = Nokogiri::XML(File.read(@article_xml))
28
+ $stderr.puts "Validating file #{file} with #{File.size(file)} bytes" if $VERBOSE
29
+ doc = Nokogiri::XML(File.read(file))
29
30
  xsd.validate(doc).each do |error| error.message.should be_nil end
30
31
  }
31
32
  end
32
33
  describe Oddb2xml::Builder do
33
- NrExtendedArticles = 71
34
- NrPharmaAndNonPharmaArticles = 62
34
+ NrExtendedArticles = 73
35
+ NrPharmaAndNonPharmaArticles = 60
35
36
  NrPharmaArticles = 5
36
37
  include ServerMockHelper
37
38
  before(:each) do
38
39
  @savedDir = Dir.pwd
39
40
  cleanup_directories_before_run
40
41
  setup_server_mocks
41
- setup_swiss_index_server_mock(types = ['NonPharma', 'Pharma'])
42
42
  Dir.chdir Oddb2xml::WorkDir
43
43
  end
44
44
  after(:each) do
45
45
  Dir.chdir @savedDir if @savedDir and File.directory?(@savedDir)
46
46
  end
47
+
47
48
  context 'XSD-generation: ' do
48
49
  let(:cli) do
49
50
  opts = {}
@@ -53,7 +54,7 @@ describe Oddb2xml::Builder do
53
54
  Oddb2xml::Cli.new(opts)
54
55
  end
55
56
 
56
- it 'should return true when validating oddb_article.xml against oddb_article.xsd' do
57
+ it 'should return true when validating xml against oddb2xml.xsd' do
57
58
  res = buildr_capture(:stdout){ cli.run }
58
59
  File.exists?(@article_xml).should be_true
59
60
  File.exists?(@product_xml).should be_true
@@ -127,7 +128,6 @@ describe Oddb2xml::Builder do
127
128
  end
128
129
 
129
130
  it 'should contain the correct values fo CMUT from zurrose_transfer.dat' do
130
- puts Oddb2xml::WorkDir
131
131
  res = buildr_capture(:stdout){ cli.run }
132
132
  res.should match(/products/)
133
133
  dat_filename = File.join(Oddb2xml::WorkDir, 'oddb.dat')
@@ -188,14 +188,14 @@ describe Oddb2xml::Builder do
188
188
  smno = article.elements['SMNO'] ? article.elements['SMNO'].text : 'nil'
189
189
  puts "checking doc for pharmacode #{pharmacode} isRefdata #{isRefdata} == #{refdata}. SMNO: #{smno} #{name}" if $VERBOSE
190
190
  article.elements['REF_DATA'].text.should == isRefdata.to_s
191
+
191
192
  end
192
193
 
193
194
  it 'should generate the flag non-refdata' do
194
195
  res = buildr_capture(:stdout){ cli.run }
195
196
  @article_xml = File.expand_path(File.join(Oddb2xml::WorkDir, 'oddb_article.xml'))
196
- puts @article_xml
197
197
  File.exists?(@article_xml).should be_true
198
- FileUtils.cp(@article_xml, '/opt/src/oddb2xml/tst.xml', :verbose => true)
198
+ FileUtils.cp(@article_xml, File.join(Oddb2xml::WorkDir, 'tst-non-refdata.xml'))
199
199
  article_xml = IO.read(@article_xml)
200
200
  doc = REXML::Document.new File.new(@article_xml)
201
201
  XPath.match( doc, "//REF_DATA" ).size.should > 0
@@ -205,6 +205,16 @@ describe Oddb2xml::Builder do
205
205
  checkItemForRefdata(doc, "5366964", 1) # 1-DAY ACUVUE moist jour
206
206
  end
207
207
 
208
+ it 'should generate SALECD A for migel (NINCD 13)' do
209
+ res = buildr_capture(:stdout){ cli.run }
210
+ @article_xml = File.expand_path(File.join(Oddb2xml::WorkDir, 'oddb_article.xml'))
211
+ doc = REXML::Document.new File.new(@article_xml)
212
+ article = XPath.match( doc, "//ART[ARTINS/NINCD=13]").first
213
+ article = XPath.match( doc, "//ART[PHAR=5366964]").first
214
+ article.elements['SALECD'].text.should == 'A'
215
+ article.elements['ARTINS/NINCD'].text.should == '13'
216
+ end
217
+
208
218
  it 'should pass validating via oddb2xml.xsd' do
209
219
  check_validation_via_xsd
210
220
  end
@@ -360,9 +370,8 @@ describe Oddb2xml::Builder do
360
370
  it 'should generate the flag SALECD' do
361
371
  res = buildr_capture(:stdout){ cli.run }
362
372
  @article_xml = File.expand_path(File.join(Oddb2xml::WorkDir, 'oddb_article.xml'))
363
- puts @article_xml
364
373
  File.exists?(@article_xml).should be_true
365
- FileUtils.cp(@article_xml, '/opt/src/oddb2xml/tst.xml', :verbose => true)
374
+ FileUtils.cp(@article_xml, File.join(Oddb2xml::WorkDir, 'tst-SALECD.xml'))
366
375
  article_xml = IO.read(@article_xml)
367
376
  doc = REXML::Document.new File.new(@article_xml)
368
377
  XPath.match( doc, "//REF_DATA" ).size.should > 0
@@ -0,0 +1,65 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope
3
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
4
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
6
+ <soap:Body>
7
+ <NONPHARMA
8
+ CREATION_DATETIME="2012-10-18T06:31:19.4687619+02:00"
9
+ xmlns="http://example.com/test">
10
+ <ITEM DT="2013-06-22T00:00:00">
11
+ <GTIN>733905577161</GTIN>
12
+ <PHAR>5366964</PHAR>
13
+ <STATUS>A</STATUS>
14
+ <STDATE>2012-08-22T00:00:00</STDATE>
15
+ <LANG>FR</LANG>
16
+ <DSCR>1-DAY ACUVUE moist jour -2.00dpt BC 8.5</DSCR>
17
+ <ADDSCR>30 pce</ADDSCR>
18
+ <COMP>
19
+ <NAME>Johnson &amp; Johnson Consumer (Health Care / OTC)</NAME>
20
+ </COMP>
21
+ </ITEM>
22
+ <ITEM DT="2012-10-18T00:00:00">
23
+ <GTIN>0000000000000</GTIN>
24
+ <PHAR>00000</PHAR>
25
+ <STATUS>A</STATUS>
26
+ <STDATE>2002-05-23T00:00:00</STDATE>
27
+ <LANG>DE</LANG>
28
+ <DSCR>Foo 1000 mg</DSCR>
29
+ <ADDSCR>Amp</ADDSCR>
30
+ <COMP>
31
+ <NAME>EXAMPLE.COM AG</NAME>
32
+ <GLN>0000000000000</GLN>
33
+ </COMP>
34
+ </ITEM>
35
+ <ITEM DT="2012-10-18T00:00:00">
36
+ <GTIN>0000000000001</GTIN>
37
+ <PHAR>00001</PHAR>
38
+ <STATUS>A</STATUS>
39
+ <STDATE>2002-05-23T00:00:00</STDATE>
40
+ <LANG>DE</LANG>
41
+ <DSCR>Bar 10 Stk</DSCR>
42
+ <ADDSCR>10 Stk</ADDSCR>
43
+ <COMP>
44
+ <NAME>EXAMPLE.ORG AG</NAME>
45
+ </COMP>
46
+ </ITEM>
47
+ <ITEM DT="2012-10-18T00:00:00">
48
+ <GTIN>0000000000002</GTIN>
49
+ <PHAR>00002</PHAR>
50
+ <STATUS>A</STATUS>
51
+ <STDATE>2002-05-23T00:00:00</STDATE>
52
+ <LANG>DE</LANG>
53
+ <DSCR>Baz 10 Tablet</DSCR>
54
+ <ADDSCR>5 Stk</ADDSCR>
55
+ <COMP>
56
+ <NAME>EXAMPLE.AC AG</NAME>
57
+ </COMP>
58
+ </ITEM>
59
+ <RESULT>
60
+ <OK_ERROR>OK</OK_ERROR>
61
+ <NBR_RECORD>3</NBR_RECORD>
62
+ </RESULT>
63
+ </NONPHARMA>
64
+ </soap:Body>
65
+ </soap:Envelope>
@@ -0,0 +1,65 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope
3
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
4
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
6
+ <soap:Body>
7
+ <NONPHARMA
8
+ CREATION_DATETIME="2012-10-18T06:31:19.4687619+02:00"
9
+ xmlns="http://example.com/test">
10
+ <ITEM DT="2013-06-22T00:00:00">
11
+ <GTIN>733905577161</GTIN>
12
+ <PHAR>5366964</PHAR>
13
+ <STATUS>A</STATUS>
14
+ <STDATE>2012-08-22T00:00:00</STDATE>
15
+ <LANG>FR</LANG>
16
+ <DSCR>1-DAY ACUVUE moist jour -2.00dpt BC 8.5</DSCR>
17
+ <ADDSCR>30 pce</ADDSCR>
18
+ <COMP>
19
+ <NAME>Johnson &amp; Johnson Consumer (Health Care / OTC)</NAME>
20
+ </COMP>
21
+ </ITEM>
22
+ <ITEM DT="2012-10-18T00:00:00">
23
+ <GTIN>0000000000000</GTIN>
24
+ <PHAR>00000</PHAR>
25
+ <STATUS>A</STATUS>
26
+ <STDATE>2002-05-23T00:00:00</STDATE>
27
+ <LANG>DE</LANG>
28
+ <DSCR>Foo 1000 mg</DSCR>
29
+ <ADDSCR>Amp</ADDSCR>
30
+ <COMP>
31
+ <NAME>EXAMPLE.COM AG</NAME>
32
+ <GLN>0000000000000</GLN>
33
+ </COMP>
34
+ </ITEM>
35
+ <ITEM DT="2012-10-18T00:00:00">
36
+ <GTIN>0000000000001</GTIN>
37
+ <PHAR>00001</PHAR>
38
+ <STATUS>A</STATUS>
39
+ <STDATE>2002-05-23T00:00:00</STDATE>
40
+ <LANG>DE</LANG>
41
+ <DSCR>Bar 10 Stk</DSCR>
42
+ <ADDSCR>10 Stk</ADDSCR>
43
+ <COMP>
44
+ <NAME>EXAMPLE.ORG AG</NAME>
45
+ </COMP>
46
+ </ITEM>
47
+ <ITEM DT="2012-10-18T00:00:00">
48
+ <GTIN>0000000000002</GTIN>
49
+ <PHAR>00002</PHAR>
50
+ <STATUS>A</STATUS>
51
+ <STDATE>2002-05-23T00:00:00</STDATE>
52
+ <LANG>DE</LANG>
53
+ <DSCR>Baz 10 Tablet</DSCR>
54
+ <ADDSCR>5 Stk</ADDSCR>
55
+ <COMP>
56
+ <NAME>EXAMPLE.AC AG</NAME>
57
+ </COMP>
58
+ </ITEM>
59
+ <RESULT>
60
+ <OK_ERROR>OK</OK_ERROR>
61
+ <NBR_RECORD>3</NBR_RECORD>
62
+ </RESULT>
63
+ </NONPHARMA>
64
+ </soap:Body>
65
+ </soap:Envelope>
@@ -0,0 +1,82 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <PHARMA xmlns="http://swissindex.e-mediat.net/SwissindexPharma_out_V101" CREATION_DATETIME="2013-12-10T10:09:26.8198427+01:00">
5
+ <!-- spec/data/swissindex_pharma.xml. Values for spec/builder_spec.rb -->
6
+ CREATION_DATETIME="2012-10-18T06:31:19.4687619+02:00"
7
+ xmlns="http://example.com/test">
8
+ <ITEM DT="2013-06-22T00:00:00">
9
+ <GTIN>733905577161</GTIN>
10
+ <PHAR>5366964</PHAR>
11
+ <STATUS>A</STATUS>
12
+ <STDATE>2012-08-22T00:00:00</STDATE>
13
+ <LANG>FR</LANG>
14
+ <DSCR>1-DAY ACUVUE moist jour -2.00dpt BC 8.5</DSCR>
15
+ <ADDSCR>30 pce</ADDSCR>
16
+ <COMP>
17
+ <NAME>Johnson &amp; Johnson Consumer (Health Care / OTC)</NAME>
18
+ </COMP>
19
+ </ITEM>
20
+ <ITEM DT="2013-06-22T00:00:00">
21
+ <GTIN>7680536620137</GTIN>
22
+ <PHAR>1699947</PHAR>
23
+ <STATUS>A</STATUS>
24
+ <STDATE>1996-03-20T00:00:00</STDATE>
25
+ <LANG>DE</LANG>
26
+ <DSCR>3TC Filmtabl 150 mg</DSCR>
27
+ <ADDSCR>60 Stk</ADDSCR>
28
+ <ATC>J05AF05</ATC>
29
+ <COMP>
30
+ <NAME>ViiV Healthcare GmbH</NAME>
31
+ <GLN>7601001392175</GLN>
32
+ </COMP>
33
+ </ITEM>
34
+ <ITEM DT="2013-12-06T00:00:00">
35
+ <GTIN>7680620690084</GTIN>
36
+ <PHAR>5819012</PHAR>
37
+ <STATUS>A</STATUS>
38
+ <STDATE>2013-10-26T00:00:00</STDATE>
39
+ <LANG>DE</LANG>
40
+ <DSCR>LEVETIRACETAM DESITIN Filmtabl 250 mg</DSCR>
41
+ <ADDSCR>30 Stk</ADDSCR>
42
+ <ATC>N03AX14</ATC>
43
+ <COMP>
44
+ <NAME>Desitin Pharma GmbH</NAME>
45
+ <GLN>7601001320451</GLN>
46
+ </COMP>
47
+ </ITEM>
48
+ <ITEM DT="2013-06-22T00:00:00">
49
+ <GTIN>7680555580054</GTIN>
50
+ <PHAR>2465312</PHAR>
51
+ <STATUS>A</STATUS>
52
+ <STDATE>2002-01-16T00:00:00</STDATE>
53
+ <LANG>DE</LANG>
54
+ <DSCR>ZYVOXID Filmtabl 600 mg</DSCR>
55
+ <ADDSCR>10 Stk</ADDSCR>
56
+ <ATC>J01XX08</ATC>
57
+ <COMP>
58
+ <NAME>Pfizer AG</NAME>
59
+ <GLN>7601001010604</GLN>
60
+ </COMP>
61
+ </ITEM>
62
+ <ITEM DT="2013-12-06T00:00:00">
63
+ <GTIN>7680316950157</GTIN>
64
+ <PHAR>598003</PHAR>
65
+ <STATUS>A</STATUS>
66
+ <STDATE>2012-04-13T00:00:00</STDATE>
67
+ <LANG>DE</LANG>
68
+ <DSCR>SOFRADEX Gtt Auric</DSCR>
69
+ <ADDSCR>8 ml</ADDSCR>
70
+ <ATC>S02CA06</ATC>
71
+ <COMP>
72
+ <NAME>Sanofi-Aventis (Suisse) SA</NAME>
73
+ <GLN>7601001002340</GLN>
74
+ </COMP>
75
+ </ITEM>
76
+ <RESULT>
77
+ <OK_ERROR>OK</OK_ERROR>
78
+ <NBR_RECORD>2</NBR_RECORD>
79
+ </RESULT>
80
+ </PHARMA>
81
+ </soap:Body>
82
+ </soap:Envelope>
@@ -0,0 +1,82 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <PHARMA xmlns="http://swissindex.e-mediat.net/SwissindexPharma_out_V101" CREATION_DATETIME="2013-12-10T10:09:26.8198427+01:00">
5
+ <!-- spec/data/swissindex_pharma.xml. Values for spec/builder_spec.rb -->
6
+ CREATION_DATETIME="2012-10-18T06:31:19.4687619+02:00"
7
+ xmlns="http://example.com/test">
8
+ <ITEM DT="2013-06-22T00:00:00">
9
+ <GTIN>733905577161</GTIN>
10
+ <PHAR>5366964</PHAR>
11
+ <STATUS>A</STATUS>
12
+ <STDATE>2012-08-22T00:00:00</STDATE>
13
+ <LANG>FR</LANG>
14
+ <DSCR>1-DAY ACUVUE moist jour -2.00dpt BC 8.5</DSCR>
15
+ <ADDSCR>30 pce</ADDSCR>
16
+ <COMP>
17
+ <NAME>Johnson &amp; Johnson Consumer (Health Care / OTC)</NAME>
18
+ </COMP>
19
+ </ITEM>
20
+ <ITEM DT="2013-06-22T00:00:00">
21
+ <GTIN>7680536620137</GTIN>
22
+ <PHAR>1699947</PHAR>
23
+ <STATUS>A</STATUS>
24
+ <STDATE>1996-03-20T00:00:00</STDATE>
25
+ <LANG>DE</LANG>
26
+ <DSCR>3TC Filmtabl 150 mg</DSCR>
27
+ <ADDSCR>60 Stk</ADDSCR>
28
+ <ATC>J05AF05</ATC>
29
+ <COMP>
30
+ <NAME>ViiV Healthcare GmbH</NAME>
31
+ <GLN>7601001392175</GLN>
32
+ </COMP>
33
+ </ITEM>
34
+ <ITEM DT="2013-12-06T00:00:00">
35
+ <GTIN>7680620690084</GTIN>
36
+ <PHAR>5819012</PHAR>
37
+ <STATUS>A</STATUS>
38
+ <STDATE>2013-10-26T00:00:00</STDATE>
39
+ <LANG>DE</LANG>
40
+ <DSCR>LEVETIRACETAM DESITIN Filmtabl 250 mg</DSCR>
41
+ <ADDSCR>30 Stk</ADDSCR>
42
+ <ATC>N03AX14</ATC>
43
+ <COMP>
44
+ <NAME>Desitin Pharma GmbH</NAME>
45
+ <GLN>7601001320451</GLN>
46
+ </COMP>
47
+ </ITEM>
48
+ <ITEM DT="2013-06-22T00:00:00">
49
+ <GTIN>7680555580054</GTIN>
50
+ <PHAR>2465312</PHAR>
51
+ <STATUS>A</STATUS>
52
+ <STDATE>2002-01-16T00:00:00</STDATE>
53
+ <LANG>DE</LANG>
54
+ <DSCR>ZYVOXID Filmtabl 600 mg</DSCR>
55
+ <ADDSCR>10 Stk</ADDSCR>
56
+ <ATC>J01XX08</ATC>
57
+ <COMP>
58
+ <NAME>Pfizer AG</NAME>
59
+ <GLN>7601001010604</GLN>
60
+ </COMP>
61
+ </ITEM>
62
+ <ITEM DT="2013-12-06T00:00:00">
63
+ <GTIN>7680316950157</GTIN>
64
+ <PHAR>598003</PHAR>
65
+ <STATUS>A</STATUS>
66
+ <STDATE>2012-04-13T00:00:00</STDATE>
67
+ <LANG>DE</LANG>
68
+ <DSCR>SOFRADEX Gtt Auric</DSCR>
69
+ <ADDSCR>8 ml</ADDSCR>
70
+ <ATC>S02CA06</ATC>
71
+ <COMP>
72
+ <NAME>Sanofi-Aventis (Suisse) SA</NAME>
73
+ <GLN>7601001002340</GLN>
74
+ </COMP>
75
+ </ITEM>
76
+ <RESULT>
77
+ <OK_ERROR>OK</OK_ERROR>
78
+ <NBR_RECORD>2</NBR_RECORD>
79
+ </RESULT>
80
+ </PHARMA>
81
+ </soap:Body>
82
+ </soap:Envelope>
@@ -71,34 +71,33 @@ module ServerMockHelper
71
71
  :headers => {'Content-Type' => 'application/zip; charset=utf-8'},
72
72
  :body => stub_response)
73
73
  end
74
- def setup_swiss_index_server_mock(types = ['Pharma', 'NonPharma'])
74
+ def setup_swiss_index_server_mock(types =['NonPharma', 'Pharma'], languages=['DE', 'FR'])
75
75
  types.each do |type|
76
- # wsdl
77
- stub_wsdl_url = "https://index.ws.e-mediat.net/Swissindex/#{type}/ws_#{type}_V101.asmx?WSDL"
78
- stub_response = File.read(File.join(Oddb2xml::SpecData, "wsdl_#{type.downcase}.xml"))
79
- stub_request(:get, stub_wsdl_url).
80
- with(:headers => {
81
- 'Accept' => '*/*',
82
- #'Host' => 'ws.e-mediat.net'
83
- }).
84
- to_return(
85
- :status => 200,
86
- :headers => {'Content-Type' => 'text/xml; charset=utf-8'},
87
- :body => stub_response)
88
- # soap (dummy)
89
- stub_soap_url = 'https://example.com/test'
90
- stub_response = File.read(File.join(Oddb2xml::SpecData, "swissindex_#{type.downcase}.xml"))
91
- stub_request(:post, stub_soap_url).
92
- with(:headers => {
93
- 'Accept' => '*/*',
94
- #'Host' => 'example.com'
95
- }).
96
- to_return(
97
- :status => 200,
98
- :headers => {'Content-Type' => 'text/xml; chaprset=utf-8'},
99
- :body => stub_response)
76
+ languages.each do |language|
77
+ # wsdl
78
+ stub_wsdl_url = "https://index.ws.e-mediat.net/Swissindex/#{type}/ws_#{type}_V101.asmx?WSDL"
79
+ first_file = File.join(Oddb2xml::SpecData, "wsdl_#{type.downcase}.xml")
80
+ stub_response_wsdl = File.read(File.join(Oddb2xml::SpecData, "wsdl_#{type.downcase}.xml"))
81
+ stub_request(:get, stub_wsdl_url).
82
+ with(:headers => {
83
+ 'Accept' => '*/*',
84
+ }).
85
+ to_return(
86
+ :status => 200,
87
+ :headers => {'Content-Type' => 'text/xml; charset=utf-8'},
88
+ :body => stub_response_wsdl)
89
+ # soap (dummy)
90
+ stub_soap_url = 'https://example.com/test'
91
+ stub_file = File.join(Oddb2xml::SpecData, "swissindex_#{type}_#{language}.xml")
92
+ stub_response = File.read(stub_file)
93
+ stub_request(:post, "https://example.com/test").
94
+ with(:body => "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n<soap:Body>\n <lang xmlns=\"http://swissindex.e-mediat.net/Swissindex#{type}_out_V101\">#{language}</lang>\n</soap:Body>\n</soap:Envelope>\n",
95
+ :headers => {'Accept'=>'*/*', 'Content-Type'=>'text/xml;charset=UTF-8', 'Soapaction'=>'"http://example.com/DownloadAll"', 'User-Agent'=>'Ruby'}).
96
+ to_return(:status => 200, :body => stub_response, :headers => {})
97
+ end
100
98
  end
101
99
  end
100
+
102
101
  def setup_swissmedic_server_mock
103
102
  host = 'www.swissmedic.ch'
104
103
  {
@@ -54,6 +54,6 @@ unless 'localhost.localdomain'.eql?(Socket.gethostbyname(Socket.gethostname).fir
54
54
  end
55
55
  test_one_call('oddb2xml -t md -c tar.gz')
56
56
  test_one_call('oddb2xml -f xml')
57
- test_one_call('oddb2xml -x address')
58
57
  test_one_call('oddb2xml -f dat')
59
58
  test_one_call('oddb2xml -t md')
59
+ test_one_call('oddb2xml -x address')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oddb2xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.6
4
+ version: 1.8.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-04 00:00:00.000000000 Z
12
+ date: 2014-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubyzip
@@ -275,6 +275,10 @@ files:
275
275
  - spec/data/oddb2xml_files_lppv.txt
276
276
  - spec/data/oddb2xml_files_nonpharma.xls
277
277
  - spec/data/swissindex.xml
278
+ - spec/data/swissindex_NonPharma_DE.xml
279
+ - spec/data/swissindex_NonPharma_FR.xml
280
+ - spec/data/swissindex_Pharma_DE.xml
281
+ - spec/data/swissindex_Pharma_FR.xml
278
282
  - spec/data/swissindex_nonpharma.xml
279
283
  - spec/data/swissindex_pharma.xml
280
284
  - spec/data/swissmedic_fridge.xlsx
@@ -286,7 +290,6 @@ files:
286
290
  - spec/data/swissmedic_orphans.html
287
291
  - spec/data/swissmedic_package.xlsx
288
292
  - spec/data/swissmedic_packages.html
289
- - spec/data/wsdl.xml
290
293
  - spec/data/wsdl_nonpharma.xml
291
294
  - spec/data/wsdl_pharma.xml
292
295
  - spec/data/zurrose_transfer.dat
@@ -349,6 +352,10 @@ test_files:
349
352
  - spec/data/oddb2xml_files_lppv.txt
350
353
  - spec/data/oddb2xml_files_nonpharma.xls
351
354
  - spec/data/swissindex.xml
355
+ - spec/data/swissindex_NonPharma_DE.xml
356
+ - spec/data/swissindex_NonPharma_FR.xml
357
+ - spec/data/swissindex_Pharma_DE.xml
358
+ - spec/data/swissindex_Pharma_FR.xml
352
359
  - spec/data/swissindex_nonpharma.xml
353
360
  - spec/data/swissindex_pharma.xml
354
361
  - spec/data/swissmedic_fridge.xlsx
@@ -360,7 +367,6 @@ test_files:
360
367
  - spec/data/swissmedic_orphans.html
361
368
  - spec/data/swissmedic_package.xlsx
362
369
  - spec/data/swissmedic_packages.html
363
- - spec/data/wsdl.xml
364
370
  - spec/data/wsdl_nonpharma.xml
365
371
  - spec/data/wsdl_pharma.xml
366
372
  - spec/data/zurrose_transfer.dat
@@ -1,55 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <wsdl:definitions
3
- xmlns:s="http://www.w3.org/2001/XMLSchema"
4
- xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
5
- xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
6
- xmlns:tns="http://example.com/test"
7
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
8
- xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
9
- xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
10
- xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
11
- targetNamespace="http://example.com/test"
12
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
13
- <wsdl:types>
14
- <s:schema elementFormDefault="qualified" targetNamespace="http://example.com/test">
15
- </s:schema>
16
- </wsdl:types>
17
- <wsdl:message name="DownloadAllSoapIn">
18
- <wsdl:part name="lang" element="tns:lang" />
19
- </wsdl:message>
20
- <wsdl:message name="DownloadAllSoapOut">
21
- <wsdl:part name="DownloadAllResult" element="tns:PHARMA" />
22
- </wsdl:message>
23
- <wsdl:binding name="ws_Pharma_V101Soap" type="tns:ws_Pharma_V101Soap">
24
- <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
25
- <wsdl:operation name="DownloadAll">
26
- <soap:operation soapAction="http://example.com/DownloadAll" style="document" />
27
- <wsdl:input>
28
- <soap:body use="literal" />
29
- </wsdl:input>
30
- <wsdl:output>
31
- <soap:body use="literal" />
32
- </wsdl:output>
33
- </wsdl:operation>
34
- </wsdl:binding>
35
- <wsdl:binding name="ws_Pharma_V101Soap12" type="tns:ws_Pharma_V101Soap">
36
- <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
37
- <wsdl:operation name="DownloadAll">
38
- <soap12:operation soapAction="http://example.com/DownloadAll" style="document" />
39
- <wsdl:input>
40
- <soap12:body use="literal" />
41
- </wsdl:input>
42
- <wsdl:output>
43
- <soap12:body use="literal" />
44
- </wsdl:output>
45
- </wsdl:operation>
46
- </wsdl:binding>
47
- <wsdl:service name="ws_Pharma_V101">
48
- <wsdl:port name="ws_Pharma_V101Soap" binding="tns:ws_Pharma_V101Soap">
49
- <soap:address location="https://example.com/test" />
50
- </wsdl:port>
51
- <wsdl:port name="ws_Pharma_V101Soap12" binding="tns:ws_Pharma_V101Soap12">
52
- <soap12:address location="https://example.com/test" />
53
- </wsdl:port>
54
- </wsdl:service>
55
- </wsdl:definitions>