From 0157608508cdb432b37324e1653b60d6b2e8c692 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Thu, 2 Feb 2017 16:43:29 +0900 Subject: DRY fake models for testing --- .../test/actionpack/controller/render_test.rb | 36 +--------------------- actionview/test/lib/controller/fake_models.rb | 8 +++-- 2 files changed, 7 insertions(+), 37 deletions(-) diff --git a/actionview/test/actionpack/controller/render_test.rb b/actionview/test/actionpack/controller/render_test.rb index 890041914c..51ec8899b1 100644 --- a/actionview/test/actionpack/controller/render_test.rb +++ b/actionview/test/actionpack/controller/render_test.rb @@ -1,42 +1,11 @@ require "abstract_unit" require "active_model" +require "controller/fake_models" class ApplicationController < ActionController::Base self.view_paths = File.join(FIXTURE_LOAD_PATH, "actionpack") end -Customer = Struct.new(:name, :id) do - extend ActiveModel::Naming - include ActiveModel::Conversion - - undef_method :to_json - - def to_xml(options = {}) - if options[:builder] - options[:builder].name name - else - "#{name}" - end - end - - def to_js(options = {}) - "name: #{name.inspect}" - end - alias :to_text :to_js - - def errors - [] - end - - def persisted? - id.present? - end - - def cache_key - name.to_s - end -end - module Quiz #Models Question = Struct.new(:name, :id) do @@ -56,9 +25,6 @@ module Quiz end end -class BadCustomer < Customer; end -class GoodCustomer < Customer; end - module Fun class GamesController < ApplicationController def hello_world; end diff --git a/actionview/test/lib/controller/fake_models.rb b/actionview/test/lib/controller/fake_models.rb index 8db52ccbe1..5250101220 100644 --- a/actionview/test/lib/controller/fake_models.rb +++ b/actionview/test/lib/controller/fake_models.rb @@ -26,11 +26,15 @@ Customer = Struct.new(:name, :id) do def persisted? id.present? end -end -class GoodCustomer < Customer + def cache_key + name.to_s + end end +class BadCustomer < Customer; end +class GoodCustomer < Customer; end + Post = Struct.new(:title, :author_name, :body, :secret, :persisted, :written_on, :cost) do extend ActiveModel::Naming include ActiveModel::Conversion -- cgit v1.2.3