amaze_sns 2.0.0 → 2.1.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/lib/amaze_sns.rb +2 -2
- data/spec/amaze_sns_spec.rb +103 -103
- data/spec/request_spec.rb +69 -0
- data/spec/spec_helper.rb +1 -13
- data/spec/subscription_spec.rb +27 -0
- data/spec/topic_spec.rb +1 -124
- metadata +9 -11
data/lib/amaze_sns.rb
CHANGED
data/spec/amaze_sns_spec.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
|
-
|
2
|
-
require File.expand_path('../spec_helper', __FILE__)
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
3
2
|
|
4
|
-
require 'em-http'
|
5
3
|
|
6
4
|
describe AmazeSNS do
|
5
|
+
|
7
6
|
before :each do
|
8
|
-
|
9
|
-
|
10
|
-
EventMachine::MockHttpRequest.pass_through_requests = false
|
7
|
+
WebMock.reset!
|
8
|
+
WebMock.disable_net_connect!
|
11
9
|
end
|
12
10
|
|
13
11
|
|
@@ -54,7 +52,7 @@ describe AmazeSNS do
|
|
54
52
|
AmazeSNS.skey = '123456'
|
55
53
|
@topic = AmazeSNS['Test']
|
56
54
|
end
|
57
|
-
|
55
|
+
|
58
56
|
it 'should return a new topic object' do
|
59
57
|
@topic.should be_kind_of(Topic)
|
60
58
|
@topic.topic.should == 'Test'
|
@@ -63,115 +61,117 @@ describe AmazeSNS do
|
|
63
61
|
|
64
62
|
describe 'making the api calls' do
|
65
63
|
before :each do
|
66
|
-
|
67
|
-
|
68
|
-
EventMachine::MockHttpRequest.reset_counts!
|
69
|
-
EventMachine::MockHttpRequest.pass_through_requests = false #set to false to not hit the actual API endpoint
|
70
|
-
|
71
|
-
@time_stub = stub("A")
|
64
|
+
AmazeSNS.akey = '123456'
|
65
|
+
AmazeSNS.skey = '123456'
|
72
66
|
end
|
73
67
|
|
74
|
-
it 'should be able to
|
75
|
-
@
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
RESPONSE
|
90
|
-
|
91
|
-
EventMachine::MockHttpRequest.register(@url,:get,{},data)
|
92
|
-
|
93
|
-
EM.run{
|
94
|
-
d = AmazeSNS.list_topics
|
95
|
-
d.callback{
|
96
|
-
EM::HttpRequest.count(@url, :get).should == 1
|
97
|
-
EM.stop
|
98
|
-
}
|
99
|
-
d.errback{|error|
|
100
|
-
EM.stop
|
101
|
-
}
|
102
|
-
}
|
68
|
+
it 'should be able to list topics' do
|
69
|
+
@data = <<-RESPONSE.gsub(/^ +/, '')
|
70
|
+
<ListTopicsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
|
71
|
+
<ListTopicsResult>
|
72
|
+
<Topics>
|
73
|
+
<member>
|
74
|
+
<TopicArn>arn:aws:sns:us-east-1:123456789012:My-Topic</TopicArn>
|
75
|
+
</member>
|
76
|
+
</Topics>
|
77
|
+
</ListTopicsResult>
|
78
|
+
<ResponseMetadata>
|
79
|
+
<RequestId>3f1478c7-33a9-11df-9540-99d0768312d3</RequestId>
|
80
|
+
</ResponseMetadata>
|
81
|
+
</ListTopicsResponse>
|
82
|
+
RESPONSE
|
103
83
|
|
104
|
-
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'should return a deferrable on fail' do
|
108
|
-
@time_stub.should_receive(:iso8601).and_return(123)
|
109
|
-
Time.stub(:now).and_return(@time_stub)
|
84
|
+
@regexp = %r{/?Action=ListTopics}
|
110
85
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
EM::HttpRequest.count(@url, :get).should == 1
|
133
|
-
error.should be_kind_of(AuthorizationError)
|
134
|
-
EM.stop
|
135
|
-
}
|
136
|
-
|
137
|
-
}
|
138
|
-
|
139
|
-
} #end EM:MockHttpRequest block
|
86
|
+
stub_http_request(:get, @regexp).to_return(:body => @data,
|
87
|
+
:status => 200,
|
88
|
+
:headers => {
|
89
|
+
'Content-Type' => 'text/xml',
|
90
|
+
'Connection' => 'close'
|
91
|
+
})
|
92
|
+
|
93
|
+
AmazeSNS.should respond_to(:method_missing)
|
94
|
+
AmazeSNS.should respond_to(:process_query).with(1).argument
|
95
|
+
|
96
|
+
EM.run_block{
|
97
|
+
AmazeSNS.list_topics do |x|
|
98
|
+
AmazeSNS.process_data(x)
|
99
|
+
end
|
100
|
+
}
|
101
|
+
|
102
|
+
AmazeSNS.topics.has_key?('My-Topic').should == true
|
103
|
+
AmazeSNS['My-Topic'].should be_instance_of Topic
|
104
|
+
AmazeSNS['My-Topic'].topic.should == 'My-Topic'
|
105
|
+
AmazeSNS['My-Topic'].arn.should == 'arn:aws:sns:us-east-1:123456789012:My-Topic'
|
106
|
+
WebMock.should have_requested(:get, %r{http://sns.us-east-1.amazonaws.com:80})
|
140
107
|
end
|
141
108
|
|
142
|
-
it 'should
|
143
|
-
@
|
144
|
-
|
109
|
+
it 'should be able to list subscriptions' do
|
110
|
+
@data = <<-RESPONSE.gsub(/^ +/, '')
|
111
|
+
<ListSubscriptionsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
|
112
|
+
<ListSubscriptionsResult>
|
113
|
+
<Subscriptions>
|
114
|
+
<member>
|
115
|
+
<TopicArn>arn:aws:sns:us-east-1:698519295917:My-Topic</TopicArn>
|
116
|
+
<Protocol>email</Protocol>
|
117
|
+
<SubscriptionArn>arn:aws:sns:us-east-1:123456789012:My-Topic:80289ba6- 0fd4-4079-afb4-ce8c8260f0ca</SubscriptionArn>
|
118
|
+
<Owner>123456789012</Owner>
|
119
|
+
<Endpoint>example@amazon.com</Endpoint>
|
120
|
+
</member>
|
121
|
+
</Subscriptions>
|
122
|
+
</ListSubscriptionsResult>
|
123
|
+
<ResponseMetadata>
|
124
|
+
<RequestId>384ac68d-3775-11df-8963-01868b7c937a</RequestId>
|
125
|
+
</ResponseMetadata>
|
126
|
+
</ListSubscriptionsResponse>
|
127
|
+
RESPONSE
|
128
|
+
|
129
|
+
@regexp = %r{/?Action=ListSubscriptions}
|
130
|
+
|
131
|
+
stub_http_request(:get, @regexp).to_return(:body => @data,
|
132
|
+
:status => 200,
|
133
|
+
:headers => {
|
134
|
+
'Content-Type' => 'text/xml',
|
135
|
+
'Connection' => 'close'
|
136
|
+
})
|
145
137
|
|
146
|
-
#rspec expectations matchers
|
147
138
|
AmazeSNS.should respond_to(:method_missing)
|
148
139
|
AmazeSNS.should respond_to(:process_query).with(1).argument
|
149
140
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
EM.run{
|
166
|
-
AmazeSNS.list_topics
|
167
|
-
EM.stop
|
168
|
-
}
|
169
|
-
|
170
|
-
} #end EM:MockHttpRequest block
|
141
|
+
EM.run_block{
|
142
|
+
AmazeSNS.list_subscriptions do |x|
|
143
|
+
AmazeSNS.process_data(x)
|
144
|
+
@subs = AmazeSNS.subscriptions
|
145
|
+
end
|
146
|
+
}
|
147
|
+
|
148
|
+
@subs['My-Topic'].should be_instance_of Subscription
|
149
|
+
@subs['My-Topic'].owner.should == '123456789012'
|
150
|
+
@subs['My-Topic'].protocol.should == 'email'
|
151
|
+
@subs['My-Topic'].topicarn.should == 'arn:aws:sns:us-east-1:698519295917:My-Topic'
|
152
|
+
@subs['My-Topic'].endpoint.should == 'example@amazon.com'
|
153
|
+
@subs['My-Topic'].subarn.should == 'arn:aws:sns:us-east-1:123456789012:My-Topic:80289ba6- 0fd4-4079-afb4-ce8c8260f0ca'
|
154
|
+
WebMock.should have_requested(:get, %r{http://sns.us-east-1.amazonaws.com:80})
|
171
155
|
end
|
172
156
|
|
157
|
+
it 'should respond with an error' do
|
158
|
+
@regexp = %r{/?Action=ListSubscriptions}
|
159
|
+
stub_http_request(:get, @regexp).to_return(:status => [500, "Internal Server Error"])
|
160
|
+
error_raised = nil
|
161
|
+
begin
|
162
|
+
EM.run{
|
163
|
+
AmazeSNS.list_subscriptions {|x| }
|
164
|
+
}
|
165
|
+
rescue => e
|
166
|
+
error_raised = e
|
167
|
+
end
|
168
|
+
|
169
|
+
e.class.should == InternalError
|
170
|
+
e.message.should == 'An internal service error has occured on the Simple Notification Service'
|
171
|
+
end
|
173
172
|
|
174
|
-
end
|
173
|
+
end# end api tests
|
174
|
+
|
175
175
|
|
176
176
|
after do
|
177
177
|
AmazeSNS.topics={}
|
data/spec/request_spec.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe Request do
|
4
|
+
before :each do
|
5
|
+
AmazeSNS.akey = '123456'
|
6
|
+
AmazeSNS.skey = '123456'
|
7
|
+
|
8
|
+
params={
|
9
|
+
'Action' => "ListTopics",
|
10
|
+
'SignatureMethod' => 'HmacSHA256',
|
11
|
+
'SignatureVersion' => 2,
|
12
|
+
'Timestamp' => Time.now.iso8601, #Time.now.iso8601 makes tests fail
|
13
|
+
'AWSAccessKeyId' => AmazeSNS.akey
|
14
|
+
}
|
15
|
+
|
16
|
+
@data = <<-RESPONSE.gsub(/^ +/, '')
|
17
|
+
<ListTopicsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
|
18
|
+
<ListTopicsResult>
|
19
|
+
<Topics>
|
20
|
+
<member>
|
21
|
+
<TopicArn>arn:aws:sns:us-east-1:123456789012:My-Topic</TopicArn>
|
22
|
+
</member>
|
23
|
+
</Topics>
|
24
|
+
</ListTopicsResult>
|
25
|
+
<ResponseMetadata>
|
26
|
+
<RequestId>3f1478c7-33a9-11df-9540-99d0768312d3</RequestId>
|
27
|
+
</ResponseMetadata>
|
28
|
+
</ListTopicsResponse>
|
29
|
+
RESPONSE
|
30
|
+
|
31
|
+
@request = Request.new(params)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should make a request successfully' do
|
35
|
+
@regexp = %r{/?Action=ListTopics}
|
36
|
+
stub_http_request(:get, @regexp).to_return(:body => @data,
|
37
|
+
:status => 200,
|
38
|
+
:headers => {
|
39
|
+
'Content-Type' => 'text/xml',
|
40
|
+
'Connection' => 'close'
|
41
|
+
})
|
42
|
+
|
43
|
+
EM.run_block{
|
44
|
+
@request.process
|
45
|
+
@request.callback{|data|
|
46
|
+
data.response.should == @data
|
47
|
+
}
|
48
|
+
}
|
49
|
+
WebMock.should have_requested(:get, %r{http://sns.us-east-1.amazonaws.com:80})
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should throw an error if the request is not successful' do
|
53
|
+
error_raised = nil
|
54
|
+
@regexp = %r{/?Action=ListTopics}
|
55
|
+
stub_http_request(:get, @regexp).to_return(:status => [500, "Internal Server Error"])
|
56
|
+
|
57
|
+
begin
|
58
|
+
EM.run_block{
|
59
|
+
@request.process
|
60
|
+
}
|
61
|
+
rescue => e
|
62
|
+
error_raised = e
|
63
|
+
end
|
64
|
+
|
65
|
+
e.class.should == InternalError
|
66
|
+
e.message.should == 'An internal service error has occured on the Simple Notification Service'
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,28 +2,16 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
require 'rspec'
|
4
4
|
require 'rspec/autorun'
|
5
|
-
require 'em-http'
|
6
|
-
require 'webmock'
|
5
|
+
require 'em-http-request'
|
7
6
|
require 'webmock/rspec'
|
8
|
-
require 'vcr'
|
9
7
|
|
10
8
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
11
9
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
12
10
|
|
13
11
|
require 'amaze_sns'
|
14
12
|
require 'eventmachine'
|
15
|
-
#require 'support/vcr'
|
16
13
|
|
17
|
-
VCR.config do |c|
|
18
|
-
c.cassette_library_dir = 'fixtures/cassette_library'
|
19
|
-
c.stub_with :webmock
|
20
|
-
c.ignore_localhost = true
|
21
|
-
c.default_cassette_options = { :record => :none }
|
22
|
-
end
|
23
14
|
|
24
15
|
RSpec.configure do |config|
|
25
|
-
config.include WebMock::API
|
26
|
-
config.extend VCR::RSpec::Macros
|
27
|
-
|
28
16
|
end
|
29
17
|
|
data/spec/subscription_spec.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe Subscription do
|
4
|
+
before :each do
|
5
|
+
hsh = {
|
6
|
+
"Owner" => '123456789012',
|
7
|
+
"Protocol" => 'email',
|
8
|
+
"TopicArn" => 'arn:aws:sns:us-east-1:698519295917:My-Topic',
|
9
|
+
"Endpoint" => 'example@amazon.com',
|
10
|
+
"SubscriptionArn" => 'arn:aws:sns:us-east-1:123456789012:My-Topic:80289ba6- 0fd4-4079-afb4-ce8c8260f0ca'
|
11
|
+
}
|
12
|
+
@subscription = Subscription.new(hsh)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should be an instance of subscription' do
|
16
|
+
@subscription.should be_instance_of Subscription
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should have attributes that are accessible' do
|
20
|
+
@subscription.owner.should == '123456789012'
|
21
|
+
@subscription.protocol.should == 'email'
|
22
|
+
@subscription.topicarn.should == 'arn:aws:sns:us-east-1:698519295917:My-Topic'
|
23
|
+
@subscription.endpoint.should == 'example@amazon.com'
|
24
|
+
@subscription.subarn.should == 'arn:aws:sns:us-east-1:123456789012:My-Topic:80289ba6- 0fd4-4079-afb4-ce8c8260f0ca'
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/spec/topic_spec.rb
CHANGED
@@ -77,68 +77,7 @@ describe Topic do
|
|
77
77
|
@arn.should == "arn:aws:sns:us-east-1:365155214602:MyTopic"
|
78
78
|
WebMock.should have_requested(:get, %r{http://sns.us-east-1.amazonaws.com:80})
|
79
79
|
end
|
80
|
-
|
81
|
-
it 'should return a deferrable' do
|
82
|
-
t = Topic.new('MyTopic')
|
83
|
-
|
84
|
-
@time_stub.should_receive(:iso8601).and_return(123)
|
85
|
-
Time.stub(:now).and_return(@time_stub)
|
86
|
-
|
87
|
-
stub_http_request(:get, @regexp).to_return(:body => @data, :status => 200)
|
88
|
-
|
89
|
-
params = {
|
90
|
-
'Name' => "MyTopic",
|
91
|
-
'Action' => 'CreateTopic',
|
92
|
-
'SignatureMethod' => 'HmacSHA256',
|
93
|
-
'SignatureVersion' => 2,
|
94
|
-
'Timestamp' => Time.now.iso8601,
|
95
|
-
'AWSAccessKeyId' => AmazeSNS.akey
|
96
|
-
}
|
97
|
-
|
98
|
-
EM.run{
|
99
|
-
d = t.generate_request(params)
|
100
|
-
d.callback{
|
101
|
-
WebMock.should have_requested(:get, @regexp)
|
102
|
-
EM.stop
|
103
|
-
}
|
104
|
-
d.errback{
|
105
|
-
fail
|
106
|
-
EM.stop
|
107
|
-
}
|
108
|
-
}
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'should return a deferrable which fails if exception occurs' do
|
112
|
-
t = Topic.new('MyTopic')
|
113
|
-
|
114
|
-
@time_stub.should_receive(:iso8601).and_return(123)
|
115
|
-
Time.stub(:now).and_return(@time_stub)
|
116
|
-
AmazeSNS.akey = ''
|
117
|
-
|
118
|
-
stub_http_request(:get, @regexp).to_return(:body => @data, :status => 403)
|
119
|
-
|
120
|
-
params = {
|
121
|
-
'Name' => "MyTopic",
|
122
|
-
'Action' => 'CreateTopic',
|
123
|
-
'SignatureMethod' => 'HmacSHA256',
|
124
|
-
'SignatureVersion' => 2,
|
125
|
-
'Timestamp' => Time.now.iso8601,
|
126
|
-
'AWSAccessKeyId' => AmazeSNS.akey
|
127
|
-
}
|
128
|
-
|
129
|
-
EM.run{
|
130
|
-
d = t.generate_request(params)
|
131
|
-
d.callback{
|
132
|
-
fail
|
133
|
-
}
|
134
|
-
d.errback{|error|
|
135
|
-
WebMock.should have_requested(:get, @regexp)
|
136
|
-
error.should be_kind_of(AuthorizationError)
|
137
|
-
EM.stop
|
138
|
-
}
|
139
|
-
}
|
140
|
-
end
|
141
|
-
|
80
|
+
|
142
81
|
end
|
143
82
|
|
144
83
|
describe 'operations through the API' do
|
@@ -151,61 +90,6 @@ describe Topic do
|
|
151
90
|
WebMock.disable_net_connect!
|
152
91
|
end
|
153
92
|
|
154
|
-
context 'listing topics' do
|
155
|
-
|
156
|
-
before :each do
|
157
|
-
# store the request and response in webmock's own blocks for comparisons
|
158
|
-
WebMock.after_request do |request, response|
|
159
|
-
@response = response
|
160
|
-
@request = request
|
161
|
-
end
|
162
|
-
|
163
|
-
@list_data = <<-RESPONSE.gsub(/^ +/, '')
|
164
|
-
<ListTopicsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
|
165
|
-
<ListTopicsResult>
|
166
|
-
<Topics>
|
167
|
-
<member>
|
168
|
-
<TopicArn>arn:aws:sns:us-east-1:123456789012:My-Topic</TopicArn>
|
169
|
-
</member>
|
170
|
-
</Topics>
|
171
|
-
</ListTopicsResult>
|
172
|
-
<ResponseMetadata>
|
173
|
-
<RequestId>3f1478c7-33a9-11df-9540-99d0768312d3</RequestId>
|
174
|
-
</ResponseMetadata>
|
175
|
-
</ListTopicsResponse>
|
176
|
-
RESPONSE
|
177
|
-
|
178
|
-
@regexp = %r{/?Action=ListTopics}
|
179
|
-
end
|
180
|
-
|
181
|
-
use_vcr_cassette "topic/list", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
182
|
-
|
183
|
-
it 'should be able to get the data through the api' do
|
184
|
-
@time_stub.should_receive(:iso8601).and_return(123)
|
185
|
-
Time.stub(:now).and_return(@time_stub)
|
186
|
-
|
187
|
-
stub_http_request(:get, @regexp).to_return(:body => @list_data,
|
188
|
-
:status => 200,
|
189
|
-
:headers => {'Content-Type' => 'text/xml', 'Connection' => 'close'})
|
190
|
-
|
191
|
-
EM.run{
|
192
|
-
AmazeSNS.list_topics
|
193
|
-
EM.stop
|
194
|
-
}
|
195
|
-
|
196
|
-
WebMock.should have_requested(:get, %r{/?Action=ListTopics}).once
|
197
|
-
WebMock.should have_requested(:get, %r{http://sns.us-east-1.amazonaws.com:80}).once
|
198
|
-
|
199
|
-
@request.to_s.split(" ")[1].should == "http://sns.us-east-1.amazonaws.com/?AWSAccessKeyId=123456&Action=ListTopics&Signature=ItTAjeexIPC43pHMZLCL7utnpK8j8AbTUZ3KGUSMzNc=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=123"
|
200
|
-
@response.body.should == @list_data
|
201
|
-
@response.headers["Content-Type"].should == "text/xml"
|
202
|
-
end
|
203
|
-
|
204
|
-
it 'should populate the topics hash' do
|
205
|
-
AmazeSNS.topics.has_key?("My-Topic").should be_true
|
206
|
-
end
|
207
|
-
|
208
|
-
end # end list topic spec
|
209
93
|
|
210
94
|
context 'creating a topic' do
|
211
95
|
before :each do
|
@@ -224,7 +108,6 @@ describe Topic do
|
|
224
108
|
@regexp = %r{/?Action=CreateTopic&Name=MyTopic}
|
225
109
|
end
|
226
110
|
|
227
|
-
use_vcr_cassette "topic/create", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
228
111
|
|
229
112
|
it 'should send data to the API' do
|
230
113
|
@time_stub.should_receive(:iso8601).and_return(123)
|
@@ -286,7 +169,6 @@ describe Topic do
|
|
286
169
|
@regexp = %r{/?Action=GetTopicAttributes}
|
287
170
|
end
|
288
171
|
|
289
|
-
use_vcr_cassette "topic/attrs", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
290
172
|
|
291
173
|
it 'should make the API call' do
|
292
174
|
@time_stub.should_receive(:iso8601).and_return(123)
|
@@ -334,7 +216,6 @@ describe Topic do
|
|
334
216
|
@regexp = %r{/?Action=Subscribe}
|
335
217
|
end
|
336
218
|
|
337
|
-
use_vcr_cassette "topic/subscribe", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
338
219
|
|
339
220
|
it 'should recive a pending confirmation on subscription' do
|
340
221
|
@time_stub.should_receive(:iso8601).and_return(123)
|
@@ -364,7 +245,6 @@ describe Topic do
|
|
364
245
|
@regexp = %r{/?Action=SetTopicAttributes}
|
365
246
|
end
|
366
247
|
|
367
|
-
use_vcr_cassette "topic/set_attrs", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
368
248
|
|
369
249
|
it 'should set the topics attrs' do
|
370
250
|
@time_stub.should_receive(:iso8601).and_return(123)
|
@@ -409,7 +289,6 @@ describe Topic do
|
|
409
289
|
@regexp = %r{/?Action=ListSubscriptionsByTopic}
|
410
290
|
end
|
411
291
|
|
412
|
-
use_vcr_cassette "topic/subscriptions", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
413
292
|
|
414
293
|
it 'should list the subscriptions for this topic' do
|
415
294
|
@time_stub.should_receive(:iso8601).and_return(123)
|
@@ -452,7 +331,6 @@ describe Topic do
|
|
452
331
|
@regexp = %r{/?Action=Unsubscribe}
|
453
332
|
end
|
454
333
|
|
455
|
-
use_vcr_cassette "topic/unsubscribe", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
456
334
|
|
457
335
|
it 'should be able to remove the subscriber' do
|
458
336
|
@time_stub.should_receive(:iso8601).and_return(123)
|
@@ -484,7 +362,6 @@ describe Topic do
|
|
484
362
|
@regexp = %r{/?Action=DeleteTopic}
|
485
363
|
end
|
486
364
|
|
487
|
-
use_vcr_cassette "topic/delete", {:record => :new_episodes, :match_requests_on => [:uri,:method,:body]}
|
488
365
|
|
489
366
|
it 'should send data to the API' do
|
490
367
|
@time_stub.should_receive(:iso8601).and_return(123)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: amaze_sns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.
|
5
|
+
version: 2.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Chee Yeo
|
@@ -11,8 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-
|
15
|
-
default_executable:
|
14
|
+
date: 2011-09-11 00:00:00 Z
|
16
15
|
dependencies:
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: eventmachine
|
@@ -86,9 +85,9 @@ dependencies:
|
|
86
85
|
requirement: &id007 !ruby/object:Gem::Requirement
|
87
86
|
none: false
|
88
87
|
requirements:
|
89
|
-
- -
|
88
|
+
- - "="
|
90
89
|
- !ruby/object:Gem::Version
|
91
|
-
version: 1.6
|
90
|
+
version: 1.7.6
|
92
91
|
type: :development
|
93
92
|
version_requirements: *id007
|
94
93
|
description: Ruby gem to interface with the Amazon Simple Notification Service
|
@@ -110,17 +109,16 @@ files:
|
|
110
109
|
- spec/amaze_sns_spec.rb
|
111
110
|
- spec/em_http_request_spec_helper.rb
|
112
111
|
- spec/request_spec.rb
|
112
|
+
- spec/spec.opts
|
113
113
|
- spec/spec_helper.rb
|
114
114
|
- spec/subscription_spec.rb
|
115
115
|
- spec/topic_spec.rb
|
116
|
-
- spec/spec.opts
|
117
|
-
has_rdoc: true
|
118
116
|
homepage: http://29steps.co.uk
|
119
117
|
licenses: []
|
120
118
|
|
121
119
|
post_install_message:
|
122
|
-
rdoc_options:
|
123
|
-
|
120
|
+
rdoc_options: []
|
121
|
+
|
124
122
|
require_paths:
|
125
123
|
- lib
|
126
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -138,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
136
|
requirements: []
|
139
137
|
|
140
138
|
rubyforge_project:
|
141
|
-
rubygems_version: 1.
|
139
|
+
rubygems_version: 1.8.7
|
142
140
|
signing_key:
|
143
141
|
specification_version: 3
|
144
142
|
summary: Ruby gem for Amazon Simple Notification Service SNS
|
@@ -146,7 +144,7 @@ test_files:
|
|
146
144
|
- spec/amaze_sns_spec.rb
|
147
145
|
- spec/em_http_request_spec_helper.rb
|
148
146
|
- spec/request_spec.rb
|
147
|
+
- spec/spec.opts
|
149
148
|
- spec/spec_helper.rb
|
150
149
|
- spec/subscription_spec.rb
|
151
150
|
- spec/topic_spec.rb
|
152
|
-
- spec/spec.opts
|