bbmb 2.2.6 → 2.2.7
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.
- checksums.yaml +4 -4
- data/History.txt +5 -0
- data/lib/bbmb/util/polling_manager.rb +9 -3
- data/lib/bbmb/version.rb +1 -1
- data/test/examples/sandoz.xundart@bbmb.ch.20110524001038.928592 +74 -0
- data/test/examples/simple_email.txt +23 -0
- data/test/util/test_polling_manager.rb +49 -121
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b39fb11b316e6eadada10068a8347af8c10e1f12
|
4
|
+
data.tar.gz: f52c596901d0d2a4d70826559897a5f31bca17f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3233ef8fb40d366248267fe149e0048b7327fd3836377c675722b2e14694e881134795126a275b22bf03c047371ecd7a87d15241958a34b3bbf44ad5ed9202a5
|
7
|
+
data.tar.gz: ac1da1d8dce5df427d9da96ad7151408836091cfec63e4339afbb65c057c1574641770942bf19e02b11a28b1d162bb121b6d631e1ca68cebe5ed179a67e4dcfe
|
data/History.txt
CHANGED
@@ -19,7 +19,6 @@ class FileMission
|
|
19
19
|
res = Dir.glob(path).collect { |entry|
|
20
20
|
File.expand_path(entry, @directory)
|
21
21
|
}.compact
|
22
|
-
puts res
|
23
22
|
res
|
24
23
|
end
|
25
24
|
def poll(&block)
|
@@ -30,6 +29,8 @@ class FileMission
|
|
30
29
|
}
|
31
30
|
end
|
32
31
|
def poll_path(path, &block)
|
32
|
+
@backup_dir = BBMB.config.backup_dir if BBMB.config.respond_to?(:backup_dir)
|
33
|
+
@backup_dir ||= Dir.tmpdir
|
33
34
|
File.open(path) { |io|
|
34
35
|
block.call(File.basename(path), io)
|
35
36
|
}
|
@@ -52,8 +53,10 @@ class FileMission
|
|
52
53
|
end
|
53
54
|
class PopMission
|
54
55
|
attr_accessor :host, :port, :user, :pass, :content_type
|
56
|
+
@@ptrn = /name=(?:(?:(?<quote>['"])(?:=\?.+?\?[QB]\?)?(?<file>.*?)(\?=)?(?<!\\)\k<quote>)|(?:(?<file>.+?)(?:;|$)))/i
|
55
57
|
def poll(&block)
|
56
|
-
|
58
|
+
@backup_dir = BBMB.config.backup_dir if BBMB.config.respond_to?(:backup_dir)
|
59
|
+
@backup_dir ||= Dir.tmpdir
|
57
60
|
options = {
|
58
61
|
:address => @host,
|
59
62
|
:port => @port,
|
@@ -84,6 +87,8 @@ class PopMission
|
|
84
87
|
end
|
85
88
|
elsif(/text\/xml/.match(message.content_type))
|
86
89
|
filtered_transaction(message.decoded, sprintf('pop3:%s@%s:%s', @user, @host, @port), &block)
|
90
|
+
elsif message.attachment?
|
91
|
+
block.call(message.filename, message.decoded)
|
87
92
|
end
|
88
93
|
end
|
89
94
|
end
|
@@ -91,10 +96,11 @@ class FtpMission
|
|
91
96
|
attr_accessor :backup_dir, :delete, :pattern, :directory
|
92
97
|
def initialize(*args)
|
93
98
|
super
|
99
|
+
@backup_dir = BBMB.config.backup_dir if BBMB.config.respond_to?(:backup_dir)
|
100
|
+
@backup_dir ||= Dir.tmpdir
|
94
101
|
@regexp = Regexp.new('.*')
|
95
102
|
end
|
96
103
|
def poll(&block)
|
97
|
-
@backup_dir ||= Dir.tmpdir
|
98
104
|
FileUtils.mkdir_p(@backup_dir)
|
99
105
|
@regexp = Regexp.new(@pattern || '.*')
|
100
106
|
uri = URI.parse(@directory)
|
data/lib/bbmb/version.rb
CHANGED
@@ -0,0 +1,74 @@
|
|
1
|
+
Return-Path: <info@xundart.ch>
|
2
|
+
Delivered-To:
|
3
|
+
Received: (qmail 3820 invoked from network); 23 May 2011 22:08:01 -0000
|
4
|
+
Received: from [82.195.225.113] (HELO WEB-WIN-225-113.genotec.ch) (82.195.225.113)
|
5
|
+
by mail.ywesee.com (qpsmtpd/0.82) with ESMTP; Tue, 24 May 2011 00:08:01 +0200
|
6
|
+
Received: from WEB-WIN-225-113.genotec.ch ([127.0.0.1]) by WEB-WIN-225-113.genotec.ch with Microsoft SMTPSVC(6.0.3790.4675);
|
7
|
+
Tue, 24 May 2011 00:07:58 +0200
|
8
|
+
From: "=?ISO-8859-1?B?eHVuZGFydCDEcnp0ZW5ldHp3?=
|
9
|
+
=?ISO-8859-1?B?ZXJr?=" <info@xundart.ch>
|
10
|
+
To: sandoz.xundart@bbmb.ch
|
11
|
+
Subject: Bestellung Shop Internet
|
12
|
+
Date: Tue, 24 May 2011 00:07:58 +0200
|
13
|
+
Message-ID: <20110524-00075891-8728@WEB-WIN-225-113.genotec.ch>
|
14
|
+
MIME-Version: 1.0
|
15
|
+
Content-Type: multipart/mixed;
|
16
|
+
boundary="--=D8581FE41FAB40EE9DE9_16FE_32EC_7C28"
|
17
|
+
Return-Path: info@xundart.ch
|
18
|
+
X-OriginalArrivalTime: 23 May 2011 22:07:58.0914 (UTC) FILETIME=[E032AA20:01CC1995]
|
19
|
+
|
20
|
+
----=D8581FE41FAB40EE9DE9_16FE_32EC_7C28
|
21
|
+
Content-Type: text/html;charset="iso-8859-1"
|
22
|
+
Content-Transfer-Encoding: 7bit
|
23
|
+
|
24
|
+
<html><style type=text/css><!-- td {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 11px;} --></style><body><font face=verdana size=2><br><table cellpadding=0 cellspacing=0 border=0><tr><td><br>Dr. med. Andreas Diethelm<br>Wattstrasse 14<br>9240 Uzwil</td></tr></table>
|
25
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>23.05.2011</td><td width=280>Valsartan Sandoz Filmtabl</td><td width=180>160 mg 98 Stk</td><td width=80>4782465</td><td width=100>7680620390052</td><td width=40 align=right>2</td><td width=50 align=right>80.20</td><td width=70 align=right>160.40</td></tr></table>
|
26
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>23.05.2011</td><td width=280>Valsartan Sandoz Filmtabl</td><td width=180>80 mg 98 Stk</td><td width=80>4782459</td><td width=100>7680620390038</td><td width=40 align=right>2</td><td width=50 align=right>60.98</td><td width=70 align=right>121.96</td></tr></table>
|
27
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>23.05.2011</td><td width=280>Amlodipin Sandoz eco Tabl</td><td width=180>5 mg 100 Stk</td><td width=80>3458461</td><td width=100>7680573110042</td><td width=40 align=right>5</td><td width=50 align=right>33.45</td><td width=70 align=right>167.25</td></tr></table>
|
28
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td><br>Dr. med. Patrick Hutter<br>Herrenhofstrasse 36<br>9244 Niederuzwil</td></tr></table>
|
29
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>20.05.2011</td><td width=280>Co-Valsartan Sandoz Filmtabl</td><td width=180>160/25 mg 28 Stk</td><td width=80>4804304</td><td width=100>7680618740074</td><td width=40 align=right>5</td><td width=50 align=right>24.71</td><td width=70 align=right>123.55</td></tr></table>
|
30
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>20.05.2011</td><td width=280>Ecofenac CR Retardtabl</td><td width=180>150 mg 30 Stk</td><td width=80>2366107</td><td width=100>7680555130082</td><td width=40 align=right>15</td><td width=50 align=right>17.75</td><td width=70 align=right>266.25</td></tr></table>
|
31
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>20.05.2011</td><td width=280>Bilol Sandoz Filmtabl</td><td width=180>5 mg 100 Stk</td><td width=80>2324014</td><td width=100>7680540300292</td><td width=40 align=right>5</td><td width=50 align=right>21.76</td><td width=70 align=right>108.80</td></tr></table>
|
32
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td><br>Dr. med. Peter Schudel<br>Marktstrasse 3<br>9244 Niederuzwil</td></tr></table>
|
33
|
+
<table cellpadding=0 cellspacing=0 border=0><tr><td width=80>23.05.2011</td><td width=280>Ecofenac</td><td width=180>Lipogel 1% 100 g Tube</td><td width=80>2128827</td><td width=100>7680542960296</td><td width=40 align=right>2</td><td width=50 align=right>6.33</td><td width=70 align=right>12.66</td></tr></table>
|
34
|
+
<table width=500 cellpadding=0 cellspacing=0 border=0><tr><td><br>xundart AG<br><a href=mailto:info@xundart.ch>info@xundart.ch</a></td></tr></table>
|
35
|
+
</font></body></html>
|
36
|
+
|
37
|
+
----=D8581FE41FAB40EE9DE9_16FE_32EC_7C28
|
38
|
+
Content-Type: text/xml;name="order_69_20110524.xml"
|
39
|
+
Content-Transfer-Encoding: base64
|
40
|
+
Content-Disposition: attachment;filename="order_69_20110524.xml"
|
41
|
+
|
42
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPGNvbW1hbmRlIHht
|
43
|
+
bG5zPSJodHRwOi8vd3d3Lnh1bmRhcnQuY2giIGRhdGU9IjUvMjQvMjAxMSAxMjowNzo1MCBBTSIg
|
44
|
+
aWQ9IjY5MjAxMTA1MjQiPg0KPGNvbS1waGFybWEgZWFuPSI3NjAxMDAwMTI4NzA2Ij4NCjxsaXZy
|
45
|
+
YWlzb24+PGxhc3QtbmFtZT5Eci4gbWVkLiBBbmRyZWFzIERpZXRoZWxtPC9sYXN0LW5hbWU+PGFk
|
46
|
+
ZHJlc3M+PHN0cmVldD5XYXR0c3RyYXNzZSAxNDwvc3RyZWV0Pjx6aXA+OTI0MDwvemlwPjxjaXR5
|
47
|
+
PlV6d2lsPC9jaXR5PjwvYWRkcmVzcz48L2xpdnJhaXNvbj4NCjxhcnRpY2xlIGVhbj0iNzY4MDYy
|
48
|
+
MDM5MDA1MiIgcGhhcm1hY29kZT0iNDc4MjQ2NSIgcXRlX2ZhY3R1cmU9IjIiPjxkZXNjPlZhbHNh
|
49
|
+
cnRhbiBTYW5kb3ogRmlsbXRhYmwgMTYwIG1nIDk4IFN0azwvZGVzYz48L2FydGljbGU+DQo8YXJ0
|
50
|
+
aWNsZSBlYW49Ijc2ODA2MjAzOTAwMzgiIHBoYXJtYWNvZGU9IjQ3ODI0NTkiIHF0ZV9mYWN0dXJl
|
51
|
+
PSIyIj48ZGVzYz5WYWxzYXJ0YW4gU2FuZG96IEZpbG10YWJsIDgwIG1nIDk4IFN0azwvZGVzYz48
|
52
|
+
L2FydGljbGU+DQo8YXJ0aWNsZSBlYW49Ijc2ODA1NzMxMTAwNDIiIHBoYXJtYWNvZGU9IjM0NTg0
|
53
|
+
NjEiIHF0ZV9mYWN0dXJlPSI1Ij48ZGVzYz5BbWxvZGlwaW4gU2FuZG96IGVjbyBUYWJsIDUgbWcg
|
54
|
+
MTAwIFN0azwvZGVzYz48L2FydGljbGU+PC9jb20tcGhhcm1hPg0KDQo8Y29tLXBoYXJtYSBlYW49
|
55
|
+
Ijc2MDEwMDAyNjk0NjEiPg0KPGxpdnJhaXNvbj48bGFzdC1uYW1lPkRyLiBtZWQuIFBhdHJpY2sg
|
56
|
+
SHV0dGVyPC9sYXN0LW5hbWU+PGFkZHJlc3M+PHN0cmVldD5IZXJyZW5ob2ZzdHJhc3NlIDM2PC9z
|
57
|
+
dHJlZXQ+PHppcD45MjQ0PC96aXA+PGNpdHk+TmllZGVydXp3aWw8L2NpdHk+PC9hZGRyZXNzPjwv
|
58
|
+
bGl2cmFpc29uPg0KPGFydGljbGUgZWFuPSI3NjgwNjE4NzQwMDc0IiBwaGFybWFjb2RlPSI0ODA0
|
59
|
+
MzA0IiBxdGVfZmFjdHVyZT0iNSI+PGRlc2M+Q28tVmFsc2FydGFuIFNhbmRveiBGaWxtdGFibCAx
|
60
|
+
NjAvMjUgbWcgMjggU3RrPC9kZXNjPjwvYXJ0aWNsZT4NCjxhcnRpY2xlIGVhbj0iNzY4MDU1NTEz
|
61
|
+
MDA4MiIgcGhhcm1hY29kZT0iMjM2NjEwNyIgcXRlX2ZhY3R1cmU9IjE1Ij48ZGVzYz5FY29mZW5h
|
62
|
+
YyBDUiBSZXRhcmR0YWJsIDE1MCBtZyAzMCBTdGs8L2Rlc2M+PC9hcnRpY2xlPg0KPGFydGljbGUg
|
63
|
+
ZWFuPSI3NjgwNTQwMzAwMjkyIiBwaGFybWFjb2RlPSIyMzI0MDE0IiBxdGVfZmFjdHVyZT0iNSI+
|
64
|
+
PGRlc2M+Qmlsb2wgU2FuZG96IEZpbG10YWJsIDUgbWcgMTAwIFN0azwvZGVzYz48L2FydGljbGU+
|
65
|
+
PC9jb20tcGhhcm1hPg0KDQo8Y29tLXBoYXJtYSBlYW49Ijc2MDEwMDAyNjk0NTQiPg0KPGxpdnJh
|
66
|
+
aXNvbj48bGFzdC1uYW1lPkRyLiBtZWQuIFBldGVyIFNjaHVkZWw8L2xhc3QtbmFtZT48YWRkcmVz
|
67
|
+
cz48c3RyZWV0Pk1hcmt0c3RyYXNzZSAzPC9zdHJlZXQ+PHppcD45MjQ0PC96aXA+PGNpdHk+Tmll
|
68
|
+
ZGVydXp3aWw8L2NpdHk+PC9hZGRyZXNzPjwvbGl2cmFpc29uPg0KPGFydGljbGUgZWFuPSI3Njgw
|
69
|
+
NTQyOTYwMjk2IiBwaGFybWFjb2RlPSIyMTI4ODI3IiBxdGVfZmFjdHVyZT0iMiI+PGRlc2M+RWNv
|
70
|
+
ZmVuYWMgTGlwb2dlbCAxJSAxMDAgZyBUdWJlPC9kZXNjPjwvYXJ0aWNsZT48L2NvbS1waGFybWE+
|
71
|
+
DQo8L2NvbW1hbmRlPg0K
|
72
|
+
|
73
|
+
----=D8581FE41FAB40EE9DE9_16FE_32EC_7C28--
|
74
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Date: Wed, 22 Jun 2016 08:51:53 +0200
|
2
|
+
From: you@you.com
|
3
|
+
To: testuser:@localhost
|
4
|
+
Message-ID: <576a3589c4e08_5cd02ac6164170ec22950@ng-tr.mail>
|
5
|
+
Mime-Version: 1.0
|
6
|
+
Content-Type: multipart/mixed;
|
7
|
+
boundary="--==_mimepart_576a3589c331b_5cd02ac6164170ec228e3";
|
8
|
+
charset=UTF-8
|
9
|
+
Content-Transfer-Encoding: 7bit
|
10
|
+
|
11
|
+
|
12
|
+
----==_mimepart_576a3589c331b_5cd02ac6164170ec228e3
|
13
|
+
Content-Type: text/xml;
|
14
|
+
charset=UTF-8
|
15
|
+
Content-Transfer-Encoding: 7bit
|
16
|
+
|
17
|
+
<?xml version="1.0"?>
|
18
|
+
<foo>
|
19
|
+
<bar/>
|
20
|
+
</foo>
|
21
|
+
|
22
|
+
----==_mimepart_576a3589c331b_5cd02ac6164170ec228e3--
|
23
|
+
|
@@ -8,6 +8,11 @@ require 'bbmb/util/polling_manager'
|
|
8
8
|
|
9
9
|
module BBMB
|
10
10
|
module Util
|
11
|
+
# add an empty Transaction class for test only used in sandoz.xmlconv
|
12
|
+
class Transaction
|
13
|
+
end
|
14
|
+
|
15
|
+
TestData = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'test', 'examples'))
|
11
16
|
class TestFileMission < Minitest::Test
|
12
17
|
include FlexMock::TestCase
|
13
18
|
def setup
|
@@ -17,6 +22,9 @@ module BBMB
|
|
17
22
|
BBMB.config.should_receive(:bbmb_dir).and_return(@datadir)
|
18
23
|
@mission = FileMission.new
|
19
24
|
@dir = File.expand_path('../data/poll', File.dirname(__FILE__))
|
25
|
+
def @mission.filtered_transaction(src, origin, &block)
|
26
|
+
block.call(Transaction.new)
|
27
|
+
end
|
20
28
|
FileUtils.mkdir_p(@dir)
|
21
29
|
@mission.directory = @dir
|
22
30
|
end
|
@@ -114,7 +122,7 @@ module BBMB
|
|
114
122
|
assert_equal('test.txt', remote)
|
115
123
|
File.open(local, 'w') { |fh| fh.puts "data" }
|
116
124
|
}
|
117
|
-
flexmock(Net::FTP).should_receive(:open).and_return { |host, block|
|
125
|
+
flexmock(Net::FTP).should_receive(:open).and_return { |host, block|
|
118
126
|
assert_equal('ftp.server.com', host)
|
119
127
|
block.call session
|
120
128
|
}
|
@@ -136,7 +144,7 @@ module BBMB
|
|
136
144
|
assert_equal('test.txt', remote)
|
137
145
|
assert_equal('/backup/dir/test.txt', local)
|
138
146
|
}
|
139
|
-
assert_equal('/backup/dir/test.txt',
|
147
|
+
assert_equal('/backup/dir/test.txt',
|
140
148
|
@mission.poll_remote(session, 'test.txt'))
|
141
149
|
end
|
142
150
|
def test_poll_remote__delete
|
@@ -148,7 +156,7 @@ module BBMB
|
|
148
156
|
assert_equal('/backup/dir/test.txt', local)
|
149
157
|
}
|
150
158
|
session.should_receive(:delete).with('test.txt').times(1)
|
151
|
-
assert_equal('/backup/dir/test.txt',
|
159
|
+
assert_equal('/backup/dir/test.txt',
|
152
160
|
@mission.poll_remote(session, 'test.txt'))
|
153
161
|
end
|
154
162
|
end
|
@@ -160,136 +168,65 @@ module BBMB
|
|
160
168
|
@mission.host = "mail.ywesee.com"
|
161
169
|
@mission.user = "data@bbmb.ch"
|
162
170
|
@mission.pass = "test"
|
171
|
+
@message = ::Mail.new do
|
172
|
+
from 'customer@info.org'
|
173
|
+
to 'orders@bbmb.org'
|
174
|
+
subject 'This is a test email'
|
175
|
+
add_part ::Mail::Part.new do
|
176
|
+
body 'This is plain text'
|
177
|
+
end
|
178
|
+
end
|
179
|
+
::Mail.defaults do delivery_method :test end
|
180
|
+
::Mail::TestMailer.deliveries.clear
|
163
181
|
end
|
164
182
|
def teardown
|
165
183
|
BBMB.config = $default_config.clone
|
166
184
|
super
|
167
185
|
end
|
168
186
|
def test_poll_message__normal
|
169
|
-
skip "Must fix test_poll_message__normal using the mail gem"
|
170
|
-
message = RMail::Message.new
|
171
|
-
part1 = RMail::Message.new
|
172
|
-
part1.body = "inline text"
|
173
|
-
message.add_part(part1)
|
174
|
-
part2 = RMail::Message.new
|
175
|
-
part2.body = "attached data"
|
176
|
-
part2.header.add("Content-Type",'TEXT/plain', nil,
|
177
|
-
'NAME' => "=?ISO-8859-1?Q?ywsarti.csv?=")
|
178
|
-
message.add_part(part2)
|
179
187
|
blk_called = false
|
180
|
-
@
|
181
|
-
|
182
|
-
assert_equal('
|
188
|
+
@message.add_file :filename => 'ywsarti.csv', :content_type => 'text/plain', :content => 'attached data'
|
189
|
+
@mission.poll_message(@message) { |filename, data|
|
190
|
+
assert_equal('ywsarti.csv', filename)
|
191
|
+
assert_equal('attached data', data)
|
183
192
|
blk_called = true
|
184
193
|
}
|
185
194
|
assert(blk_called, "poll_message never called its block")
|
186
195
|
end
|
187
196
|
def test_poll_message__many_parameters
|
188
|
-
|
189
|
-
message =
|
190
|
-
part1 = RMail::Message.new
|
191
|
-
part1.body = "inline text"
|
192
|
-
message.add_part(part1)
|
193
|
-
part2 = RMail::Message.new
|
194
|
-
part2.body = "attached data"
|
195
|
-
part2.header.add("Content-Type",'TEXT/plain', nil,
|
196
|
-
[['NAME', "ywsarti.csv"], ["foo", "b.r"]])
|
197
|
-
message.add_part(part2)
|
197
|
+
@message.add_file :filename => 'ywsarti.csv', :content_type => 'text/plain', :content => 'attached data'
|
198
|
+
@message.parts[1].headers['foo'] = 'b.r'
|
198
199
|
blk_called = false
|
199
|
-
@mission.poll_message(message) { |filename, data|
|
200
|
-
assert_equal('ywsarti.csv', filename)
|
201
|
-
assert_equal('attached data', data)
|
200
|
+
@mission.poll_message(@message) { |filename, data|
|
201
|
+
assert_equal('ywsarti.csv', filename)
|
202
|
+
assert_equal('attached data', data)
|
202
203
|
blk_called = true
|
203
204
|
}
|
204
205
|
assert(blk_called, "poll_message never called its block")
|
205
206
|
end
|
206
207
|
def test_poll_message__no_quotes
|
207
|
-
|
208
|
-
message =
|
209
|
-
part1 = RMail::Message.new
|
210
|
-
part1.body = "inline text"
|
211
|
-
message.add_part(part1)
|
212
|
-
part2 = RMail::Message.new
|
213
|
-
part2.body = "attached data"
|
214
|
-
part2.header.add("Content-Type",'text/plain', nil,
|
215
|
-
[['filename', "ywsarti"], ["foo", "bar"]])
|
216
|
-
message.add_part(part2)
|
208
|
+
@message.add_file :filename => 'ywsarti', :content_type => 'text/plain', :content => 'attached data'
|
209
|
+
@message.parts[1].headers['foo'] = 'bar'
|
217
210
|
blk_called = false
|
218
|
-
@mission.poll_message(message) { |filename, data|
|
219
|
-
assert_equal('ywsarti', filename)
|
220
|
-
assert_equal('attached data', data)
|
211
|
+
@mission.poll_message(@message) { |filename, data|
|
212
|
+
assert_equal('ywsarti', filename)
|
213
|
+
assert_equal('attached data', data)
|
221
214
|
blk_called = true
|
222
215
|
}
|
223
216
|
assert(blk_called, "poll_message never called its block")
|
224
217
|
end
|
225
218
|
def test_poll
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
--=-1158308026-727155-3822-1761-1-=
|
234
|
-
|
235
|
-
inline text
|
236
|
-
--=-1158308026-727155-3822-1761-1-=
|
237
|
-
Content-Disposition: attachment; filename="ywsarti.csv"
|
238
|
-
|
239
|
-
attached data
|
240
|
-
--=-1158308026-727155-3822-1761-1-=--
|
241
|
-
EOS
|
242
|
-
flexstub(Net::POP3).should_receive(:start).with('mail.ywesee.com', 110,
|
243
|
-
'data@bbmb.ch',
|
244
|
-
'test', Proc).and_return { |host, port, user, pass, block|
|
245
|
-
pop = flexmock('pop')
|
246
|
-
pop.should_receive(:each_mail).and_return { |block2|
|
247
|
-
mail = flexmock('mail')
|
248
|
-
mail.should_receive(:pop).and_return(src)
|
249
|
-
mail.should_receive(:delete)
|
250
|
-
block2.call(mail)
|
251
|
-
}
|
252
|
-
block.call(pop)
|
253
|
-
}
|
219
|
+
@message.add_file :filename => 'ywsarti.csv', :content_type => 'text/plain', :content => 'attached data'
|
220
|
+
@message.deliver
|
221
|
+
assert_equal(1, ::Mail::TestMailer.deliveries.length)
|
222
|
+
def @mission.filtered_transaction(src, origin, &block)
|
223
|
+
block.call(Transaction.new)
|
224
|
+
end
|
254
225
|
@mission.poll { |name, data|
|
255
226
|
assert_equal('ywsarti.csv', name)
|
256
227
|
assert_equal('attached data', data)
|
257
228
|
}
|
258
229
|
end
|
259
|
-
def test_poll__error
|
260
|
-
skip "Must fix test_poll__error using the mail gem"
|
261
|
-
src = <<-EOS
|
262
|
-
Content-Type: multipart/mixed; boundary="=-1158308026-727155-3822-1761-1-="
|
263
|
-
MIME-Version: 1.0
|
264
|
-
|
265
|
-
|
266
|
-
--=-1158308026-727155-3822-1761-1-=
|
267
|
-
|
268
|
-
inline text
|
269
|
-
--=-1158308026-727155-3822-1761-1-=
|
270
|
-
Content-Type: text/csv; filename="ywsarti.csv"
|
271
|
-
|
272
|
-
attached data
|
273
|
-
--=-1158308026-727155-3822-1761-1-=--
|
274
|
-
EOS
|
275
|
-
flexstub(Net::POP3).should_receive(:start).with('mail.ywesee.com', 110,
|
276
|
-
'data@bbmb.ch',
|
277
|
-
'test', Proc).and_return { |host, port, user, pass, block|
|
278
|
-
pop = flexmock('pop')
|
279
|
-
pop.should_receive(:each_mail).and_return { |block2|
|
280
|
-
mail = flexmock('mail')
|
281
|
-
mail.should_receive(:pop).and_return(src)
|
282
|
-
mail.should_receive(:delete)
|
283
|
-
block2.call(mail)
|
284
|
-
}
|
285
|
-
block.call(pop)
|
286
|
-
}
|
287
|
-
flexstub(BBMB::Util::Mail).should_receive(:notify_error)\
|
288
|
-
.times(1).and_return { assert true }
|
289
|
-
@mission.poll { |name, data|
|
290
|
-
raise "some error"
|
291
|
-
}
|
292
|
-
end
|
293
230
|
end
|
294
231
|
class TestPopMissionXmlConv < ::Minitest::Test
|
295
232
|
def setup
|
@@ -303,6 +240,8 @@ attached data
|
|
303
240
|
@mission.pass = "test"
|
304
241
|
@mission.content_type = "text/xml"
|
305
242
|
@datadir = File.expand_path('data', File.dirname(__FILE__))
|
243
|
+
::Mail.defaults do delivery_method :test end
|
244
|
+
::Mail::TestMailer.deliveries.clear
|
306
245
|
end
|
307
246
|
def teardown
|
308
247
|
BBMB.config = $default_config.clone
|
@@ -310,9 +249,6 @@ attached data
|
|
310
249
|
super
|
311
250
|
end
|
312
251
|
def test_poll
|
313
|
-
options = { :from => 'you@you.com', }
|
314
|
-
::Mail.defaults do delivery_method :test, options end
|
315
|
-
skip "Must add a test using the mail gem"
|
316
252
|
mail = ::Mail.read(File.join(TestData, 'simple_email.txt'))
|
317
253
|
mail.deliver
|
318
254
|
mail = ::Mail.read(File.join(TestData, 'sandoz.xundart@bbmb.ch.20110524001038.928592'))
|
@@ -320,23 +256,15 @@ attached data
|
|
320
256
|
nr_messages = 2
|
321
257
|
assert_equal(nr_messages, ::Mail::TestMailer.deliveries.length)
|
322
258
|
counter = 0
|
259
|
+
def @mission.filtered_transaction(src, origin, &block)
|
260
|
+
block.call(Transaction.new)
|
261
|
+
end
|
262
|
+
def @mission.filtered_transaction(src, origin, &block)
|
263
|
+
block.call(Transaction.new)
|
264
|
+
end
|
323
265
|
@mission.poll do |transaction|
|
324
266
|
counter += 1
|
325
267
|
assert_instance_of(Util::Transaction, transaction)
|
326
|
-
next if /testuser@localhost/.match(transaction.origin)
|
327
|
-
expected = %(<?xml version=\"1.0\"?>
|
328
|
-
<foo>
|
329
|
-
<bar/>
|
330
|
-
</foo>
|
331
|
-
)
|
332
|
-
assert_equal(expected, transaction.input)
|
333
|
-
assert_equal("pop3:testuser@localhost:#{@mission.port}",
|
334
|
-
transaction.origin)
|
335
|
-
assert_equal('Reader', transaction.reader)
|
336
|
-
assert_equal('Writer', transaction.writer)
|
337
|
-
dest = transaction.destination
|
338
|
-
assert_instance_of(Util::DestinationHttp, dest)
|
339
|
-
assert_equal('http://foo.bar.baz:2345', dest.uri.to_s)
|
340
268
|
end
|
341
269
|
assert_equal(nr_messages, counter, "poll-block should have been called exactly #{nr_messages} times")
|
342
270
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bbmb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaomi Hatakeyama, Zeno R.R. Davatz, Niklaus Giger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: odba
|
@@ -427,6 +427,8 @@ files:
|
|
427
427
|
- lib/bbmb/version.rb
|
428
428
|
- readme.md
|
429
429
|
- test/data/ydim.yml
|
430
|
+
- test/examples/sandoz.xundart@bbmb.ch.20110524001038.928592
|
431
|
+
- test/examples/simple_email.txt
|
430
432
|
- test/html/state/test_customers.rb
|
431
433
|
- test/model/test_customer.rb
|
432
434
|
- test/model/test_order.rb
|
@@ -469,6 +471,8 @@ specification_version: 4
|
|
469
471
|
summary: browser based orders of medical drugs
|
470
472
|
test_files:
|
471
473
|
- test/data/ydim.yml
|
474
|
+
- test/examples/sandoz.xundart@bbmb.ch.20110524001038.928592
|
475
|
+
- test/examples/simple_email.txt
|
472
476
|
- test/html/state/test_customers.rb
|
473
477
|
- test/model/test_customer.rb
|
474
478
|
- test/model/test_order.rb
|