Class: OptionsTest

Inherits:
Faraday::TestCase show all
Defined in:
test/options_test.rb

Defined Under Namespace

Classes: ParentOptions, SubOptions

Instance Method Summary collapse

Methods inherited from Faraday::TestCase

#capture_warnings, jruby?, rbx?, ssl_mode?, #test_default

Methods included from Faraday::LiveServerConfig

#live_server, #live_server=, #live_server?

Instance Method Details

#test_clearObject



9
10
11
12
13
14
# File 'test/options_test.rb', line 9

def test_clear
  options = SubOptions.new(1)
  assert !options.empty?
  assert options.clear
  assert options.empty?
end

#test_deleteObject



178
179
180
181
182
183
# File 'test/options_test.rb', line 178

def test_delete
  options = ParentOptions.new(1)
  assert_equal 1, options.a
  assert_equal 1, options.delete(:a)
  assert_nil options.a
end

#test_each_keyObject



25
26
27
28
29
30
31
# File 'test/options_test.rb', line 25

def test_each_key
  options = ParentOptions.new(1, 2, 3)
  enum = options.each_key
  assert_equal enum.next.to_sym, :a
  assert_equal enum.next.to_sym, :b
  assert_equal enum.next.to_sym, :c
end

#test_each_valueObject



44
45
46
47
48
49
50
# File 'test/options_test.rb', line 44

def test_each_value
  options = ParentOptions.new(1, 2, 3)
  enum = options.each_value
  assert_equal enum.next, 1
  assert_equal enum.next, 2
  assert_equal enum.next, 3
end

#test_emptyObject



16
17
18
19
20
21
22
23
# File 'test/options_test.rb', line 16

def test_empty
  options = SubOptions.new
  assert options.empty?
  options.sub = 1
  assert !options.empty?
  options.delete(:sub)
  assert options.empty?
end

#test_env_access_memberObject



197
198
199
200
201
202
# File 'test/options_test.rb', line 197

def test_env_access_member
  e = Faraday::Env.new
  assert_nil e.method
  e.method = :get
  assert_equal :get, e.method
end

#test_env_access_string_non_memberObject



211
212
213
214
215
216
# File 'test/options_test.rb', line 211

def test_env_access_string_non_member
  e = Faraday::Env.new
  assert_nil e["custom"]
  e["custom"] = :boom
  assert_equal :boom, e["custom"]
end

#test_env_access_symbol_non_memberObject



204
205
206
207
208
209
# File 'test/options_test.rb', line 204

def test_env_access_symbol_non_member
  e = Faraday::Env.new
  assert_nil e[:custom]
  e[:custom] = :boom
  assert_equal :boom, e[:custom]
end

#test_env_fetch_ignores_falseObject



218
219
220
221
222
# File 'test/options_test.rb', line 218

def test_env_fetch_ignores_false
  ssl = Faraday::SSLOptions.new
  ssl.verify = false
  assert !ssl.fetch(:verify, true)
end

#test_fetch_accepts_blockObject



235
236
237
238
# File 'test/options_test.rb', line 235

def test_fetch_accepts_block
  opt = Faraday::SSLOptions.new
  assert_equal "yo :verify", opt.fetch(:verify) { |k| "yo #{k.inspect}"}
end

#test_fetch_grabs_valueObject



224
225
226
227
228
# File 'test/options_test.rb', line 224

def test_fetch_grabs_value
  opt = Faraday::SSLOptions.new
  opt.verify = 1
  assert_equal 1, opt.fetch(:verify, false) { |k| :blah }
end

#test_fetch_needs_a_default_if_key_is_missingObject



240
241
242
243
244
245
# File 'test/options_test.rb', line 240

def test_fetch_needs_a_default_if_key_is_missing
  opt = Faraday::SSLOptions.new
  assert_raises Faraday::Options.fetch_error_class do
    opt.fetch :verify
  end
end

#test_fetch_uses_falsey_defaultObject



230
231
232
233
# File 'test/options_test.rb', line 230

def test_fetch_uses_falsey_default
  opt = Faraday::SSLOptions.new
  assert_equal false, opt.fetch(:verify, false) { |k| :blah }
end

#test_fetch_works_with_keyObject



247
248
249
250
251
# File 'test/options_test.rb', line 247

def test_fetch_works_with_key
  opt = Faraday::SSLOptions.new
  opt.verify = 1
  assert_equal 1, opt.fetch(:verify)
end

#test_from_deep_hashObject



141
142
143
144
145
146
147
148
149
150
151
152
# File 'test/options_test.rb', line 141

def test_from_deep_hash
  hash = {:b => 1}
  options = ParentOptions.from :a => hash
  assert_equal 1, options.a[:b]

  hash[:b] = 2
  assert_equal 1, options.a[:b]

  options.a[:b] = 3
  assert_equal 2, hash[:b]
  assert_equal 3, options.a[:b]
end

#test_from_hashObject



118
119
120
121
122
123
# File 'test/options_test.rb', line 118

def test_from_hash
  options = ParentOptions.from :a => 1
  assert_kind_of ParentOptions, options
  assert_equal 1, options.a
  assert_nil options.b
