aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-11-08 16:59:52 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-11-08 16:59:52 +0900
commit88db491bc536d11c8dae5f20fce94f83b508063d (patch)
treedd5a6d8e1268db8edffe899b12e6a6aeb7aaf157
parent9272be6f787e19a90204faab23f9586e8136ec93 (diff)
downloadplum-88db491bc536d11c8dae5f20fce94f83b508063d.tar.gz
tests: add test cases for LegacyClientSession
-rw-r--r--test/plum/client/test_legacy_client_session.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/plum/client/test_legacy_client_session.rb b/test/plum/client/test_legacy_client_session.rb
new file mode 100644
index 0000000..16111ff
--- /dev/null
+++ b/test/plum/client/test_legacy_client_session.rb
@@ -0,0 +1,47 @@
+require "test_helper"
+
+using Plum::BinaryString
+class LegacyClientSessionTest < Minitest::Test
+ def test_empty?
+ io = StringIO.new
+ session = LegacyClientSession.new(io, Client::DEFAULT_CONFIG)
+ assert(session.empty?)
+ res = session.request({}, "aa")
+ assert(!session.empty?)
+ io.string << "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"
+ session.succ
+ assert(res.finished?)
+ assert(session.empty?)
+ end
+
+ def test_close_fails_req
+ session = LegacyClientSession.new(StringIO.new, Client::DEFAULT_CONFIG)
+ res = session.request({})
+ assert(!res.failed?)
+ session.close
+ assert(res.failed?)
+ end
+
+ def test_fail
+ io = StringIO.new
+ session = LegacyClientSession.new(io, Client::DEFAULT_CONFIG)
+ res = session.request({}, "aa")
+ assert_raises {
+ session.succ
+ }
+ assert(!res.finished?)
+ assert(res.failed?)
+ end
+
+ def test_request
+ io = StringIO.new
+ session = LegacyClientSession.new(io, Client::DEFAULT_CONFIG.merge(hostname: "aa"))
+ res = session.request({ ":method" => "GET", ":path" => "/aa" }, "aa")
+ assert("GET /aa HTTP/1.1\r\nhost: aa\r\n\r\naa")
+ io.string << "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\naaa"
+ session.succ until res.finished?
+ assert(res.finished?)
+ assert("aaa", res.body)
+ assert({ ":status" => "200", "content-length" => "3" }, res.headers)
+ end
+end