DRY fake models for testing

This commit is contained in:
Akira Matsuda 2017-02-02 16:43:29 +09:00
parent c684f4f3da
commit 0157608508
2 changed files with 7 additions and 37 deletions

View File

@ -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>#{name}</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

View File

@ -26,10 +26,14 @@ Customer = Struct.new(:name, :id) do
def persisted?
id.present?
end
def cache_key
name.to_s
end
end
class GoodCustomer < Customer
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