end

#test_from_hash_with_sub_objectObject



125
126
127
128
129
130
131
132
# File 'test/options_test.rb', line 125

def test_from_hash_with_sub_object
  options = ParentOptions.from :a => 1, :c => {:sub => 1}
  assert_kind_of ParentOptions, options
  assert_equal 1, options.a
  assert_nil options.b
  assert_kind_of SubOptions, options.c
  assert_equal 1, options.c.sub
end

#test_from_nilObject



154
155
156
157
158
159
# File 'test/options_test.rb', line 154

def test_from_nil
  options = ParentOptions.from(nil)
  assert_kind_of ParentOptions, options
  assert_nil options.a
  assert_nil options.b
end

#test_from_optionsObject



100
101
102
103
104
105
106
# File 'test/options_test.rb', line 100

def test_from_options
  options = ParentOptions.new(1)

  value = ParentOptions.from(options)
  assert_equal 1, value.a
  assert_nil value.b
end

#test_from_options_with_sub_objectObject



108
109
110
111
112
113
114
115
116
# File 'test/options_test.rb', line 108

def test_from_options_with_sub_object
  sub = SubOptions.new(1)
  options = ParentOptions.from :a => 1, :c => sub
  assert_kind_of ParentOptions, options
  assert_equal 1, options.a
  assert_nil options.b
  assert_kind_of SubOptions, options.c
  assert_equal 1, options.c.sub
end

#test_inheritanceObject



134
135
136
137
138
139
# File 'test/options_test.rb', line 134

def test_inheritance
  subclass = Class.new(ParentOptions)
  options = subclass.from(:c => {:sub => 'hello'})
  assert_kind_of SubOptions, options.c
  assert_equal 'hello', options.c.sub
end

#test_invalid_keyObject



161
162
163
164
165
# File 'test/options_test.rb', line 161

def test_invalid_key
  assert_raises NoMethodError do
    ParentOptions.from :invalid => 1
  end
end

#test_key?Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
40
41
42
# File 'test/options_test.rb', line 33

def test_key?
  options = SubOptions.new
  assert !options.key?(:sub)
  options.sub = 1
  if RUBY_VERSION >= '1.9'
    assert options.key?(:sub)
  else
    assert options.key?("sub")
  end
end

#test_mergeObject



185
186
187
188
189
190
191
192
193
194
195
# File 'test/options_test.rb', line 185

def test_merge
  options = ParentOptions.new(1)
  assert_equal 1, options.a
  assert_nil options.b

  dup = options.merge :a => 2, :b => 3
  assert_equal 2, dup.a
  assert_equal 3, dup.b
  assert_equal 1, options.a
  assert_nil options.b
end

#test_proxy_options_from_stringObject



75
76
77
78
79
80
81
82
83
84
# File 'test/options_test.rb', line 75

def test_proxy_options_from_string
  options = Faraday::ProxyOptions.from 'http://user:[email protected]'
  assert_equal 'user', options.user
  assert_equal 'pass', options.password
  assert_kind_of URI, options.uri
  assert_equal '', options.path
  assert_equal 80, options.port
  assert_equal 'example.org', options.host
  assert_equal 'http', options.scheme
end

#test_proxy_options_hash_accessObject



86
87
88
89
90
91
92
# File 'test/options_test.rb', line 86

def test_proxy_options_hash_access
  proxy = Faraday::ProxyOptions.from 'http://a%40b:pw%[email protected]'
  assert_equal 'a@b', proxy[:user]
  assert_equal 'a@b', proxy.user
  assert_equal 'pw d', proxy[:password]
  assert_equal 'pw d', proxy.password
end

#test_proxy_options_no_authObject



94
95
96
97
98
# File 'test/options_test.rb', line 94

def test_proxy_options_no_auth
  proxy = Faraday::ProxyOptions.from 'http://example.org'
  assert_nil proxy.user
  assert_nil proxy.password
end

#test_request_proxy_setterObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'test/options_test.rb', line 59

def test_request_proxy_setter
  options = Faraday::RequestOptions.new
  assert_nil options.proxy

  assert_raises NoMethodError do
    options[:proxy] = {:booya => 1}
  end

  options[:proxy] = {:user => 'user'}
  assert_kind_of Faraday::ProxyOptions, options.proxy
  assert_equal 'user', options.proxy.user

  options.proxy = nil
  assert_nil options.proxy
end

#test_updateObject



167
168
169
170
171
172
173
174
175
176
# File 'test/options_test.rb', line 167

def test_update
  options = ParentOptions.new(1)
  assert_equal 1, options.a
  assert_nil options.b

  updated = options.update :a => 2, :b => 3
  assert_equal 2, options.a
  assert_equal 3, options.b
  assert_equal options, updated
end

#test_value?Boolean

Returns:

  • (Boolean)


52
53
54
55
56
57
# File 'test/options_test.rb', line 52

def test_value?
  options = SubOptions.new
  assert !options.value?(1)
  options.sub = 1
  assert options.value?(1)
end