active_mocker 1.4.2 → 1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +35 -29
- data/lib/active_mocker.rb +3 -1
- data/lib/active_mocker/active_record.rb +27 -5
- data/lib/active_mocker/active_record/scope.rb +5 -5
- data/lib/active_mocker/active_record/unknown_module.rb +4 -4
- data/lib/active_mocker/generate.rb +36 -15
- data/lib/active_mocker/loaded_mocks.rb +60 -54
- data/lib/active_mocker/mock.rb +24 -0
- data/lib/active_mocker/mock/association.rb +6 -0
- data/lib/{active_mock → active_mocker/mock}/base.rb +43 -89
- data/lib/{active_mock → active_mocker/mock}/collection.rb +14 -7
- data/lib/{active_mock → active_mocker/mock}/do_nothing_active_record_methods.rb +7 -1
- data/lib/active_mocker/mock/exceptions.rb +25 -0
- data/lib/active_mocker/mock/has_and_belongs_to_many.rb +6 -0
- data/lib/active_mocker/mock/has_many.rb +60 -0
- data/lib/active_mocker/mock/hash_process.rb +19 -0
- data/lib/active_mocker/mock/mock_abilities.rb +98 -0
- data/lib/{active_mock → active_mocker/mock}/next_id.rb +7 -2
- data/lib/{active_mock → active_mocker/mock}/object_inspect.rb +3 -1
- data/lib/{active_mock → active_mocker/mock}/queries.rb +32 -29
- data/lib/active_mocker/mock/records.rb +62 -0
- data/lib/{active_mock → active_mocker/mock}/relation.rb +4 -3
- data/lib/active_mocker/mock/template_methods.rb +39 -0
- data/lib/active_mocker/mock_template.erb +45 -31
- data/lib/active_mocker/model_reader.rb +29 -0
- data/lib/active_mocker/model_schema.rb +23 -16
- data/lib/active_mocker/model_schema/generate.rb +19 -8
- data/lib/active_mocker/railtie.rb +17 -0
- data/lib/active_mocker/reparameterize.rb +2 -4
- data/lib/active_mocker/rspec_helper.rb +18 -0
- data/lib/active_mocker/task.rake +15 -0
- data/lib/active_mocker/version.rb +1 -1
- metadata +80 -206
- data/.gitignore +0 -19
- data/.hound.yml +0 -0
- data/.travis.yml +0 -5
- data/Gemfile +0 -4
- data/Rakefile +0 -26
- data/active_mocker.gemspec +0 -40
- data/lib/active_mock/association.rb +0 -7
- data/lib/active_mock/creators.rb +0 -25
- data/lib/active_mock/has_and_belongs_to_many.rb +0 -7
- data/lib/active_mock/has_many.rb +0 -54
- data/lib/active_mock/records.rb +0 -83
- data/lib/active_mocker/active_mock.rb +0 -26
- data/lib/active_mocker/active_record/const_missing.rb +0 -5
- data/lib/active_mocker/class_exists.rb +0 -12
- data/lib/active_mocker/const_sets.rb +0 -24
- data/lib/active_mocker/mock_task.rb +0 -12
- data/sample_app_rails_4/.idea/.generators +0 -8
- data/sample_app_rails_4/.idea/.name +0 -1
- data/sample_app_rails_4/.idea/.rakeTasks +0 -7
- data/sample_app_rails_4/.idea/dataSources.ids +0 -141
- data/sample_app_rails_4/.idea/dataSources.xml +0 -36
- data/sample_app_rails_4/.idea/dictionaries/zeisler.xml +0 -3
- data/sample_app_rails_4/.idea/encodings.xml +0 -5
- data/sample_app_rails_4/.idea/inspectionProfiles/Project_Default.xml +0 -20
- data/sample_app_rails_4/.idea/inspectionProfiles/profiles_settings.xml +0 -7
- data/sample_app_rails_4/.idea/misc.xml +0 -5
- data/sample_app_rails_4/.idea/modules.xml +0 -10
- data/sample_app_rails_4/.idea/runConfigurations/Development__sample_app_rails_4.xml +0 -28
- data/sample_app_rails_4/.idea/runConfigurations/Production__sample_app_rails_4.xml +0 -28
- data/sample_app_rails_4/.idea/runConfigurations/spec__sample_app_rails_4.xml +0 -26
- data/sample_app_rails_4/.idea/runConfigurations/test__sample_app_rails_4.xml +0 -28
- data/sample_app_rails_4/.idea/sample_app_rails_4.iml +0 -262
- data/sample_app_rails_4/.idea/scopes/scope_settings.xml +0 -5
- data/sample_app_rails_4/.idea/vcs.xml +0 -7
- data/sample_app_rails_4/.idea/workspace.xml +0 -619
- data/sample_app_rails_4/.rspec +0 -1
- data/sample_app_rails_4/.secret +0 -1
- data/sample_app_rails_4/Gemfile +0 -13
- data/sample_app_rails_4/Guardfile +0 -53
- data/sample_app_rails_4/LICENSE +0 -21
- data/sample_app_rails_4/README.md +0 -25
- data/sample_app_rails_4/README.nitrous.md +0 -20
- data/sample_app_rails_4/Rakefile +0 -6
- data/sample_app_rails_4/app/assets/images/rails.png +0 -0
- data/sample_app_rails_4/app/assets/javascripts/application.js +0 -17
- data/sample_app_rails_4/app/assets/javascripts/sessions.js.coffee +0 -3
- data/sample_app_rails_4/app/assets/javascripts/static_pages.js.coffee +0 -3
- data/sample_app_rails_4/app/assets/javascripts/users.js.coffee +0 -3
- data/sample_app_rails_4/app/assets/stylesheets/application.css +0 -13
- data/sample_app_rails_4/app/assets/stylesheets/custom.css.scss +0 -246
- data/sample_app_rails_4/app/assets/stylesheets/sessions.css.scss +0 -3
- data/sample_app_rails_4/app/assets/stylesheets/static_pages.css.scss +0 -3
- data/sample_app_rails_4/app/assets/stylesheets/users.css.scss +0 -3
- data/sample_app_rails_4/app/controllers/application_controller.rb +0 -6
- data/sample_app_rails_4/app/controllers/concerns/.keep +0 -0
- data/sample_app_rails_4/app/controllers/microposts_controller.rb +0 -31
- data/sample_app_rails_4/app/controllers/relationships_controller.rb +0 -21
- data/sample_app_rails_4/app/controllers/sessions_controller.rb +0 -21
- data/sample_app_rails_4/app/controllers/static_pages_controller.rb +0 -18
- data/sample_app_rails_4/app/controllers/users_controller.rb +0 -80
- data/sample_app_rails_4/app/helpers/application_helper.rb +0 -12
- data/sample_app_rails_4/app/helpers/sessions_helper.rb +0 -49
- data/sample_app_rails_4/app/helpers/static_pages_helper.rb +0 -2
- data/sample_app_rails_4/app/helpers/users_helper.rb +0 -10
- data/sample_app_rails_4/app/mailers/.keep +0 -0
- data/sample_app_rails_4/app/models/.keep +0 -0
- data/sample_app_rails_4/app/models/concerns/.keep +0 -0
- data/sample_app_rails_4/app/models/micropost.rb +0 -24
- data/sample_app_rails_4/app/models/relationship.rb +0 -6
- data/sample_app_rails_4/app/models/user.rb +0 -39
- data/sample_app_rails_4/app/views/layouts/_footer.html.erb +0 -13
- data/sample_app_rails_4/app/views/layouts/_header.html.erb +0 -31
- data/sample_app_rails_4/app/views/layouts/_shim.html.erb +0 -3
- data/sample_app_rails_4/app/views/layouts/application.html.erb +0 -22
- data/sample_app_rails_4/app/views/microposts/_micropost.html.erb +0 -11
- data/sample_app_rails_4/app/views/relationships/create.js.erb +0 -2
- data/sample_app_rails_4/app/views/relationships/destroy.js.erb +0 -2
- data/sample_app_rails_4/app/views/sessions/new.html.erb +0 -19
- data/sample_app_rails_4/app/views/shared/_error_messages.html.erb +0 -12
- data/sample_app_rails_4/app/views/shared/_feed.html.erb +0 -6
- data/sample_app_rails_4/app/views/shared/_feed_item.html.erb +0 -15
- data/sample_app_rails_4/app/views/shared/_micropost_form.html.erb +0 -7
- data/sample_app_rails_4/app/views/shared/_stats.html.erb +0 -15
- data/sample_app_rails_4/app/views/shared/_user_info.html.erb +0 -12
- data/sample_app_rails_4/app/views/static_pages/about.html.erb +0 -8
- data/sample_app_rails_4/app/views/static_pages/contact.html.erb +0 -6
- data/sample_app_rails_4/app/views/static_pages/help.html.erb +0 -8
- data/sample_app_rails_4/app/views/static_pages/home.html.erb +0 -34
- data/sample_app_rails_4/app/views/static_pages/show.html.erb +0 -0
- data/sample_app_rails_4/app/views/users/_follow.html.erb +0 -5
- data/sample_app_rails_4/app/views/users/_follow_form.html.erb +0 -9
- data/sample_app_rails_4/app/views/users/_unfollow.html.erb +0 -5
- data/sample_app_rails_4/app/views/users/_user.html.erb +0 -8
- data/sample_app_rails_4/app/views/users/edit.html.erb +0 -27
- data/sample_app_rails_4/app/views/users/index.html.erb +0 -10
- data/sample_app_rails_4/app/views/users/new.html.erb +0 -24
- data/sample_app_rails_4/app/views/users/show.html.erb +0 -24
- data/sample_app_rails_4/app/views/users/show_follow.html.erb +0 -30
- data/sample_app_rails_4/bin/bundle +0 -3
- data/sample_app_rails_4/bin/rails +0 -4
- data/sample_app_rails_4/bin/rake +0 -4
- data/sample_app_rails_4/bin/rspec +0 -16
- data/sample_app_rails_4/config.ru +0 -4
- data/sample_app_rails_4/config/application.rb +0 -28
- data/sample_app_rails_4/config/boot.rb +0 -4
- data/sample_app_rails_4/config/database.yml +0 -27
- data/sample_app_rails_4/config/environment.rb +0 -5
- data/sample_app_rails_4/config/environments/development.rb +0 -25
- data/sample_app_rails_4/config/environments/production.rb +0 -79
- data/sample_app_rails_4/config/environments/test.rb +0 -38
- data/sample_app_rails_4/config/initializers/active_mocker.rb +0 -12
- data/sample_app_rails_4/config/initializers/backtrace_silencers.rb +0 -7
- data/sample_app_rails_4/config/initializers/filter_parameter_logging.rb +0 -4
- data/sample_app_rails_4/config/initializers/inflections.rb +0 -16
- data/sample_app_rails_4/config/initializers/mime_types.rb +0 -5
- data/sample_app_rails_4/config/initializers/secret_token.rb +0 -22
- data/sample_app_rails_4/config/initializers/session_store.rb +0 -3
- data/sample_app_rails_4/config/initializers/wrap_parameters.rb +0 -14
- data/sample_app_rails_4/config/locales/en.yml +0 -23
- data/sample_app_rails_4/config/routes.rb +0 -17
- data/sample_app_rails_4/db/migrate/20130311191400_create_users.rb +0 -10
- data/sample_app_rails_4/db/migrate/20130311194153_add_index_to_users_email.rb +0 -5
- data/sample_app_rails_4/db/migrate/20130311201841_add_password_digest_to_users.rb +0 -5
- data/sample_app_rails_4/db/migrate/20130314184954_add_remember_token_to_users.rb +0 -6
- data/sample_app_rails_4/db/migrate/20130315015932_add_admin_to_users.rb +0 -5
- data/sample_app_rails_4/db/migrate/20130315175534_create_microposts.rb +0 -11
- data/sample_app_rails_4/db/migrate/20130315230445_create_relationships.rb +0 -13
- data/sample_app_rails_4/db/schema.rb +0 -51
- data/sample_app_rails_4/db/seeds.rb +0 -7
- data/sample_app_rails_4/features/signing_in.feature +0 -13
- data/sample_app_rails_4/features/step_definitions/authentication_steps.rb +0 -30
- data/sample_app_rails_4/features/support/env.rb +0 -59
- data/sample_app_rails_4/lib/assets/.keep +0 -0
- data/sample_app_rails_4/lib/tasks/.keep +0 -0
- data/sample_app_rails_4/lib/tasks/active_mocker.rake +0 -10
- data/sample_app_rails_4/lib/tasks/cucumber.rake +0 -65
- data/sample_app_rails_4/lib/tasks/sample_data.rake +0 -42
- data/sample_app_rails_4/lib/unit_logger.rb +0 -22
- data/sample_app_rails_4/public/404.html +0 -27
- data/sample_app_rails_4/public/422.html +0 -26
- data/sample_app_rails_4/public/500.html +0 -26
- data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css +0 -5091
- data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css.gz +0 -0
- data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js +0 -12952
- data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js.gz +0 -0
- data/sample_app_rails_4/public/assets/glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png +0 -0
- data/sample_app_rails_4/public/assets/glyphicons-halflings-white-62b67d9edee3db90d18833087f848d6e.png +0 -0
- data/sample_app_rails_4/public/assets/manifest-802de9eb1c853769101852422b620883.json +0 -1
- data/sample_app_rails_4/public/assets/rails-231a680f23887d9dd70710ea5efd3c62.png +0 -0
- data/sample_app_rails_4/public/favicon.ico +0 -0
- data/sample_app_rails_4/public/robots.txt +0 -5
- data/sample_app_rails_4/script/cucumber +0 -10
- data/sample_app_rails_4/spec/compare_mocker_and_record_spec.rb +0 -1038
- data/sample_app_rails_4/spec/factories.rb +0 -17
- data/sample_app_rails_4/spec/micropost_mock_spec.rb +0 -145
- data/sample_app_rails_4/spec/mocks/micropost_mock.rb +0 -153
- data/sample_app_rails_4/spec/mocks/relationship_mock.rb +0 -151
- data/sample_app_rails_4/spec/mocks/user_mock.rb +0 -215
- data/sample_app_rails_4/spec/reload_spec.rb +0 -45
- data/sample_app_rails_4/spec/spec_helper.rb +0 -46
- data/sample_app_rails_4/spec/user_mock_spec.rb +0 -197
- data/sample_app_rails_4/vendor/assets/javascripts/.keep +0 -0
- data/sample_app_rails_4/vendor/assets/stylesheets/.keep +0 -0
- data/spec/lib/acitve_mock/queriable_spec.rb +0 -207
- data/spec/lib/active_mocker/db_to_ruby_type_spec.rb +0 -124
- data/spec/lib/active_mocker/generate_spec.rb +0 -40
- data/spec/lib/active_mocker/loaded_mocks_spec.rb +0 -167
- data/spec/lib/active_mocker/logger_spec.rb +0 -32
- data/spec/lib/active_mocker/model_reader_spec.rb +0 -206
- data/spec/lib/active_mocker/model_schema/generate_spec.rb +0 -111
- data/spec/lib/active_mocker/model_schema_spec.rb +0 -145
- data/spec/lib/active_mocker/schema_reader_spec.rb +0 -109
- data/spec/lib/model.rb +0 -43
- data/spec/lib/person.rb +0 -9
- data/spec/lib/readme_spec.rb +0 -199
- data/spec/lib/reparameterize_spec.rb +0 -202
- data/spec/lib/schema.rb +0 -40
- data/spec/unit_logger.rb +0 -24
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
FactoryGirl.define do
|
|
2
|
-
factory :user do
|
|
3
|
-
sequence(:name) { |n| "Person #{n}" }
|
|
4
|
-
sequence(:email) { |n| "person_#{n}@example.com"}
|
|
5
|
-
password "foobar"
|
|
6
|
-
password_confirmation "foobar"
|
|
7
|
-
|
|
8
|
-
factory :admin do
|
|
9
|
-
admin true
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
factory :micropost do
|
|
14
|
-
content "Lorem ipsum"
|
|
15
|
-
user
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
require 'rspec'
|
|
2
|
-
$:.unshift File.expand_path('../../', __FILE__)
|
|
3
|
-
APP_ROOT = File.expand_path('../../', __FILE__) unless defined? APP_ROOT
|
|
4
|
-
require 'config/initializers/active_mocker.rb'
|
|
5
|
-
load 'spec/mocks/micropost_mock.rb'
|
|
6
|
-
load 'spec/mocks/user_mock.rb'
|
|
7
|
-
|
|
8
|
-
describe MicropostMock do
|
|
9
|
-
|
|
10
|
-
describe 'user=' do
|
|
11
|
-
|
|
12
|
-
it 'setting user will assign its foreign key' do
|
|
13
|
-
user = UserMock.create!
|
|
14
|
-
post = MicropostMock.create(user: user)
|
|
15
|
-
expect(post.user_id).to eq user.id
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it 'setting user will not assign its foreign key if the object does not respond to persisted?' do
|
|
19
|
-
user = {}
|
|
20
|
-
post = MicropostMock.create(user: user)
|
|
21
|
-
expect(post.user_id).to eq nil
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
describe '::MAGIC_ID_NUMBER' do
|
|
27
|
-
|
|
28
|
-
it 'has constant from model' do
|
|
29
|
-
|
|
30
|
-
expect(MicropostMock::MAGIC_ID_NUMBER).to eq 90
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
describe '::MAGIC_ID_STRING' do
|
|
37
|
-
|
|
38
|
-
it 'has constant from model' do
|
|
39
|
-
|
|
40
|
-
expect(MicropostMock::MAGIC_ID_STRING).to eq 'F-1'
|
|
41
|
-
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
describe '::constants' do
|
|
47
|
-
|
|
48
|
-
it 'has constant from model' do
|
|
49
|
-
|
|
50
|
-
expect(MicropostMock.constants).to include(:MAGIC_ID_NUMBER, :MAGIC_ID_STRING)
|
|
51
|
-
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
describe 'Mocking methods' do
|
|
57
|
-
|
|
58
|
-
context 'mocked from class before new' do
|
|
59
|
-
|
|
60
|
-
before do
|
|
61
|
-
MicropostMock.mock_instance_method(:display_name) do
|
|
62
|
-
'Method Mocked at class level'
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
it 'when no instance level mocks is set will default to class level' do
|
|
67
|
-
expect(MicropostMock.new.display_name).to eq 'Method Mocked at class level'
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
it 'instance mocking overrides class mocking' do
|
|
71
|
-
post = MicropostMock.new
|
|
72
|
-
post.mock_instance_method(:display_name) do
|
|
73
|
-
'Method Mocked at instance level'
|
|
74
|
-
end
|
|
75
|
-
expect(post.display_name).to eq 'Method Mocked at instance level'
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
context 'mocked from class after new' do
|
|
81
|
-
|
|
82
|
-
before do
|
|
83
|
-
MicropostMock.create
|
|
84
|
-
MicropostMock.mock_instance_method(:display_name) do
|
|
85
|
-
'Method Mocked at class level'
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
it 'when no instance level mocks is set will default to class level' do
|
|
91
|
-
expect(MicropostMock.first.display_name).to eq 'Method Mocked at class level'
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
it 'instance mocking overrides class mocking' do
|
|
95
|
-
post = MicropostMock.first
|
|
96
|
-
post.mock_instance_method(:display_name) do
|
|
97
|
-
'Method Mocked at instance level'
|
|
98
|
-
end
|
|
99
|
-
expect(post.display_name).to eq 'Method Mocked at instance level'
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
describe 'Sub classing' do
|
|
109
|
-
|
|
110
|
-
context 'using sub class' do
|
|
111
|
-
|
|
112
|
-
before do
|
|
113
|
-
class SubUserMock < UserMock
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
let(:given_a_sub_user_record) { SubUserMock.create }
|
|
118
|
-
let(:given_a_post) { MicropostMock.create(user_id: given_a_sub_user_record.id) }
|
|
119
|
-
|
|
120
|
-
it 'when setting #user_id it will set #user from sub class' do
|
|
121
|
-
expect(given_a_post.user).to eq given_a_sub_user_record
|
|
122
|
-
expect(given_a_post.user.class).to eq SubUserMock
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
context 'without a sub class' do
|
|
128
|
-
|
|
129
|
-
let(:given_a_sub_user_record) { UserMock.create }
|
|
130
|
-
let(:given_a_post) { MicropostMock.create(user_id: given_a_sub_user_record.id) }
|
|
131
|
-
|
|
132
|
-
it 'when setting #user_id it will set #user from sub class' do
|
|
133
|
-
expect(given_a_post.user).to eq given_a_sub_user_record
|
|
134
|
-
expect(given_a_post.user.class).to eq UserMock
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
after(:each) do
|
|
142
|
-
ActiveMocker::LoadedMocks.clear_all
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
end
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
require 'active_mocker/active_mock'
|
|
2
|
-
Object.send(:remove_const, "MicropostMock") if Object.const_defined?("MicropostMock")
|
|
3
|
-
|
|
4
|
-
class MicropostMock < ActiveMock::Base
|
|
5
|
-
|
|
6
|
-
MAGIC_ID_NUMBER = 90
|
|
7
|
-
|
|
8
|
-
MAGIC_ID_STRING = "F-1"
|
|
9
|
-
|
|
10
|
-
class << self
|
|
11
|
-
|
|
12
|
-
def attributes
|
|
13
|
-
@attributes ||= HashWithIndifferentAccess.new({"id"=>nil, "content"=>nil, "user_id"=>nil, "up_votes"=>nil, "created_at"=>nil, "updated_at"=>nil})
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def types
|
|
17
|
-
@types ||= { id: build_type(Fixnum), content: build_type(String), user_id: build_type(Fixnum), up_votes: build_type(Fixnum), created_at: build_type(DateTime), updated_at: build_type(DateTime) }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def associations
|
|
21
|
-
@associations ||= {:user=>nil}
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def model_instance_methods
|
|
25
|
-
@model_instance_methods ||= {"display_name"=>:not_implemented}
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def model_class_methods
|
|
29
|
-
@model_class_methods ||= {"from_users_followed_by"=>:not_implemented}
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def mocked_class
|
|
33
|
-
'Micropost'
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def column_names
|
|
37
|
-
attribute_names
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def attribute_names
|
|
41
|
-
@attribute_names ||= ["id", "content", "user_id", "up_votes", "created_at", "updated_at"]
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def primary_key
|
|
45
|
-
"id"
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
##################################
|
|
51
|
-
# Attributes getter/setters #
|
|
52
|
-
##################################
|
|
53
|
-
|
|
54
|
-
def id
|
|
55
|
-
read_attribute(:id)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def id=(val)
|
|
59
|
-
write_attribute(:id, val)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def content
|
|
63
|
-
read_attribute(:content)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def content=(val)
|
|
67
|
-
write_attribute(:content, val)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def user_id
|
|
71
|
-
read_attribute(:user_id)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def user_id=(val)
|
|
75
|
-
write_attribute(:user_id, val)
|
|
76
|
-
association = classes('User').try(:find, user_id)
|
|
77
|
-
write_association(:user,association) unless association.nil?
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def up_votes
|
|
81
|
-
read_attribute(:up_votes)
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def up_votes=(val)
|
|
85
|
-
write_attribute(:up_votes, val)
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def created_at
|
|
89
|
-
read_attribute(:created_at)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def created_at=(val)
|
|
93
|
-
write_attribute(:created_at, val)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def updated_at
|
|
97
|
-
read_attribute(:updated_at)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def updated_at=(val)
|
|
101
|
-
write_attribute(:updated_at, val)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
##################################
|
|
105
|
-
# Associations #
|
|
106
|
-
##################################
|
|
107
|
-
|
|
108
|
-
# belongs_to
|
|
109
|
-
def user
|
|
110
|
-
@associations[:user]
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def user=(val)
|
|
114
|
-
@associations[:user] = val
|
|
115
|
-
write_attribute(:user_id, val.id) if val.respond_to?(:persisted?) && val.persisted?
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def build_user(attributes={}, &block)
|
|
119
|
-
association = classes('User').try(:new, attributes, &block)
|
|
120
|
-
write_association(:user, association) unless association.nil?
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def create_user(attributes={}, &block)
|
|
124
|
-
association = classes('User').try(:create,attributes, &block)
|
|
125
|
-
write_association(:user, nil) unless association.nil?
|
|
126
|
-
end
|
|
127
|
-
alias_method :create_user!, :create_user
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
##################################
|
|
131
|
-
# Model Methods getter/setters #
|
|
132
|
-
##################################
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
def display_name()
|
|
136
|
-
block = model_instance_methods['display_name']
|
|
137
|
-
self.class.is_implemented(block, '#display_name')
|
|
138
|
-
block.call(*[])
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
def self.from_users_followed_by(user=nil)
|
|
142
|
-
block = model_class_methods['from_users_followed_by']
|
|
143
|
-
is_implemented(block, '::from_users_followed_by')
|
|
144
|
-
block.call(*[user])
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
private
|
|
148
|
-
|
|
149
|
-
def self.reload
|
|
150
|
-
load __FILE__
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
end
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
require 'active_mocker/active_mock'
|
|
2
|
-
Object.send(:remove_const, "RelationshipMock") if Object.const_defined?("RelationshipMock")
|
|
3
|
-
|
|
4
|
-
class RelationshipMock < ActiveMock::Base
|
|
5
|
-
|
|
6
|
-
class << self
|
|
7
|
-
|
|
8
|
-
def attributes
|
|
9
|
-
@attributes ||= HashWithIndifferentAccess.new({"id"=>nil, "follower_id"=>nil, "followed_id"=>nil, "created_at"=>nil, "updated_at"=>nil})
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def types
|
|
13
|
-
@types ||= { id: build_type(Fixnum), follower_id: build_type(Fixnum), followed_id: build_type(Fixnum), created_at: build_type(DateTime), updated_at: build_type(DateTime) }
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def associations
|
|
17
|
-
@associations ||= {:follower=>nil, :followed=>nil}
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def model_instance_methods
|
|
21
|
-
@model_instance_methods ||= {}
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def model_class_methods
|
|
25
|
-
@model_class_methods ||= {}
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def mocked_class
|
|
29
|
-
'Relationship'
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def column_names
|
|
33
|
-
attribute_names
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def attribute_names
|
|
37
|
-
@attribute_names ||= ["id", "follower_id", "followed_id", "created_at", "updated_at"]
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def primary_key
|
|
41
|
-
"id"
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
##################################
|
|
47
|
-
# Attributes getter/setters #
|
|
48
|
-
##################################
|
|
49
|
-
|
|
50
|
-
def id
|
|
51
|
-
read_attribute(:id)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def id=(val)
|
|
55
|
-
write_attribute(:id, val)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def follower_id
|
|
59
|
-
read_attribute(:follower_id)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def follower_id=(val)
|
|
63
|
-
write_attribute(:follower_id, val)
|
|
64
|
-
association = classes('User').try(:find, follower_id)
|
|
65
|
-
write_association(:follower,association) unless association.nil?
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def followed_id
|
|
69
|
-
read_attribute(:followed_id)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def followed_id=(val)
|
|
73
|
-
write_attribute(:followed_id, val)
|
|
74
|
-
association = classes('User').try(:find, followed_id)
|
|
75
|
-
write_association(:followed,association) unless association.nil?
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def created_at
|
|
79
|
-
read_attribute(:created_at)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def created_at=(val)
|
|
83
|
-
write_attribute(:created_at, val)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def updated_at
|
|
87
|
-
read_attribute(:updated_at)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def updated_at=(val)
|
|
91
|
-
write_attribute(:updated_at, val)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
##################################
|
|
95
|
-
# Associations #
|
|
96
|
-
##################################
|
|
97
|
-
|
|
98
|
-
# belongs_to
|
|
99
|
-
def follower
|
|
100
|
-
@associations[:follower]
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def follower=(val)
|
|
104
|
-
@associations[:follower] = val
|
|
105
|
-
write_attribute(:follower_id, val.id) if val.respond_to?(:persisted?) && val.persisted?
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def build_follower(attributes={}, &block)
|
|
109
|
-
association = classes('User').try(:new, attributes, &block)
|
|
110
|
-
write_association(:follower, association) unless association.nil?
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def create_follower(attributes={}, &block)
|
|
114
|
-
association = classes('User').try(:create,attributes, &block)
|
|
115
|
-
write_association(:follower, nil) unless association.nil?
|
|
116
|
-
end
|
|
117
|
-
alias_method :create_follower!, :create_follower
|
|
118
|
-
|
|
119
|
-
def followed
|
|
120
|
-
@associations[:followed]
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def followed=(val)
|
|
124
|
-
@associations[:followed] = val
|
|
125
|
-
write_attribute(:followed_id, val.id) if val.respond_to?(:persisted?) && val.persisted?
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def build_followed(attributes={}, &block)
|
|
129
|
-
association = classes('User').try(:new, attributes, &block)
|
|
130
|
-
write_association(:followed, association) unless association.nil?
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
def create_followed(attributes={}, &block)
|
|
134
|
-
association = classes('User').try(:create,attributes, &block)
|
|
135
|
-
write_association(:followed, nil) unless association.nil?
|
|
136
|
-
end
|
|
137
|
-
alias_method :create_followed!, :create_followed
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
##################################
|
|
141
|
-
# Model Methods getter/setters #
|
|
142
|
-
##################################
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
private
|
|
146
|
-
|
|
147
|
-
def self.reload
|
|
148
|
-
load __FILE__
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
end
|