sms_aero 0.0.11 → 0.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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -6
  3. data/CHANGELOG.md +15 -10
  4. data/README.md +25 -30
  5. data/lib/sms_aero.rb +119 -34
  6. data/lib/sms_aero/birthday.rb +12 -0
  7. data/lib/sms_aero/callable.rb +6 -0
  8. data/lib/sms_aero/channel.rb +15 -0
  9. data/lib/sms_aero/digital.rb +7 -0
  10. data/lib/sms_aero/filled_string.rb +11 -0
  11. data/lib/sms_aero/future.rb +16 -0
  12. data/lib/sms_aero/group.rb +11 -0
  13. data/lib/sms_aero/optional.rb +15 -0
  14. data/lib/sms_aero/phone.rb +11 -0
  15. data/lib/sms_aero/response.rb +30 -0
  16. data/lib/sms_aero/response/with_balance.rb +5 -0
  17. data/lib/sms_aero/response/with_groups.rb +5 -0
  18. data/lib/sms_aero/response/with_id.rb +9 -0
  19. data/lib/sms_aero/response/with_senders.rb +5 -0
  20. data/lib/sms_aero/response/with_statuses.rb +5 -0
  21. data/lib/sms_aero/response/with_tariff.rb +5 -0
  22. data/lib/sms_aero/tariff.rb +8 -0
  23. data/sms_aero.gemspec +2 -4
  24. data/spec/{sms_aero/types → models}/birthday_spec.rb +2 -2
  25. data/spec/{sms_aero/types → models}/channel_spec.rb +2 -2
  26. data/spec/{sms_aero/types → models}/digital_spec.rb +1 -1
  27. data/spec/{sms_aero/types → models}/future_spec.rb +5 -5
  28. data/spec/{sms_aero/types → models}/phone_spec.rb +1 -1
  29. data/spec/{sms_aero/operations → operations}/add_blacklist_spec.rb +19 -3
  30. data/spec/{sms_aero/operations → operations}/add_group_spec.rb +4 -4
  31. data/spec/{sms_aero/operations → operations}/add_phone_spec.rb +39 -76
  32. data/spec/{sms_aero/operations → operations}/check_balance_spec.rb +2 -4
  33. data/spec/{sms_aero/operations → operations}/check_groups_spec.rb +0 -0
  34. data/spec/{sms_aero/operations → operations}/check_senders_spec.rb +5 -5
  35. data/spec/{sms_aero/operations → operations}/check_sending_spec.rb +3 -3
  36. data/spec/{sms_aero/operations → operations}/check_sign_spec.rb +2 -2
  37. data/spec/{sms_aero/operations → operations}/check_status_spec.rb +3 -3
  38. data/spec/{sms_aero/operations → operations}/check_tariff_spec.rb +1 -1
  39. data/spec/{sms_aero/operations → operations}/delete_group_spec.rb +3 -3
  40. data/spec/{sms_aero/operations → operations}/delete_phone_spec.rb +4 -4
  41. data/spec/{sms_aero/operations → operations}/send_sms_spec.rb +49 -11
  42. data/spec/spec_helper.rb +4 -1
  43. data/spec/support/en.yml +8 -0
  44. metadata +61 -101
  45. data/lib/sms_aero/models/answer.rb +0 -8
  46. data/lib/sms_aero/models/sms.rb +0 -16
  47. data/lib/sms_aero/models/tariff.rb +0 -8
  48. data/lib/sms_aero/operations/add_blacklist.rb +0 -11
  49. data/lib/sms_aero/operations/add_group.rb +0 -11
  50. data/lib/sms_aero/operations/add_phone.rb +0 -17
  51. data/lib/sms_aero/operations/check_balance.rb +0 -11
  52. data/lib/sms_aero/operations/check_groups.rb +0 -12
  53. data/lib/sms_aero/operations/check_senders.rb +0 -15
  54. data/lib/sms_aero/operations/check_sending.rb +0 -11
  55. data/lib/sms_aero/operations/check_sign.rb +0 -15
  56. data/lib/sms_aero/operations/check_status.rb +0 -11
  57. data/lib/sms_aero/operations/check_tariff.rb +0 -12
  58. data/lib/sms_aero/operations/delete_group.rb +0 -11
  59. data/lib/sms_aero/operations/delete_phone.rb +0 -12
  60. data/lib/sms_aero/operations/hlr.rb +0 -36
  61. data/lib/sms_aero/operations/send_sms.rb +0 -22
  62. data/lib/sms_aero/operations/send_to_group.rb +0 -15
  63. data/lib/sms_aero/types/birthday.rb +0 -20
  64. data/lib/sms_aero/types/channel.rb +0 -4
  65. data/lib/sms_aero/types/digital.rb +0 -8
  66. data/lib/sms_aero/types/filled_string.rb +0 -3
  67. data/lib/sms_aero/types/future.rb +0 -16
  68. data/lib/sms_aero/types/password.rb +0 -6
  69. data/lib/sms_aero/types/phone.rb +0 -12
  70. data/lib/sms_aero/types/sign_status.rb +0 -9
  71. data/spec/sms_aero/operations/hlr_spec.rb +0 -96
  72. data/spec/sms_aero/operations/send_to_group_spec.rb +0 -185
  73. data/spec/sms_aero/types/sign_status_spec.rb +0 -19
