forked from lostisland/faraday
-
Notifications
You must be signed in to change notification settings - Fork 1
/
connection_app_test.rb
60 lines (50 loc) · 1.42 KB
/
connection_app_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
class TestConnectionApps < Faraday::TestCase
class TestAdapter
def initialize(app)
@app = app
end
def call(env)
[200, {}, env[:test]]
end
end
class TestMiddleWare
def initialize(app)
@app = app
end
def call(env)
env[:test] = 'hi'
@app.call(env)
end
end
def setup
@conn = Faraday::Connection.new do |b|
b.use TestMiddleWare
b.use TestAdapter
end
end
def test_builder_is_built_from_faraday_connection
assert_kind_of Faraday::Builder, @conn.builder
assert_equal 3, @conn.builder.handlers.size
end
def test_builder_adds_middleware_to_builder_stack
assert_kind_of TestMiddleWare, @conn.builder[0].call(nil)
assert_kind_of TestAdapter, @conn.builder[1].call(nil)
end
def test_to_app_returns_rack_object
assert @conn.to_app.respond_to?(:call)
end
def test_builder_is_passed_to_new_faraday_connection
new_conn = Faraday::Connection.new :builder => @conn.builder
assert_equal @conn.builder, new_conn.builder
end
def test_builder_is_built_on_new_faraday_connection
new_conn = Faraday::Connection.new
new_conn.build do |b|
b.run @conn.builder[0]
b.run @conn.builder[1]
end
assert_kind_of TestMiddleWare, new_conn.builder[0].call(nil)
assert_kind_of TestAdapter, new_conn.builder[1].call(nil)
end
end