Sha256: b333f050bbd6283f7768af0fdc8005ec327c000476e4a80f4907d50e23b0001f
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
require 'spec_helper' require 'commute/core/context' require 'commute/core/stack' describe Commute::Stack do let(:stack) { Commute::Stack.new } # A Layer that forwards to the next. let(:forward_layer) { proc { |router, request, options = {}| request.pipe router.call(request.http) { |response, status| response.pipe request.respond(response.http, status) } }} # A layer that echoes all data. let(:echo_layer) { proc { |router, request, options = {}| request.pipe request.respond(Commute::Http::Response.new(request), Commute::Status.ok) }} describe '#call' do describe 'with a forward and echo layer' do it 'should echo all data' do # Append a forward and echo layer to the main sequence. stack.sequence do |s| s.append forward_layer s.append forward_layer s.append stack.sequence(:echo) end stack.sequence(:echo) do |s| s.append echo_layer end # Call the stack. context = Commute::Context.new stack request = stack.call Commute::Http::Request.new(context) do |response, status| puts 'response!' response.on(:data) { |chunk| puts chunk } response.on(:end) { puts 'end!'} end request.write 1 request.write 2 request.end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
commute-0.3.0.pre.2 | spec/commute/core/stack_spec.rb |
commute-0.3.0.pre | spec/commute/core/stack_spec.rb |