mollie-sms 0.1.0 → 0.2.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/Rakefile +24 -0
- data/VERSION +1 -0
- data/lib/mollie/sms.rb +27 -1
- data/lib/mollie/sms/test_helper.rb +76 -0
- data/mollie-sms.gemspec +57 -0
- data/spec/functional_sms_deliver_spec.rb +71 -0
- data/spec/sms_spec.rb +24 -38
- data/spec/spec_helper.rb +5 -51
- data/spec/test_helper_spec.rb +81 -0
- metadata +12 -4
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
desc "Run the specs"
|
2
|
+
task :spec do
|
3
|
+
sh "ruby ./spec/sms_spec.rb"
|
4
|
+
sh "ruby ./spec/test_helper_spec.rb"
|
5
|
+
sh "ruby ./spec/functional_sms_deliver_spec.rb"
|
6
|
+
end
|
7
|
+
|
8
|
+
task :default => :spec
|
9
|
+
|
10
|
+
begin
|
11
|
+
require 'rubygems'
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |s|
|
14
|
+
s.name = "mollie-sms"
|
15
|
+
s.homepage = "http://github.com/Fingertips/Mollie-SMS"
|
16
|
+
s.email = ["eloy@fngtps.com"]
|
17
|
+
s.authors = ["Eloy Duran"]
|
18
|
+
s.summary = s.description = "Send SMS text messages via the Mollie.nl SMS gateway."
|
19
|
+
s.files -= %w{ .gitignore TODO }
|
20
|
+
s.extra_rdoc_files -= %w{ TODO }
|
21
|
+
s.add_dependency('activesupport', '>= 2.3.8')
|
22
|
+
end
|
23
|
+
rescue LoadError
|
24
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.0
|
data/lib/mollie/sms.rb
CHANGED
@@ -23,6 +23,18 @@ module Mollie
|
|
23
23
|
class ValidationError < StandardError; end
|
24
24
|
class MissingRequiredParam < StandardError; end
|
25
25
|
|
26
|
+
class DeliveryFailure < StandardError
|
27
|
+
attr_reader :sms, :response
|
28
|
+
|
29
|
+
def initialize(sms, response)
|
30
|
+
@sms, @response = sms, response
|
31
|
+
end
|
32
|
+
|
33
|
+
def message
|
34
|
+
"(#{@response.message}) #{@sms.to_s}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
26
38
|
REQUIRED_PARAMS = %w{ username md5_password originator gateway charset type recipients message }
|
27
39
|
|
28
40
|
class << self
|
@@ -72,8 +84,16 @@ module Mollie
|
|
72
84
|
@params['message'] = body
|
73
85
|
end
|
74
86
|
|
87
|
+
def ==(other)
|
88
|
+
other.is_a?(SMS) && other.params == params
|
89
|
+
end
|
90
|
+
|
91
|
+
def to_s
|
92
|
+
%{from: <#{params['originator']}> to: <#{telephone_number}> body: "#{body}"}
|
93
|
+
end
|
94
|
+
|
75
95
|
def inspect
|
76
|
-
|
96
|
+
%{#<#{self.class.name} #{to_s}>}
|
77
97
|
end
|
78
98
|
|
79
99
|
def deliver
|
@@ -89,6 +109,12 @@ module Mollie
|
|
89
109
|
end
|
90
110
|
end
|
91
111
|
|
112
|
+
def deliver!
|
113
|
+
response = deliver
|
114
|
+
raise DeliveryFailure.new(self, response) unless response.success?
|
115
|
+
response
|
116
|
+
end
|
117
|
+
|
92
118
|
def validate_params!
|
93
119
|
params.slice(*REQUIRED_PARAMS).each do |key, value|
|
94
120
|
raise MissingRequiredParam, "The required parameter `#{key}' is missing." if value.blank?
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module Mollie
|
2
|
+
class SMS
|
3
|
+
def self.deliveries
|
4
|
+
@deliveries ||= []
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.reset!
|
8
|
+
@deliveries = []
|
9
|
+
success!
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.success!
|
13
|
+
http_response = Net::HTTPOK.new('1.1', '200', 'OK')
|
14
|
+
http_response.add_field('Content-type', 'application/xml')
|
15
|
+
def http_response.read_body; TestHelper::SUCCESS_BODY; end
|
16
|
+
@stubbed_response = Mollie::SMS::Response.new(http_response)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.gateway_failure!
|
20
|
+
http_response = Net::HTTPOK.new('1.1', '200', 'OK')
|
21
|
+
http_response.add_field('Content-type', 'application/xml')
|
22
|
+
def http_response.read_body; TestHelper::FAILURE_BODY; end
|
23
|
+
@stubbed_response = Mollie::SMS::Response.new(http_response)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.http_failure!
|
27
|
+
@stubbed_response = Mollie::SMS::Response.new(Net::HTTPBadRequest.new('1.1', '400', 'Bad request'))
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.stubbed_response
|
31
|
+
@stubbed_response || success!
|
32
|
+
end
|
33
|
+
|
34
|
+
def deliver
|
35
|
+
validate_params!
|
36
|
+
self.class.deliveries << self
|
37
|
+
self.class.stubbed_response
|
38
|
+
end
|
39
|
+
|
40
|
+
module TestHelper
|
41
|
+
SUCCESS_BODY = %{
|
42
|
+
<?xml version="1.0" ?>
|
43
|
+
<response>
|
44
|
+
<item type="sms">
|
45
|
+
<recipients>1</recipients>
|
46
|
+
<success>true</success>
|
47
|
+
<resultcode>10</resultcode>
|
48
|
+
<resultmessage>Message successfully sent.</resultmessage>
|
49
|
+
</item>
|
50
|
+
</response>}
|
51
|
+
|
52
|
+
FAILURE_BODY = %{
|
53
|
+
<?xml version="1.0"?>
|
54
|
+
<response>
|
55
|
+
<item type="sms">
|
56
|
+
<recipients>1</recipients>
|
57
|
+
<success>false</success>
|
58
|
+
<resultcode>20</resultcode>
|
59
|
+
<resultmessage>No username given.</resultmessage>
|
60
|
+
</item>
|
61
|
+
</response>}
|
62
|
+
|
63
|
+
def assert_sms_messages(number_of_messages)
|
64
|
+
before = Mollie::SMS.deliveries.length
|
65
|
+
yield
|
66
|
+
diff = Mollie::SMS.deliveries.length - before
|
67
|
+
assert(diff == number_of_messages, "expected `#{number_of_messages}' SMS messages to be sent, actually sent `#{diff}'")
|
68
|
+
end
|
69
|
+
|
70
|
+
def assert_no_sms_messages
|
71
|
+
assert_sms_messages(0) { yield }
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
data/mollie-sms.gemspec
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{mollie-sms}
|
8
|
+
s.version = "0.2.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Eloy Duran"]
|
12
|
+
s.date = %q{2010-08-03}
|
13
|
+
s.description = %q{Send SMS text messages via the Mollie.nl SMS gateway.}
|
14
|
+
s.email = ["eloy@fngtps.com"]
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"LICENSE",
|
21
|
+
"README",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION",
|
24
|
+
"lib/mollie/sms.rb",
|
25
|
+
"lib/mollie/sms/test_helper.rb",
|
26
|
+
"mollie-sms.gemspec",
|
27
|
+
"spec/functional_sms_deliver_spec.rb",
|
28
|
+
"spec/sms_spec.rb",
|
29
|
+
"spec/spec_helper.rb",
|
30
|
+
"spec/test_helper_spec.rb"
|
31
|
+
]
|
32
|
+
s.homepage = %q{http://github.com/Fingertips/Mollie-SMS}
|
33
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
34
|
+
s.require_paths = ["lib"]
|
35
|
+
s.rubygems_version = %q{1.3.7}
|
36
|
+
s.summary = %q{Send SMS text messages via the Mollie.nl SMS gateway.}
|
37
|
+
s.test_files = [
|
38
|
+
"spec/functional_sms_deliver_spec.rb",
|
39
|
+
"spec/sms_spec.rb",
|
40
|
+
"spec/spec_helper.rb",
|
41
|
+
"spec/test_helper_spec.rb"
|
42
|
+
]
|
43
|
+
|
44
|
+
if s.respond_to? :specification_version then
|
45
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
46
|
+
s.specification_version = 3
|
47
|
+
|
48
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.8"])
|
50
|
+
else
|
51
|
+
s.add_dependency(%q<activesupport>, [">= 2.3.8"])
|
52
|
+
end
|
53
|
+
else
|
54
|
+
s.add_dependency(%q<activesupport>, [">= 2.3.8"])
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require File.expand_path("../spec_helper", __FILE__)
|
2
|
+
|
3
|
+
module Net
|
4
|
+
class HTTP
|
5
|
+
class << self
|
6
|
+
attr_accessor :posted, :stubbed_response
|
7
|
+
|
8
|
+
def reset!
|
9
|
+
@posted = nil
|
10
|
+
@stubbed_response = nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def host
|
15
|
+
@address
|
16
|
+
end
|
17
|
+
|
18
|
+
def start
|
19
|
+
yield self
|
20
|
+
end
|
21
|
+
|
22
|
+
def request(request)
|
23
|
+
self.class.posted = [self, request]
|
24
|
+
self.class.stubbed_response
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
SUCCESS_BODY = %{
|
30
|
+
<?xml version="1.0" ?>
|
31
|
+
<response>
|
32
|
+
<item type="sms">
|
33
|
+
<recipients>1</recipients>
|
34
|
+
<success>true</success>
|
35
|
+
<resultcode>10</resultcode>
|
36
|
+
<resultmessage>Message successfully sent.</resultmessage>
|
37
|
+
</item>
|
38
|
+
</response>}
|
39
|
+
|
40
|
+
describe "When sending a Mollie::SMS message" do
|
41
|
+
before do
|
42
|
+
@sms = Mollie::SMS.new
|
43
|
+
@sms.telephone_number = '+31612345678'
|
44
|
+
@sms.body = "The stars tell me you will have chicken noodle soup for breakfast."
|
45
|
+
end
|
46
|
+
|
47
|
+
after do
|
48
|
+
Net::HTTP.reset!
|
49
|
+
end
|
50
|
+
|
51
|
+
it "posts the post body to the gateway" do
|
52
|
+
@sms.stubs(:params).returns('a key' => 'a value')
|
53
|
+
@sms.stubs(:validate_params!)
|
54
|
+
@sms.deliver
|
55
|
+
|
56
|
+
request, post = Net::HTTP.posted
|
57
|
+
request.should.use_ssl
|
58
|
+
request.host.should == Mollie::SMS::GATEWAY_URI.host
|
59
|
+
request.port.should == Mollie::SMS::GATEWAY_URI.port
|
60
|
+
post.path.should == Mollie::SMS::GATEWAY_URI.path
|
61
|
+
post.body.should == "a%20key=a%20value"
|
62
|
+
end
|
63
|
+
|
64
|
+
it "returns a Mollie::SMS::Response object, with the Net::HTTP response" do
|
65
|
+
Net::HTTP.stubbed_response = Net::HTTPOK.new('1.1', '200', 'OK')
|
66
|
+
Net::HTTP.stubbed_response.stubs(:read_body).returns(SUCCESS_BODY)
|
67
|
+
response = @sms.deliver!
|
68
|
+
response.should.be.instance_of Mollie::SMS::Response
|
69
|
+
response.http_response.should == Net::HTTP.stubbed_response
|
70
|
+
end
|
71
|
+
end
|
data/spec/sms_spec.rb
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
require File.expand_path("../spec_helper", __FILE__)
|
2
|
-
require "mollie/sms"
|
3
|
-
|
4
|
-
Mollie::SMS.username = 'AstroRadio'
|
5
|
-
Mollie::SMS.password = 'secret'
|
6
|
-
Mollie::SMS.originator = 'Astro INC'
|
2
|
+
require "mollie/sms/test_helper"
|
7
3
|
|
8
4
|
describe "Mollie::SMS" do
|
9
5
|
it "holds the gateway uri" do
|
@@ -89,6 +85,16 @@ describe "A Mollie::SMS instance" do
|
|
89
85
|
)
|
90
86
|
@sms.params.should == params
|
91
87
|
end
|
88
|
+
|
89
|
+
it "checks equality by comparing the params" do
|
90
|
+
@sms.should == Mollie::SMS.new('+31612345678', "The stars tell me you will have chicken noodle soup for breakfast.")
|
91
|
+
@sms.should.not == Mollie::SMS.new('+31612345678', "Different message")
|
92
|
+
@sms.should.not == Mollie::SMS.new('+31612345678', "The stars tell me you will have chicken noodle soup for breakfast.", 'originator' => 'Some being')
|
93
|
+
end
|
94
|
+
|
95
|
+
it "returns a string representation of itself" do
|
96
|
+
@sms.to_s.should == 'from: <Astro INC> to: <+31612345678> body: "The stars tell me you will have chicken noodle soup for breakfast."'
|
97
|
+
end
|
92
98
|
end
|
93
99
|
|
94
100
|
describe "When sending a Mollie::SMS message" do
|
@@ -98,46 +104,30 @@ describe "When sending a Mollie::SMS message" do
|
|
98
104
|
@sms.body = "The stars tell me you will have chicken noodle soup for breakfast."
|
99
105
|
end
|
100
106
|
|
101
|
-
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
it "posts the post body to the gateway" do
|
106
|
-
@sms.stubs(:params).returns('a key' => 'a value')
|
107
|
-
@sms.stubs(:validate_params!)
|
108
|
-
@sms.deliver
|
107
|
+
it "raises a Mollie::SMS::DeliveryFailure exception when sending, through the #deliver! method, fails" do
|
108
|
+
Mollie::SMS.gateway_failure!
|
109
109
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
post.body.should == "a%20key=a%20value"
|
116
|
-
end
|
110
|
+
exception = nil
|
111
|
+
begin
|
112
|
+
@sms.deliver!
|
113
|
+
rescue Mollie::SMS::DeliveryFailure => exception
|
114
|
+
end
|
117
115
|
|
118
|
-
|
119
|
-
Net::HTTP.stubbed_response = Net::HTTPOK.new('1.1', '200', 'OK')
|
120
|
-
Net::HTTP.stubbed_response.stubs(:read_body).returns(SUCCESS_BODY)
|
121
|
-
response = @sms.deliver
|
122
|
-
response.should.be.instance_of Mollie::SMS::Response
|
123
|
-
response.http_response.should == Net::HTTP.stubbed_response
|
116
|
+
exception.message.should == "(No username given.) #{@sms.to_s}"
|
124
117
|
end
|
125
118
|
end
|
126
119
|
|
127
120
|
describe "A Mollie::SMS::Response instance, for a succeeded request" do
|
128
121
|
before do
|
129
|
-
@
|
130
|
-
@http_response.stubs(:read_body).returns(SUCCESS_BODY)
|
131
|
-
@http_response.add_field('Content-type', 'application/xml')
|
132
|
-
@response = Mollie::SMS::Response.new(@http_response)
|
122
|
+
@response = Mollie::SMS.success!
|
133
123
|
end
|
134
124
|
|
135
125
|
it "returns the Net::HTTP response object" do
|
136
|
-
@response.http_response.should
|
126
|
+
@response.http_response.should.is_a?(Net::HTTPSuccess)
|
137
127
|
end
|
138
128
|
|
139
129
|
it "returns the response body as a hash" do
|
140
|
-
@response.params.should == Hash.from_xml(SUCCESS_BODY)['response']['item']
|
130
|
+
@response.params.should == Hash.from_xml(Mollie::SMS::TestHelper::SUCCESS_BODY)['response']['item']
|
141
131
|
end
|
142
132
|
|
143
133
|
it "returns whether or not it was a success" do
|
@@ -158,10 +148,7 @@ end
|
|
158
148
|
|
159
149
|
describe "A Mollie::SMS::Response instance, for a request that failed at the gateway" do
|
160
150
|
before do
|
161
|
-
@
|
162
|
-
@http_response.stubs(:read_body).returns(FAILURE_BODY)
|
163
|
-
@http_response.add_field('Content-type', 'application/xml')
|
164
|
-
@response = Mollie::SMS::Response.new(@http_response)
|
151
|
+
@response = Mollie::SMS.gateway_failure!
|
165
152
|
end
|
166
153
|
|
167
154
|
it "returns that the request was not a success" do
|
@@ -183,8 +170,7 @@ end
|
|
183
170
|
|
184
171
|
describe "A Mollie::SMS::Response instance, for a failed HTTP request" do
|
185
172
|
before do
|
186
|
-
@
|
187
|
-
@response = Mollie::SMS::Response.new(@http_response)
|
173
|
+
@response = Mollie::SMS.http_failure!
|
188
174
|
end
|
189
175
|
|
190
176
|
it "returns an empty hash as the params" do
|
data/spec/spec_helper.rb
CHANGED
@@ -2,57 +2,11 @@ require "rubygems"
|
|
2
2
|
require "bacon"
|
3
3
|
require "mocha"
|
4
4
|
|
5
|
-
$:.unshift File.expand_path("../../lib", __FILE__)
|
6
|
-
|
7
5
|
Bacon.summary_on_exit
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
class << self
|
12
|
-
attr_accessor :posted, :stubbed_response
|
13
|
-
|
14
|
-
def reset!
|
15
|
-
@posted = nil
|
16
|
-
@stubbed_response = nil
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def host
|
21
|
-
@address
|
22
|
-
end
|
23
|
-
|
24
|
-
def start
|
25
|
-
yield self
|
26
|
-
end
|
27
|
-
|
28
|
-
def request(request)
|
29
|
-
self.class.posted = [self, request]
|
30
|
-
self.class.stubbed_response
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
class ResponseStub
|
36
|
-
end
|
37
|
-
|
38
|
-
SUCCESS_BODY = %{
|
39
|
-
<?xml version="1.0" ?>
|
40
|
-
<response>
|
41
|
-
<item type="sms">
|
42
|
-
<recipients>1</recipients>
|
43
|
-
<success>true</success>
|
44
|
-
<resultcode>10</resultcode>
|
45
|
-
<resultmessage>Message successfully sent.</resultmessage>
|
46
|
-
</item>
|
47
|
-
</response>}
|
7
|
+
$:.unshift File.expand_path("../../lib", __FILE__)
|
8
|
+
require "mollie/sms"
|
48
9
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
<item type="sms">
|
53
|
-
<recipients>1</recipients>
|
54
|
-
<success>false</success>
|
55
|
-
<resultcode>20</resultcode>
|
56
|
-
<resultmessage>No username given.</resultmessage>
|
57
|
-
</item>
|
58
|
-
</response>}
|
10
|
+
Mollie::SMS.username = 'AstroRadio'
|
11
|
+
Mollie::SMS.password = 'secret'
|
12
|
+
Mollie::SMS.originator = 'Astro INC'
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require File.expand_path("../spec_helper", __FILE__)
|
2
|
+
require "mollie/sms/test_helper"
|
3
|
+
|
4
|
+
describe "Mollie::SMS ext" do
|
5
|
+
before do
|
6
|
+
Mollie::SMS.reset!
|
7
|
+
@sms = Mollie::SMS.new("+31612345678", "Future is coming.")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "stubs any next delivery to be successful" do
|
11
|
+
Mollie::SMS.success!
|
12
|
+
@sms.deliver.should.be.success
|
13
|
+
end
|
14
|
+
|
15
|
+
it "stubs any next delivery to fail at the gateway" do
|
16
|
+
Mollie::SMS.gateway_failure!
|
17
|
+
response = @sms.deliver
|
18
|
+
response.should.not.be.success
|
19
|
+
response.should.not.be.http_failure
|
20
|
+
end
|
21
|
+
|
22
|
+
it "stubs any next delivery to fail at HTTP level" do
|
23
|
+
Mollie::SMS.http_failure!
|
24
|
+
response = @sms.deliver
|
25
|
+
response.should.not.be.success
|
26
|
+
response.should.be.http_failure
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns the stubbed response" do
|
30
|
+
@sms.deliver.should == Mollie::SMS.stubbed_response
|
31
|
+
@sms.deliver!.should == Mollie::SMS.stubbed_response
|
32
|
+
end
|
33
|
+
|
34
|
+
it "adds sms instance to a global array instead of actually delivering" do
|
35
|
+
@sms.deliver
|
36
|
+
@sms.deliver!
|
37
|
+
Mollie::SMS.deliveries.last(2).should == [@sms, @sms]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "empties the deliveries array and stubs a succeeded response" do
|
41
|
+
@sms.deliver!
|
42
|
+
Mollie::SMS.reset!
|
43
|
+
Mollie::SMS.deliveries.should.be.empty
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "Mollie::SMS::TestHelper" do
|
48
|
+
extend Mollie::SMS::TestHelper
|
49
|
+
|
50
|
+
before do
|
51
|
+
Mollie::SMS.reset!
|
52
|
+
@sms = Mollie::SMS.new("+31612345678", "Future is coming.")
|
53
|
+
@result = @message = nil
|
54
|
+
end
|
55
|
+
|
56
|
+
def assert(result, message)
|
57
|
+
@result, @message = result, message
|
58
|
+
end
|
59
|
+
|
60
|
+
it "asserts that an email is sent while executing the block" do
|
61
|
+
assert_sms_messages(2) { @sms.deliver; @sms.deliver }
|
62
|
+
@result.should == true
|
63
|
+
end
|
64
|
+
|
65
|
+
it "fails if not the given amount of messages are sent" do
|
66
|
+
assert_sms_messages(2) { @sms.deliver }
|
67
|
+
@result.should == false
|
68
|
+
@message.should == "expected `2' SMS messages to be sent, actually sent `1'"
|
69
|
+
end
|
70
|
+
|
71
|
+
it "asserts that no emails were sent while executing the block" do
|
72
|
+
assert_no_sms_messages { }
|
73
|
+
@result.should == true
|
74
|
+
end
|
75
|
+
|
76
|
+
it "fails if messages are actually sent" do
|
77
|
+
assert_no_sms_messages { @sms.deliver }
|
78
|
+
@result.should == false
|
79
|
+
@message.should == "expected `0' SMS messages to be sent, actually sent `1'"
|
80
|
+
end
|
81
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mollie-sms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eloy Duran
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-08-
|
18
|
+
date: 2010-08-03 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -47,9 +47,15 @@ extra_rdoc_files:
|
|
47
47
|
files:
|
48
48
|
- LICENSE
|
49
49
|
- README
|
50
|
+
- Rakefile
|
51
|
+
- VERSION
|
50
52
|
- lib/mollie/sms.rb
|
53
|
+
- lib/mollie/sms/test_helper.rb
|
54
|
+
- mollie-sms.gemspec
|
55
|
+
- spec/functional_sms_deliver_spec.rb
|
51
56
|
- spec/sms_spec.rb
|
52
57
|
- spec/spec_helper.rb
|
58
|
+
- spec/test_helper_spec.rb
|
53
59
|
has_rdoc: true
|
54
60
|
homepage: http://github.com/Fingertips/Mollie-SMS
|
55
61
|
licenses: []
|
@@ -85,5 +91,7 @@ signing_key:
|
|
85
91
|
specification_version: 3
|
86
92
|
summary: Send SMS text messages via the Mollie.nl SMS gateway.
|
87
93
|
test_files:
|
94
|
+
- spec/functional_sms_deliver_spec.rb
|
88
95
|
- spec/sms_spec.rb
|
89
96
|
- spec/spec_helper.rb
|
97
|
+
- spec/test_helper_spec.rb
|