From 27eddbb332c4adb533e0699e4b1532c3bd4de222 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Fri, 7 Aug 2015 12:03:13 -0700 Subject: simplify the Middleware constructor We should do the hard work outside the constructor. Also fix the tests to not directly construct middleware objects, but to go through the stack object. --- .../dispatch/middleware_stack/middleware_test.rb | 63 +++++++++------------- 1 file changed, 24 insertions(+), 39 deletions(-) (limited to 'actionpack/test/dispatch') diff --git a/actionpack/test/dispatch/middleware_stack/middleware_test.rb b/actionpack/test/dispatch/middleware_stack/middleware_test.rb index 9607f026db..6366d37aa4 100644 --- a/actionpack/test/dispatch/middleware_stack/middleware_test.rb +++ b/actionpack/test/dispatch/middleware_stack/middleware_test.rb @@ -12,65 +12,50 @@ module ActionDispatch }.each do |name, klass| define_method("test_#{name}_klass") do - mw = Middleware.new klass - assert_equal klass, mw.klass + stack = ActionDispatch::MiddlewareStack.new + stack.use klass + assert_equal klass, stack.first.klass end define_method("test_#{name}_==") do - mw1 = Middleware.new klass - mw2 = Middleware.new klass - assert_equal mw1, mw2 + stack = ActionDispatch::MiddlewareStack.new + stack.use klass + stack.use klass + assert_equal 2, stack.size + assert_equal stack.first, stack.last end end + attr_reader :stack + + def setup + @stack = ActionDispatch::MiddlewareStack.new + end + def test_string_class - mw = Middleware.new Omg.name - assert_equal Omg, mw.klass + stack = ActionDispatch::MiddlewareStack.new + stack.use Omg.name + assert_equal Omg, stack.first.klass end def test_double_equal_works_with_classes k = Class.new - mw = Middleware.new k - assert_operator mw, :==, k + stack.use k + assert_operator stack.first, :==, k - result = mw != Class.new + result = stack.first != Class.new assert result, 'middleware should not equal other anon class' end def test_double_equal_works_with_strings - mw = Middleware.new Omg - assert_operator mw, :==, Omg.name + stack.use Omg + assert_operator stack.first, :==, Omg.name end def test_double_equal_normalizes_strings - mw = Middleware.new Omg - assert_operator mw, :==, "::#{Omg.name}" - end - - def test_middleware_loads_classnames_from_cache - mw = Class.new(Middleware) { - attr_accessor :classcache - }.new(Omg.name) - - fake_cache = { mw.name => Omg } - mw.classcache = fake_cache - - assert_equal Omg, mw.klass - - fake_cache[mw.name] = Middleware - assert_equal Middleware, mw.klass - end - - def test_middleware_always_returns_class - mw = Class.new(Middleware) { - attr_accessor :classcache - }.new(Omg) - - fake_cache = { mw.name => Middleware } - mw.classcache = fake_cache - - assert_equal Omg, mw.klass + stack.use Omg + assert_operator stack.first, :==, "::#{Omg.name}" end end end -- cgit v1.2.3