empp 0.0.3
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/LICENSE.txt +20 -0
- data/README +0 -0
- data/README.rdoc +19 -0
- data/lib/empp.rb +2 -0
- data/lib/empp/constants.rb +28 -0
- data/lib/empp/delivery_state.rb +11 -0
- data/lib/empp/empp.rb +375 -0
- data/lib/empp/empp_base.rb +37 -0
- data/lib/empp/empp_connection.rb +90 -0
- data/lib/empp/empp_logger.rb +45 -0
- data/lib/empp/empp_msg_listener.rb +9 -0
- data/lib/empp/empp_parser.rb +176 -0
- data/lib/empp/empp_result_listener.rb +16 -0
- data/lib/empp/msg_active_test.rb +28 -0
- data/lib/empp/msg_active_test_resp.rb +14 -0
- data/lib/empp/msg_connect.rb +52 -0
- data/lib/empp/msg_connect_resp.rb +22 -0
- data/lib/empp/msg_delivery.rb +21 -0
- data/lib/empp/msg_delivery_resp.rb +35 -0
- data/lib/empp/msg_submit.rb +105 -0
- data/lib/empp/msg_submit_resp.rb +23 -0
- data/lib/empp/tcp_connection.rb +103 -0
- data/lib/empp/utils/bytebuffer.rb +39 -0
- data/lib/empp/utils/hashtable.rb +36 -0
- data/lib/empp/utils/utils.rb +120 -0
- data/test/helper.rb +3 -0
- data/test/test_empp.rb +161 -0
- data/test/test_msg_submit.rb +16 -0
- data/test/test_tcp_connection.rb +29 -0
- data/test/test_utils.rb +49 -0
- metadata +157 -0
data/test/helper.rb
ADDED
data/test/test_empp.rb
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/helper")
|
2
|
+
require 'empp/tcp_connection'
|
3
|
+
require 'empp/empp'
|
4
|
+
require 'empp/constants'
|
5
|
+
require 'empp/empp_result_listener'
|
6
|
+
require 'empp/empp_msg_listener'
|
7
|
+
require 'iconv'
|
8
|
+
|
9
|
+
module Empp
|
10
|
+
|
11
|
+
class TestEmpp < Test::Unit::TestCase
|
12
|
+
|
13
|
+
def setup
|
14
|
+
@host = "211.136.163.68"
|
15
|
+
@port = 9981
|
16
|
+
@service_id= "hpthenry"
|
17
|
+
@account_id = "10657001024157"
|
18
|
+
@password = "1qazxsw231415926"
|
19
|
+
|
20
|
+
Empp.config(
|
21
|
+
:host => @host,
|
22
|
+
:port => @port,
|
23
|
+
:account_id => @account_id,
|
24
|
+
:service_id => @service_id,
|
25
|
+
:password => @password,
|
26
|
+
:logfile => "/tmp/empp_test.log",
|
27
|
+
:loglevel => 0
|
28
|
+
)
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_connect
|
33
|
+
# empp_api = EmppApi.new
|
34
|
+
# listener = MyListener.new
|
35
|
+
# empp_api.connect(@hostname, @port, @accountId, @password, @serviceId, listener)
|
36
|
+
# assert( empp_api.alive?, "Fails to connect ESMP" )
|
37
|
+
#
|
38
|
+
# empp_api.disconnect
|
39
|
+
# empp_api.reconnect
|
40
|
+
# assert( empp_api.alive?, "Fails to reconnect ESMP" )
|
41
|
+
#
|
42
|
+
# empp_api.disconnect
|
43
|
+
# empp_api.connect(@hostname, @port, "wrong", "wrong", @serviceId, listener)
|
44
|
+
#
|
45
|
+
# assert(!empp_api.alive?, "Wrong state of EmppApi connect when connect by wrong info")
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
def test_submit_message
|
51
|
+
# empp_api = EmppApi.new
|
52
|
+
# listener = MyListener.new
|
53
|
+
# empp_api.connect(@hostname, @port, @accountId, @password, @serviceId, listener)
|
54
|
+
#
|
55
|
+
# empp_api.submitMsg(["15021116022", "13691033882"], "just for 测试, no need to reply.")
|
56
|
+
#
|
57
|
+
# sleep 30
|
58
|
+
#
|
59
|
+
# assert( (listener.in_success_list?"15021116022"), "Failed to send message")
|
60
|
+
# assert( (listener.in_failing_list?"13691033882"), "Get unknow state from EmppAPI")
|
61
|
+
# #empp_api.submitMsg("15021116022", "Rongping short message test:请用中文回复,谢谢!")
|
62
|
+
# # empp_api.submitMsg("13691033882", "Rongping short message testing:中文字符, can you see")
|
63
|
+
|
64
|
+
res_listener = MyResultListener.new
|
65
|
+
|
66
|
+
msg_listener1 = MyMsgListener.new
|
67
|
+
msg_listener2 = MyMsgListener.new
|
68
|
+
|
69
|
+
Empp.register_msg_listener(msg_listener1)
|
70
|
+
Empp.register_msg_listener(msg_listener2)
|
71
|
+
|
72
|
+
# Empp.send_msg("18621976620", "from email", res_listener)
|
73
|
+
Empp.send_msg(["18621976620"], "00000000001234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我", res_listener)
|
74
|
+
|
75
|
+
# Empp.send_msg(["15021116022"], "1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我", res_listener)
|
76
|
+
|
77
|
+
sleep 30 * 60
|
78
|
+
|
79
|
+
assert(res_listener.in_success_list?"18621976620")
|
80
|
+
assert(res_listener.in_failing_list?"13691033882")
|
81
|
+
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
class MyMsgListener < EmppMsgListener
|
90
|
+
|
91
|
+
def on_message(terminal_id, msg_content)
|
92
|
+
puts "#{terminal_id} = #{msg_content} self=#{self}"
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
class MyResultListener < EmppResultListener
|
100
|
+
|
101
|
+
def initialize
|
102
|
+
@success_list = []
|
103
|
+
@failing_list = []
|
104
|
+
end
|
105
|
+
|
106
|
+
def in_success_list?(terminal_id)
|
107
|
+
@success_list.include? terminal_id
|
108
|
+
end
|
109
|
+
|
110
|
+
def in_failing_list?(terminal_id)
|
111
|
+
@failing_list.include? terminal_id
|
112
|
+
end
|
113
|
+
|
114
|
+
def on_result(terminal_id, status)
|
115
|
+
puts "#{terminal_id} = #{status}"
|
116
|
+
if status
|
117
|
+
@success_list << terminal_id
|
118
|
+
else
|
119
|
+
@failing_list << terminal_id
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
# class MyListener < EmppListener
|
129
|
+
#
|
130
|
+
# def initialize
|
131
|
+
# @success_list = []
|
132
|
+
# @failing_list = []
|
133
|
+
# end
|
134
|
+
#
|
135
|
+
# def in_success_list?(terminal_id)
|
136
|
+
# @success_list.include?terminal_id
|
137
|
+
# end
|
138
|
+
#
|
139
|
+
# def in_failing_list?(terminal_id)
|
140
|
+
# @failing_list.include?terminal_id
|
141
|
+
# end
|
142
|
+
#
|
143
|
+
# def onResponse(code, status = nil, terminalId = nil)
|
144
|
+
# puts "responsing arrives code=#{code} status=#{status} terminalId=#{terminalId}"
|
145
|
+
# if code == Constants::EMPP_DELIVER && status == Constants::EMPP_DELIVER_SUCCESS
|
146
|
+
# @success_list << terminalId
|
147
|
+
# puts "short message send to #{terminalId} successfully"
|
148
|
+
# elsif code == Constants::EMPP_DELIVER && status == Constants::EMPP_DELIVER_FAIL
|
149
|
+
# puts "short message send to #{terminalId} fails"
|
150
|
+
# @failing_list << terminalId
|
151
|
+
# end
|
152
|
+
#
|
153
|
+
# end
|
154
|
+
#
|
155
|
+
# def onMessage(terminalId, message)
|
156
|
+
# puts "Message arrives"
|
157
|
+
# puts "#{terminalId} = #{message}"
|
158
|
+
# end
|
159
|
+
# end
|
160
|
+
#
|
161
|
+
# end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/helper")
|
2
|
+
require 'empp/msg_submit'
|
3
|
+
|
4
|
+
module Empp
|
5
|
+
|
6
|
+
class TestMsgSubmit < Test::Unit::TestCase
|
7
|
+
def test_package
|
8
|
+
msg = MsgSubmit.new("13691033882", "hello我们", "999999", "88888888")
|
9
|
+
bytes = msg.package
|
10
|
+
puts msg.total_length
|
11
|
+
puts bytes.length
|
12
|
+
assert(bytes.length == msg.total_length)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/helper")
|
2
|
+
require 'empp/tcp_connection'
|
3
|
+
|
4
|
+
module Empp
|
5
|
+
|
6
|
+
class TestTCPConnection < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@host = "211.136.163.68"
|
9
|
+
@port = 9981
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_tcpip_connect
|
13
|
+
connection = nil
|
14
|
+
begin
|
15
|
+
connection = TcpConnection.getConnection(@host, @port)
|
16
|
+
connection.connect
|
17
|
+
rescue
|
18
|
+
end
|
19
|
+
assert(connection != nil && connection.alive?, "测试TCP/IP连接失败")
|
20
|
+
|
21
|
+
if connection
|
22
|
+
connection.close
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/test/test_utils.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/helper")
|
2
|
+
require 'empp/utils/utils'
|
3
|
+
|
4
|
+
module Empp
|
5
|
+
class TestUtils < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_utf8_to_gbk
|
8
|
+
utf8str = "hello中国"
|
9
|
+
puts utf8str[-1]
|
10
|
+
gbkstr = Utils::Utils.convert_utf8_to_gbk(utf8str)
|
11
|
+
puts gbkstr
|
12
|
+
puts gbkstr.length
|
13
|
+
assert(gbkstr.length == 9)
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
def test_utf8_to_utf16
|
18
|
+
utf8str = "hello中国"
|
19
|
+
gbkstr = Utils::Utils.convert_utf8_to_gbk(utf8str)
|
20
|
+
puts gbkstr.length
|
21
|
+
assert(gbkstr.length == 9)
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def test_get_splitted_msgs
|
26
|
+
utf8str = "1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我1234567890我我我我我"
|
27
|
+
gbkstr = Utils::Utils.convert_utf8_to_gbk(utf8str)
|
28
|
+
puts gbkstr
|
29
|
+
puts gbkstr.length
|
30
|
+
msgs = Utils::Utils.get_splitted_msgs(gbkstr)
|
31
|
+
puts msgs[0]
|
32
|
+
puts msgs[1]
|
33
|
+
assert(msgs[0].length == 69)
|
34
|
+
assert(msgs[1].length == 31)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_deal_with_terminal_id
|
38
|
+
str = "13691033882"
|
39
|
+
str86 = "8613691033882"
|
40
|
+
strp86 = "+8613691033882"
|
41
|
+
|
42
|
+
assert(Utils::Utils.deal_with_terminal_id(str) == str)
|
43
|
+
assert(Utils::Utils.deal_with_terminal_id(str86) == str)
|
44
|
+
assert(Utils::Utils.deal_with_terminal_id(strp86) == str)
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
metadata
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: empp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- lijianjun
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-01-21 00:00:00 +08:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
type: :development
|
22
|
+
name: shoulda
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
requirement: *id001
|
31
|
+
prerelease: false
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
type: :development
|
34
|
+
name: bundler
|
35
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ~>
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 1
|
41
|
+
- 0
|
42
|
+
- 0
|
43
|
+
version: 1.0.0
|
44
|
+
requirement: *id002
|
45
|
+
prerelease: false
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
type: :development
|
48
|
+
name: jeweler
|
49
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 1
|
55
|
+
- 5
|
56
|
+
- 2
|
57
|
+
version: 1.5.2
|
58
|
+
requirement: *id003
|
59
|
+
prerelease: false
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
type: :development
|
62
|
+
name: rcov
|
63
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
69
|
+
version: "0"
|
70
|
+
requirement: *id004
|
71
|
+
prerelease: false
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
type: :runtime
|
74
|
+
name: bindata
|
75
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
segments:
|
80
|
+
- 1
|
81
|
+
- 2
|
82
|
+
- 1
|
83
|
+
version: 1.2.1
|
84
|
+
requirement: *id005
|
85
|
+
prerelease: false
|
86
|
+
description: API for sending or receiving sms
|
87
|
+
email: jjli418@gmail.com
|
88
|
+
executables: []
|
89
|
+
|
90
|
+
extensions: []
|
91
|
+
|
92
|
+
extra_rdoc_files:
|
93
|
+
- LICENSE.txt
|
94
|
+
- README
|
95
|
+
- README.rdoc
|
96
|
+
files:
|
97
|
+
- lib/empp.rb
|
98
|
+
- lib/empp/constants.rb
|
99
|
+
- lib/empp/delivery_state.rb
|
100
|
+
- lib/empp/empp.rb
|
101
|
+
- lib/empp/empp_base.rb
|
102
|
+
- lib/empp/empp_connection.rb
|
103
|
+
- lib/empp/empp_logger.rb
|
104
|
+
- lib/empp/empp_msg_listener.rb
|
105
|
+
- lib/empp/empp_parser.rb
|
106
|
+
- lib/empp/empp_result_listener.rb
|
107
|
+
- lib/empp/msg_active_test.rb
|
108
|
+
- lib/empp/msg_active_test_resp.rb
|
109
|
+
- lib/empp/msg_connect.rb
|
110
|
+
- lib/empp/msg_connect_resp.rb
|
111
|
+
- lib/empp/msg_delivery.rb
|
112
|
+
- lib/empp/msg_delivery_resp.rb
|
113
|
+
- lib/empp/msg_submit.rb
|
114
|
+
- lib/empp/msg_submit_resp.rb
|
115
|
+
- lib/empp/tcp_connection.rb
|
116
|
+
- lib/empp/utils/bytebuffer.rb
|
117
|
+
- lib/empp/utils/hashtable.rb
|
118
|
+
- lib/empp/utils/utils.rb
|
119
|
+
- LICENSE.txt
|
120
|
+
- README
|
121
|
+
- README.rdoc
|
122
|
+
has_rdoc: true
|
123
|
+
homepage: http://github.com/temptest/empp
|
124
|
+
licenses:
|
125
|
+
- MIT
|
126
|
+
post_install_message:
|
127
|
+
rdoc_options: []
|
128
|
+
|
129
|
+
require_paths:
|
130
|
+
- lib
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
segments:
|
136
|
+
- 0
|
137
|
+
version: "0"
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
segments:
|
143
|
+
- 0
|
144
|
+
version: "0"
|
145
|
+
requirements: []
|
146
|
+
|
147
|
+
rubyforge_project:
|
148
|
+
rubygems_version: 1.3.6
|
149
|
+
signing_key:
|
150
|
+
specification_version: 3
|
151
|
+
summary: API for sending or receiving sms
|
152
|
+
test_files:
|
153
|
+
- test/helper.rb
|
154
|
+
- test/test_empp.rb
|
155
|
+
- test/test_msg_submit.rb
|
156
|
+
- test/test_tcp_connection.rb
|
157
|
+
- test/test_utils.rb
|