messagemedia-ruby 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MjM5ZTNkNjA1YzUzMGY2YmQ1ZmUwYWU2NzBlNDE3NDgwYjQxNGZhMg==
5
- data.tar.gz: !binary |-
6
- YjRjNjM1YjgxNjZhN2QwYmIxMjE4NmMyMDRlYzhiZmY1ZGM4MTJjMA==
2
+ SHA1:
3
+ metadata.gz: 935902a5a49ea6a540f5b09d20c6adc75aee1969
4
+ data.tar.gz: 6938c8ba949cc4006a49b4a7eb9b42dfd2494639
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZjI4ZDYyNTQ1YTBhMmVhN2E5MWY1ZTk1OGUzMGIyYWYzMDkwNThjN2UwZDRh
10
- ZDdhNWQ4MjQwZTRkZmI5N2YwZWQ0ZDJiOWI1ZTc5OTU0NmI0OWI1ZDI0NmM0
11
- Nzg2ODQyY2ViMTI1ZTIxODQ3OTk4ZjQ4YWQyYjdlNWQ2ZDgyNTE=
12
- data.tar.gz: !binary |-
13
- YTc5NWQ0M2IzNGI0ZTAzODM1M2ZjYzE0MDU0ZWYzZmE1Y2EyMjg2MjEwN2Vh
14
- MjM4YmE4NmU4OTI5OTE3NmYzMmI3NTM4N2FhZDBmY2MzYjI0ZWEzMWRkZjQ2
15
- YTk2NTdmMzI1ODgzYmY2YzgzZWMzYjAyMGU5YjkwNDViMDljY2Q=
6
+ metadata.gz: 4c0ec1f0a52e1f89c60122d03065f12683857ba449541be3ffb0f19ed08ec0e267478c62fe37e41d4fae5dbfd85f17eba1e5972353ca674f2fdc4de07cf860b6
7
+ data.tar.gz: 44975416d2ea2db6c0708292ea1521aa02f316188d75ccbed2f512f6c476346cdcab293118adc30a4ed1a0d2415ad6e675149c5451c60fe4e91addb15221f5d1
@@ -0,0 +1,9 @@
1
+ messagemedia-ruby changelog
2
+ ===========================
3
+
4
+ Version 0.7.0
5
+ -------------
6
+
7
+ Released March 26, 2015
8
+
9
+ - Renamed gem from messagemedia-soap to messagemedia-ruby
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Gem Version](https://badge.fury.io/rb/messagemedia-soap.svg)](http://badge.fury.io/rb/messagemedia-soap)
1
+ [![Gem Version](https://badge.fury.io/rb/messagemedia-ruby.svg)](http://badge.fury.io/rb/messagemedia-ruby)
2
2
  [![Build Status](https://travis-ci.org/messagemedia/messagemedia-ruby.svg)](https://travis-ci.org/messagemedia/messagemedia-ruby)
3
3
 
4
4
  # MessageMedia Ruby SDK
data/Rakefile CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'rake/testtask'
2
2
 
3
- Rake::TestTask.new do |t|
4
- t.libs << 'test'
5
- end
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new
6
6
 
7
7
  desc 'Run tests'
8
- task :default => :test
8
+ task :default => :spec
@@ -1,5 +1,7 @@
1
1
  require 'savon'
2
2
 
3
+ require_relative 'message'
4
+
3
5
  module Messagemedia
4
6
  module SOAP
5
7
 
@@ -1,3 +1,3 @@
1
1
  module Messagemedia
2
- VERSION = '0.7.0'
2
+ VERSION = '0.7.1'
3
3
  end
@@ -21,7 +21,8 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency 'bundler', '~> 1.5'
23
23
  spec.add_dependency 'rake'
24
+ spec.add_dependency 'rspec'
24
25
  spec.add_dependency 'savon', '~> 2.4'
25
- spec.add_dependency 'test-unit'
26
+ spec.add_dependency 'simplecov', '~> 0.9.2'
26
27
 
27
28
  end
@@ -0,0 +1,260 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ require 'savon/mock/spec_helper'
4
+
5
+ describe Messagemedia::SOAP::Client do
6
+ include Savon::SpecHelper
7
+
8
+ before(:all) { savon.mock! }
9
+ after(:all) { savon.unmock! }
10
+
11
+ describe '#send_message' do
12
+ it 'sends a message' do
13
+
14
+ expected_request_body = {
15
+ :'api:authentication' => {
16
+ :'api:userId' => 'username',
17
+ :'api:password' => 'password'
18
+ },
19
+ :'api:requestBody' => {
20
+ :'api:messages' => {
21
+ :@sendMode => 'normal',
22
+ :'api:message' => [
23
+ {
24
+ :'api:content' => 'Test',
25
+ :'api:recipients' => {
26
+ :'api:recipient' => ['0491570156'],
27
+ :attributes! => {
28
+ :'api:recipient' => {
29
+ :uid => [0]
30
+ }
31
+ }
32
+ },
33
+ :@format => 'SMS',
34
+ :@sequenceNumber => 0,
35
+ :'api:deliveryReport' => true,
36
+ :'api:validityPeriod' => 1,
37
+ :'api:origin' => '0491570110'
38
+ }
39
+ ]
40
+ }
41
+ }
42
+ }
43
+
44
+ packaged_response = {
45
+ :code => 200,
46
+ :headers => {},
47
+ :body => Gyoku.xml({
48
+ :'SOAP-ENV:Envelope' => {
49
+ :'@xmlns:SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
50
+ :'@xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
51
+ :'@xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
52
+ :'@xmlns:SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/',
53
+ :'SOAP-ENV:Body' => {
54
+ :send_messages_response => {
55
+ :@xmlns => 'http://xml.m4u.com.au/2009',
56
+ :result => {
57
+ :account_details => {
58
+ :@type => 'daily',
59
+ :@credit_limit => '500',
60
+ :@credit_remaining => '497'
61
+ },
62
+ :@sent => '1',
63
+ :@scheduled => '0',
64
+ :@failed => '0'
65
+ }
66
+ }
67
+ }
68
+ }
69
+ },
70
+ {
71
+ :key_converter => :none
72
+ })
73
+ }
74
+
75
+ savon.expects(:send_messages).with(message: expected_request_body).returns(packaged_response)
76
+
77
+ client = described_class.new('username', 'password')
78
+ result = client.send_message('0491570156', 'Test', 0, '0491570110')
79
+
80
+ expect(result).to_not be_nil
81
+ expect(result[:account_details]).to_not be_nil
82
+ expect(result[:account_details][:@type]).to eq('daily')
83
+ expect(result[:account_details][:@credit_limit]).to eq('500')
84
+ expect(result[:account_details][:@credit_remaining]).to eq('497')
85
+ expect(result[:@sent]).to eq('1')
86
+ expect(result[:@scheduled]).to eq('0')
87
+ expect(result[:@failed]).to eq('0')
88
+
89
+ end
90
+ end
91
+
92
+ describe '#send_messages' do
93
+ it 'sends multiple message' do
94
+ expected_request_body = {
95
+ :'api:authentication' => {
96
+ :'api:userId' => 'username',
97
+ :'api:password' => 'password'
98
+ },
99
+ :'api:requestBody' => {
100
+ :'api:messages' => {
101
+ :@sendMode => 'normal',
102
+ :'api:message' => [
103
+ {
104
+ :'api:content' => 'Test 1',
105
+ :'api:recipients' => {
106
+ :'api:recipient' => ['0491570156'],
107
+ :attributes! => {
108
+ :'api:recipient' => {
109
+ :uid => [0]
110
+ }
111
+ }
112
+ },
113
+ :@format => 'SMS',
114
+ :@sequenceNumber => 0,
115
+ :'api:deliveryReport' => true,
116
+ :'api:validityPeriod' => 1,
117
+ :'api:origin' => '0491570110'
118
+ },
119
+ {
120
+ :'api:content' => 'Test 2',
121
+ :'api:recipients' => {
122
+ :'api:recipient' => ['0491570157'],
123
+ :attributes! => {
124
+ :'api:recipient' => {
125
+ :uid => [1]
126
+ }
127
+ }
128
+ },
129
+ :@format => 'SMS',
130
+ :@sequenceNumber => 0,
131
+ :'api:deliveryReport' => false,
132
+ :'api:validityPeriod' => 2,
133
+ :'api:origin' => '0491570109'
134
+ }
135
+ ]
136
+ }
137
+ }
138
+ }
139
+
140
+ packaged_response = {
141
+ :code => 200,
142
+ :headers => {},
143
+ :body => Gyoku.xml({
144
+ :'SOAP-ENV:Envelope' => {
145
+ :'@xmlns:SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
146
+ :'@xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
147
+ :'@xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
148
+ :'@xmlns:SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/',
149
+ :'SOAP-ENV:Body' => {
150
+ :send_messages_response => {
151
+ :@xmlns => 'http://xml.m4u.com.au/2009',
152
+ :result => {
153
+ :account_details => {
154
+ :@type => 'daily',
155
+ :@credit_limit => '500',
156
+ :@credit_remaining => '497'
157
+ },
158
+ :@sent => '2',
159
+ :@scheduled => '0',
160
+ :@failed => '0'
161
+ }
162
+ }
163
+ }
164
+ }
165
+ },
166
+ {
167
+ :key_converter => :none
168
+ })
169
+ }
170
+
171
+ savon.expects(:send_messages).with(message: expected_request_body).returns(packaged_response)
172
+
173
+ client = described_class.new('username', 'password')
174
+
175
+ message_1 = Messagemedia::SOAP::Message.new
176
+ message_1.content = 'Test 1'
177
+ message_1.add_recipient(0, '0491570156')
178
+ message_1.origin = '0491570110'
179
+
180
+ message_2 = Messagemedia::SOAP::Message.new
181
+ message_2.content = 'Test 2'
182
+ message_2.add_recipient(1, '0491570157')
183
+ message_2.delivery_report = false
184
+ message_2.validity_period = 2
185
+ message_2.origin = '0491570109'
186
+
187
+ result = client.send_messages([message_1, message_2])
188
+
189
+ expect(result).to_not be_nil
190
+ expect(result[:account_details]).to_not be_nil
191
+ expect(result[:account_details][:@type]).to eq('daily')
192
+ expect(result[:account_details][:@credit_limit]).to eq('500')
193
+ expect(result[:account_details][:@credit_remaining]).to eq('497')
194
+ expect(result[:@sent]).to eq('2')
195
+ expect(result[:@scheduled]).to eq('0')
196
+ expect(result[:@failed]).to eq('0')
197
+
198
+ end
199
+ end
200
+
201
+ describe '#get_user_info' do
202
+ it 'returns user info' do
203
+
204
+ expected_request_body = {
205
+ :'api:authentication' => {
206
+ :'api:userId' => 'username',
207
+ :'api:password' => 'password'
208
+ }
209
+ }
210
+
211
+ packaged_response = {
212
+ :code => 200,
213
+ :headers => {},
214
+ :body => Gyoku.xml({
215
+ :'SOAP-ENV:Envelope' => {
216
+ :'@xmlns:SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
217
+ :'@xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
218
+ :'@xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
219
+ :'@xmlns:SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/',
220
+ :'SOAP-ENV:Body' => {
221
+ :check_user_response => {
222
+ :@xmlns => 'http://xml.m4u.com.au/2009',
223
+ :result => {
224
+ :account_details => {
225
+ :@type => 'daily',
226
+ :@credit_limit => '500',
227
+ :@credit_remaining => '497'
228
+ },
229
+ :@sent => '2',
230
+ :@scheduled => '0',
231
+ :@failed => '0'
232
+ }
233
+ }
234
+ }
235
+ }
236
+ },
237
+ {
238
+ :key_converter => :none
239
+ })
240
+ }
241
+
242
+ savon.expects(:check_user).with(message: expected_request_body).returns(packaged_response)
243
+
244
+ client = described_class.new('username', 'password')
245
+
246
+ result = client.get_user_info
247
+
248
+ expect(result).to_not be_nil
249
+ expect(result[:account_details]).to_not be_nil
250
+ expect(result[:account_details][:@type]).to eq('daily')
251
+ expect(result[:account_details][:@credit_limit]).to eq('500')
252
+ expect(result[:account_details][:@credit_remaining]).to eq('497')
253
+ expect(result[:@sent]).to eq('2')
254
+ expect(result[:@scheduled]).to eq('0')
255
+ expect(result[:@failed]).to eq('0')
256
+
257
+ end
258
+ end
259
+
260
+ end
@@ -0,0 +1,46 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe Messagemedia::SOAP::Message do
4
+ let!(:message) { described_class.new }
5
+
6
+ describe '#to_api_hash' do
7
+ context 'multiple recipients' do
8
+ let!(:message_id_1) { 100 }
9
+ let!(:recipient_1) { 123456 }
10
+ let!(:recipient_2) { 456789 }
11
+
12
+ before do
13
+ # First test recipient, with a custom message ID
14
+ message.add_recipient(message_id_1, recipient_1)
15
+ # Second test recipient, no message ID
16
+ message.add_recipient(nil, recipient_2)
17
+ end
18
+
19
+ it 'should produce the correct hash' do
20
+ expected_hash = {
21
+ :'@format' => message.format,
22
+ :'@sequenceNumber' => message.sequence_number,
23
+ :'api:deliveryReport' => message.delivery_report,
24
+ :'api:validityPeriod' => message.validity_period,
25
+ :'api:content' => message.content,
26
+ :'api:recipients' => {
27
+ :'api:recipient' => [
28
+ recipient_1,
29
+ recipient_2
30
+ ],
31
+ :attributes! => {
32
+ :'api:recipient' => {
33
+ :uid => [
34
+ message_id_1,
35
+ nil
36
+ ]
37
+ }
38
+ }
39
+ }
40
+ }
41
+ expect(message.to_api_hash).to eq(expected_hash)
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,5 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ require 'rspec'
5
+ require_relative '../lib/messagemedia-ruby'
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: messagemedia-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tristan Penman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2015-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: savon
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ~>
59
+ - - "~>"
46
60
  - !ruby/object:Gem::Version
47
61
  version: '2.4'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ~>
66
+ - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '2.4'
55
69
  - !ruby/object:Gem::Dependency
56
- name: test-unit
70
+ name: simplecov
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ! '>='
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '0'
75
+ version: 0.9.2
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ! '>='
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '0'
82
+ version: 0.9.2
69
83
  description: Support for Ruby applications to integrate with the MessageMedia SOAP
70
84
  API
71
85
  email:
@@ -75,8 +89,9 @@ executables:
75
89
  extensions: []
76
90
  extra_rdoc_files: []
77
91
  files:
78
- - .gitignore
79
- - .travis.yml
92
+ - ".gitignore"
93
+ - ".travis.yml"
94
+ - CHANGES.md
80
95
  - Gemfile
81
96
  - LICENSE.txt
82
97
  - README.md
@@ -88,7 +103,9 @@ files:
88
103
  - lib/messagemedia/soap/recipient.rb
89
104
  - lib/messagemedia/version.rb
90
105
  - messagemedia-ruby.gemspec
91
- - test/test_message.rb
106
+ - spec/messagemedia/soap/client_spec.rb
107
+ - spec/messagemedia/soap/message_spec.rb
108
+ - spec/spec_helper.rb
92
109
  homepage: http://www.messagemedia.com/
93
110
  licenses:
94
111
  - Apache
@@ -99,12 +116,12 @@ require_paths:
99
116
  - lib
100
117
  required_ruby_version: !ruby/object:Gem::Requirement
101
118
  requirements:
102
- - - ! '>='
119
+ - - ">="
103
120
  - !ruby/object:Gem::Version
104
121
  version: '0'
105
122
  required_rubygems_version: !ruby/object:Gem::Requirement
106
123
  requirements:
107
- - - ! '>='
124
+ - - ">="
108
125
  - !ruby/object:Gem::Version
109
126
  version: '0'
110
127
  requirements: []
@@ -114,4 +131,6 @@ signing_key:
114
131
  specification_version: 4
115
132
  summary: Simple Ruby interface for the MessageMedia SOAP API
116
133
  test_files:
117
- - test/test_message.rb
134
+ - spec/messagemedia/soap/client_spec.rb
135
+ - spec/messagemedia/soap/message_spec.rb
136
+ - spec/spec_helper.rb
@@ -1,46 +0,0 @@
1
- require 'test/unit'
2
-
3
- require_relative '../lib/messagemedia/soap/recipient'
4
- require_relative '../lib/messagemedia/soap/message'
5
-
6
- class TestMessage < Test::Unit::TestCase
7
-
8
- def test_to_api_hash
9
- message = Messagemedia::SOAP::Message.new
10
-
11
- # First test recipient, with a custom message ID
12
- message_id_1 = 100
13
- recipient_1 = 123456
14
- message.add_recipient(message_id_1, recipient_1)
15
-
16
- # Second test recipient, no message ID
17
- recipient_2 = 456789
18
- message.add_recipient(nil, recipient_2)
19
-
20
- expected_hash = {
21
- :'@format' => message.format,
22
- :'@sequenceNumber' => message.sequence_number,
23
- :'api:deliveryReport' => message.delivery_report,
24
- :'api:validityPeriod' => message.validity_period,
25
- :'api:content' => message.content,
26
- :'api:recipients' => {
27
- :'api:recipient' => [
28
- recipient_1,
29
- recipient_2
30
- ],
31
- :attributes! => {
32
- :'api:recipient' => {
33
- :uid => [
34
- message_id_1,
35
- nil
36
- ]
37
- }
38
- }
39
- }
40
- }
41
-
42
- assert_equal(expected_hash, message.to_api_hash)
43
-
44
- end
45
-
46
- end