@@ -1,185 +0,0 @@
1
- RSpec.describe SmsAero, "#send_to_group" do
2
- let(:settings) { { user: "BAZ", password: "QUX" } }
3
- let(:client) { described_class.new(settings) }
4
- let(:params) { { text: "Hi", from: "Qux" } }
5
- let(:answer) { { id: 3898, result: "accepted" } }
6
-
7
- before { stub_request(:any, //).to_return(body: answer.to_json) }
8
- subject { client.send_to_group(params) }
9
-
10
- context "using ssl via POST:" do
11
- let(:url) do
12
- "https://gate.smsaero.ru/sendtogroup?" \
13
- "answer=json&" \
14
- "from=Qux&" \
15
- "group=all&" \
16
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
17
- "text=Hi&" \
18
- "type=2&" \
19
- "user=BAZ"
20
- end
21
-
22
- it "sends a request" do
23
- subject
24
- expect(a_request(:post, url)).to have_been_made
25
- end
26
-
27
- it "returns success" do
28
- expect(subject).to be_kind_of SmsAero::Answer
29
- expect(subject.result).to eq "accepted"
30
- end
31
- end
32
-
33
- context "via GET:" do
34
- let(:url) do
35
- "https://gate.smsaero.ru/sendtogroup?" \
36
- "answer=json&" \
37
- "from=Qux&" \
38
- "group=all&" \
39
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
40
- "text=Hi&" \
41
- "type=2&" \
42
- "user=BAZ"
43
- end
44
-
45
- before { settings[:use_post] = false }
46
-
47
- it "sends a request" do
48
- subject
49
- expect(a_request(:get, url)).to have_been_made
50
- end
51
- end
52
-
53
- context "not using ssl:" do
54
- let(:url) do
55
- "http://gate.smsaero.ru/sendtogroup?" \
56
- "answer=json&" \
57
- "from=Qux&" \
58
- "group=all&" \
59
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
60
- "text=Hi&" \
61
- "type=2&" \
62
- "user=BAZ"
63
- end
64
-
65
- before { settings[:use_ssl] = false }
66
-
67
- it "sends a request" do
68
- subject
69
- expect(a_request(:post, url)).to have_been_made
70
- end
71
- end
72
-
73
- context "with custom group:" do
74
- let(:url) do
75
- "https://gate.smsaero.ru/sendtogroup?" \
76
- "answer=json&" \
77
- "from=Qux&" \
78
- "group=foo&" \
79
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
80
- "text=Hi&" \
81
- "type=2&" \
82
- "user=BAZ"
83
- end
84
-
85
- before { params[:group] = "foo" }
86
-
87
- it "sends a request" do
88
- subject
89
- expect(a_request(:post, url)).to have_been_made
90
- end
91
- end
92
-
93
- context "with invalid group:" do
94
- before { params[:group] = "" }
95
-
96
- it "raises an exception" do
97
- expect { subject }.to raise_error(TypeError)
98
- end
99
- end
100
-
101
- context "with valid date:" do
102
- let(:url) do
103
- "https://gate.smsaero.ru/sendtogroup?" \
104
- "answer=json&" \
105
- "from=Qux&" \
106
- "group=all&" \
107
- "date=4122144000&" \
108
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
109
- "text=Hi&" \
110
- "type=2&" \
111
- "user=BAZ"
112
- end
113
-
114
- before { params[:date] = DateTime.parse("2100-08-17 00:00:00 UTC") }
115
-
116
- it "sends a request" do
117
- subject
118
- expect(a_request(:post, url)).to have_been_made
119
- end
120
- end
121
-
122
- context "with old date:" do
123
- before { params[:date] = (Date.today - 1) }
124
-
125
- it "raises an exception" do
126
- expect { subject }.to raise_error(TypeError)
127
- end
128
- end
129
-
130
- context "with invalid date:" do
131
- before { params[:date] = "foo" }
132
-
133
- it "raises an exception" do
134
- expect { subject }.to raise_error(TypeError, /foo/)
135
- end
136
- end
137
-
138
- context "with digital channel:" do
139
- let(:url) do
140
- "https://gate.smsaero.ru/sendtogroup?" \
141
- "answer=json&" \
142
- "from=Qux&" \
143
- "group=all&" \
144
- "digital=1&" \
145
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
146
- "text=Hi&" \
147
- "user=BAZ"
148
- end
149
-
150
- before { params[:digital] = true }
151
-
152
- it "sends a request" do
153
- subject
154
- expect(a_request(:post, url)).to have_been_made
155
- end
156
- end
157
-
158
- context "with valid type:" do
159
- let(:url) do
160
- "https://gate.smsaero.ru/sendtogroup?" \
161
- "answer=json&" \
162
- "from=Qux&" \
163
- "group=all&" \
164
- "password=9d1e4709d6a41407ab34cf99c7085f79&" \
165
- "text=Hi&" \
166
- "type=3&" \
167
- "user=BAZ"
168
- end
169
-
170
- before { params[:type] = 3 }
171
-
172
- it "sends a request" do
173
- subject
174
- expect(a_request(:post, url)).to have_been_made
175
- end
176
- end
177
-
178
- context "with invalid type:" do
179
- before { params[:type] = 11 }
180
-
181
- it "raises an exception" do
182
- expect { subject }.to raise_error(TypeError, /11/)
183
- end
184
- end
185
- end
@@ -1,19 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe SmsAero::Types::SignStatus do
4
- context "valid status:" do
5
- let(:items) { %w(accepted approved rejected pending) }
6
-
7
- it "returns a status" do
8
- items.each { |item| expect(described_class[item]).to eq item }
9
- end
10
- end
11
-
12
- context "invalid status:" do
13
- let(:item) { "wrong" }
14
-
15
- it "fails" do
16
- expect { described_class[item] }.to raise_error(StandardError, /wrong/)
17
- end
18
- end
19
- end