active_mocker 1.4.2 → 1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +35 -29
  4. data/lib/active_mocker.rb +3 -1
  5. data/lib/active_mocker/active_record.rb +27 -5
  6. data/lib/active_mocker/active_record/scope.rb +5 -5
  7. data/lib/active_mocker/active_record/unknown_module.rb +4 -4
  8. data/lib/active_mocker/generate.rb +36 -15
  9. data/lib/active_mocker/loaded_mocks.rb +60 -54
  10. data/lib/active_mocker/mock.rb +24 -0
  11. data/lib/active_mocker/mock/association.rb +6 -0
  12. data/lib/{active_mock → active_mocker/mock}/base.rb +43 -89
  13. data/lib/{active_mock → active_mocker/mock}/collection.rb +14 -7
  14. data/lib/{active_mock → active_mocker/mock}/do_nothing_active_record_methods.rb +7 -1
  15. data/lib/active_mocker/mock/exceptions.rb +25 -0
  16. data/lib/active_mocker/mock/has_and_belongs_to_many.rb +6 -0
  17. data/lib/active_mocker/mock/has_many.rb +60 -0
  18. data/lib/active_mocker/mock/hash_process.rb +19 -0
  19. data/lib/active_mocker/mock/mock_abilities.rb +98 -0
  20. data/lib/{active_mock → active_mocker/mock}/next_id.rb +7 -2
  21. data/lib/{active_mock → active_mocker/mock}/object_inspect.rb +3 -1
  22. data/lib/{active_mock → active_mocker/mock}/queries.rb +32 -29
  23. data/lib/active_mocker/mock/records.rb +62 -0
  24. data/lib/{active_mock → active_mocker/mock}/relation.rb +4 -3
  25. data/lib/active_mocker/mock/template_methods.rb +39 -0
  26. data/lib/active_mocker/mock_template.erb +45 -31
  27. data/lib/active_mocker/model_reader.rb +29 -0
  28. data/lib/active_mocker/model_schema.rb +23 -16
  29. data/lib/active_mocker/model_schema/generate.rb +19 -8
  30. data/lib/active_mocker/railtie.rb +17 -0
  31. data/lib/active_mocker/reparameterize.rb +2 -4
  32. data/lib/active_mocker/rspec_helper.rb +18 -0
  33. data/lib/active_mocker/task.rake +15 -0
  34. data/lib/active_mocker/version.rb +1 -1
  35. metadata +80 -206
  36. data/.gitignore +0 -19
  37. data/.hound.yml +0 -0
  38. data/.travis.yml +0 -5
  39. data/Gemfile +0 -4
  40. data/Rakefile +0 -26
  41. data/active_mocker.gemspec +0 -40
  42. data/lib/active_mock/association.rb +0 -7
  43. data/lib/active_mock/creators.rb +0 -25
  44. data/lib/active_mock/has_and_belongs_to_many.rb +0 -7
  45. data/lib/active_mock/has_many.rb +0 -54
  46. data/lib/active_mock/records.rb +0 -83
  47. data/lib/active_mocker/active_mock.rb +0 -26
  48. data/lib/active_mocker/active_record/const_missing.rb +0 -5
  49. data/lib/active_mocker/class_exists.rb +0 -12
  50. data/lib/active_mocker/const_sets.rb +0 -24
  51. data/lib/active_mocker/mock_task.rb +0 -12
  52. data/sample_app_rails_4/.idea/.generators +0 -8
  53. data/sample_app_rails_4/.idea/.name +0 -1
  54. data/sample_app_rails_4/.idea/.rakeTasks +0 -7
  55. data/sample_app_rails_4/.idea/dataSources.ids +0 -141
  56. data/sample_app_rails_4/.idea/dataSources.xml +0 -36
  57. data/sample_app_rails_4/.idea/dictionaries/zeisler.xml +0 -3
  58. data/sample_app_rails_4/.idea/encodings.xml +0 -5
  59. data/sample_app_rails_4/.idea/inspectionProfiles/Project_Default.xml +0 -20
  60. data/sample_app_rails_4/.idea/inspectionProfiles/profiles_settings.xml +0 -7
  61. data/sample_app_rails_4/.idea/misc.xml +0 -5
  62. data/sample_app_rails_4/.idea/modules.xml +0 -10
  63. data/sample_app_rails_4/.idea/runConfigurations/Development__sample_app_rails_4.xml +0 -28
  64. data/sample_app_rails_4/.idea/runConfigurations/Production__sample_app_rails_4.xml +0 -28
  65. data/sample_app_rails_4/.idea/runConfigurations/spec__sample_app_rails_4.xml +0 -26
  66. data/sample_app_rails_4/.idea/runConfigurations/test__sample_app_rails_4.xml +0 -28
  67. data/sample_app_rails_4/.idea/sample_app_rails_4.iml +0 -262
  68. data/sample_app_rails_4/.idea/scopes/scope_settings.xml +0 -5
  69. data/sample_app_rails_4/.idea/vcs.xml +0 -7
  70. data/sample_app_rails_4/.idea/workspace.xml +0 -619
  71. data/sample_app_rails_4/.rspec +0 -1
  72. data/sample_app_rails_4/.secret +0 -1
  73. data/sample_app_rails_4/Gemfile +0 -13
  74. data/sample_app_rails_4/Guardfile +0 -53
  75. data/sample_app_rails_4/LICENSE +0 -21
  76. data/sample_app_rails_4/README.md +0 -25
  77. data/sample_app_rails_4/README.nitrous.md +0 -20
  78. data/sample_app_rails_4/Rakefile +0 -6
  79. data/sample_app_rails_4/app/assets/images/rails.png +0 -0
  80. data/sample_app_rails_4/app/assets/javascripts/application.js +0 -17
  81. data/sample_app_rails_4/app/assets/javascripts/sessions.js.coffee +0 -3
  82. data/sample_app_rails_4/app/assets/javascripts/static_pages.js.coffee +0 -3
  83. data/sample_app_rails_4/app/assets/javascripts/users.js.coffee +0 -3
  84. data/sample_app_rails_4/app/assets/stylesheets/application.css +0 -13
  85. data/sample_app_rails_4/app/assets/stylesheets/custom.css.scss +0 -246
  86. data/sample_app_rails_4/app/assets/stylesheets/sessions.css.scss +0 -3
  87. data/sample_app_rails_4/app/assets/stylesheets/static_pages.css.scss +0 -3
  88. data/sample_app_rails_4/app/assets/stylesheets/users.css.scss +0 -3
  89. data/sample_app_rails_4/app/controllers/application_controller.rb +0 -6
  90. data/sample_app_rails_4/app/controllers/concerns/.keep +0 -0
  91. data/sample_app_rails_4/app/controllers/microposts_controller.rb +0 -31
  92. data/sample_app_rails_4/app/controllers/relationships_controller.rb +0 -21
  93. data/sample_app_rails_4/app/controllers/sessions_controller.rb +0 -21
  94. data/sample_app_rails_4/app/controllers/static_pages_controller.rb +0 -18
  95. data/sample_app_rails_4/app/controllers/users_controller.rb +0 -80
  96. data/sample_app_rails_4/app/helpers/application_helper.rb +0 -12
  97. data/sample_app_rails_4/app/helpers/sessions_helper.rb +0 -49
  98. data/sample_app_rails_4/app/helpers/static_pages_helper.rb +0 -2
  99. data/sample_app_rails_4/app/helpers/users_helper.rb +0 -10
  100. data/sample_app_rails_4/app/mailers/.keep +0 -0
  101. data/sample_app_rails_4/app/models/.keep +0 -0
  102. data/sample_app_rails_4/app/models/concerns/.keep +0 -0
  103. data/sample_app_rails_4/app/models/micropost.rb +0 -24
  104. data/sample_app_rails_4/app/models/relationship.rb +0 -6
  105. data/sample_app_rails_4/app/models/user.rb +0 -39
  106. data/sample_app_rails_4/app/views/layouts/_footer.html.erb +0 -13
  107. data/sample_app_rails_4/app/views/layouts/_header.html.erb +0 -31
  108. data/sample_app_rails_4/app/views/layouts/_shim.html.erb +0 -3
  109. data/sample_app_rails_4/app/views/layouts/application.html.erb +0 -22
  110. data/sample_app_rails_4/app/views/microposts/_micropost.html.erb +0 -11
  111. data/sample_app_rails_4/app/views/relationships/create.js.erb +0 -2
  112. data/sample_app_rails_4/app/views/relationships/destroy.js.erb +0 -2
  113. data/sample_app_rails_4/app/views/sessions/new.html.erb +0 -19
  114. data/sample_app_rails_4/app/views/shared/_error_messages.html.erb +0 -12
  115. data/sample_app_rails_4/app/views/shared/_feed.html.erb +0 -6
  116. data/sample_app_rails_4/app/views/shared/_feed_item.html.erb +0 -15
  117. data/sample_app_rails_4/app/views/shared/_micropost_form.html.erb +0 -7
  118. data/sample_app_rails_4/app/views/shared/_stats.html.erb +0 -15
  119. data/sample_app_rails_4/app/views/shared/_user_info.html.erb +0 -12
  120. data/sample_app_rails_4/app/views/static_pages/about.html.erb +0 -8
  121. data/sample_app_rails_4/app/views/static_pages/contact.html.erb +0 -6
  122. data/sample_app_rails_4/app/views/static_pages/help.html.erb +0 -8
  123. data/sample_app_rails_4/app/views/static_pages/home.html.erb +0 -34
  124. data/sample_app_rails_4/app/views/static_pages/show.html.erb +0 -0
  125. data/sample_app_rails_4/app/views/users/_follow.html.erb +0 -5
  126. data/sample_app_rails_4/app/views/users/_follow_form.html.erb +0 -9
  127. data/sample_app_rails_4/app/views/users/_unfollow.html.erb +0 -5
  128. data/sample_app_rails_4/app/views/users/_user.html.erb +0 -8
  129. data/sample_app_rails_4/app/views/users/edit.html.erb +0 -27
  130. data/sample_app_rails_4/app/views/users/index.html.erb +0 -10
  131. data/sample_app_rails_4/app/views/users/new.html.erb +0 -24
  132. data/sample_app_rails_4/app/views/users/show.html.erb +0 -24
  133. data/sample_app_rails_4/app/views/users/show_follow.html.erb +0 -30
  134. data/sample_app_rails_4/bin/bundle +0 -3
  135. data/sample_app_rails_4/bin/rails +0 -4
  136. data/sample_app_rails_4/bin/rake +0 -4
  137. data/sample_app_rails_4/bin/rspec +0 -16
  138. data/sample_app_rails_4/config.ru +0 -4
  139. data/sample_app_rails_4/config/application.rb +0 -28
  140. data/sample_app_rails_4/config/boot.rb +0 -4
  141. data/sample_app_rails_4/config/database.yml +0 -27
  142. data/sample_app_rails_4/config/environment.rb +0 -5
  143. data/sample_app_rails_4/config/environments/development.rb +0 -25
  144. data/sample_app_rails_4/config/environments/production.rb +0 -79
  145. data/sample_app_rails_4/config/environments/test.rb +0 -38
  146. data/sample_app_rails_4/config/initializers/active_mocker.rb +0 -12
  147. data/sample_app_rails_4/config/initializers/backtrace_silencers.rb +0 -7
  148. data/sample_app_rails_4/config/initializers/filter_parameter_logging.rb +0 -4
  149. data/sample_app_rails_4/config/initializers/inflections.rb +0 -16
  150. data/sample_app_rails_4/config/initializers/mime_types.rb +0 -5
  151. data/sample_app_rails_4/config/initializers/secret_token.rb +0 -22
  152. data/sample_app_rails_4/config/initializers/session_store.rb +0 -3
  153. data/sample_app_rails_4/config/initializers/wrap_parameters.rb +0 -14
  154. data/sample_app_rails_4/config/locales/en.yml +0 -23
  155. data/sample_app_rails_4/config/routes.rb +0 -17
  156. data/sample_app_rails_4/db/migrate/20130311191400_create_users.rb +0 -10
  157. data/sample_app_rails_4/db/migrate/20130311194153_add_index_to_users_email.rb +0 -5
  158. data/sample_app_rails_4/db/migrate/20130311201841_add_password_digest_to_users.rb +0 -5
  159. data/sample_app_rails_4/db/migrate/20130314184954_add_remember_token_to_users.rb +0 -6
  160. data/sample_app_rails_4/db/migrate/20130315015932_add_admin_to_users.rb +0 -5
  161. data/sample_app_rails_4/db/migrate/20130315175534_create_microposts.rb +0 -11
  162. data/sample_app_rails_4/db/migrate/20130315230445_create_relationships.rb +0 -13
  163. data/sample_app_rails_4/db/schema.rb +0 -51
  164. data/sample_app_rails_4/db/seeds.rb +0 -7
  165. data/sample_app_rails_4/features/signing_in.feature +0 -13
  166. data/sample_app_rails_4/features/step_definitions/authentication_steps.rb +0 -30
  167. data/sample_app_rails_4/features/support/env.rb +0 -59
  168. data/sample_app_rails_4/lib/assets/.keep +0 -0
  169. data/sample_app_rails_4/lib/tasks/.keep +0 -0
  170. data/sample_app_rails_4/lib/tasks/active_mocker.rake +0 -10
  171. data/sample_app_rails_4/lib/tasks/cucumber.rake +0 -65
  172. data/sample_app_rails_4/lib/tasks/sample_data.rake +0 -42
  173. data/sample_app_rails_4/lib/unit_logger.rb +0 -22
  174. data/sample_app_rails_4/public/404.html +0 -27
  175. data/sample_app_rails_4/public/422.html +0 -26
  176. data/sample_app_rails_4/public/500.html +0 -26
  177. data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css +0 -5091
  178. data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css.gz +0 -0
  179. data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js +0 -12952
  180. data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js.gz +0 -0
  181. data/sample_app_rails_4/public/assets/glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png +0 -0
  182. data/sample_app_rails_4/public/assets/glyphicons-halflings-white-62b67d9edee3db90d18833087f848d6e.png +0 -0
  183. data/sample_app_rails_4/public/assets/manifest-802de9eb1c853769101852422b620883.json +0 -1
  184. data/sample_app_rails_4/public/assets/rails-231a680f23887d9dd70710ea5efd3c62.png +0 -0
  185. data/sample_app_rails_4/public/favicon.ico +0 -0
  186. data/sample_app_rails_4/public/robots.txt +0 -5
  187. data/sample_app_rails_4/script/cucumber +0 -10
  188. data/sample_app_rails_4/spec/compare_mocker_and_record_spec.rb +0 -1038
  189. data/sample_app_rails_4/spec/factories.rb +0 -17
  190. data/sample_app_rails_4/spec/micropost_mock_spec.rb +0 -145
  191. data/sample_app_rails_4/spec/mocks/micropost_mock.rb +0 -153
  192. data/sample_app_rails_4/spec/mocks/relationship_mock.rb +0 -151
  193. data/sample_app_rails_4/spec/mocks/user_mock.rb +0 -215
  194. data/sample_app_rails_4/spec/reload_spec.rb +0 -45
  195. data/sample_app_rails_4/spec/spec_helper.rb +0 -46
  196. data/sample_app_rails_4/spec/user_mock_spec.rb +0 -197
  197. data/sample_app_rails_4/vendor/assets/javascripts/.keep +0 -0
  198. data/sample_app_rails_4/vendor/assets/stylesheets/.keep +0 -0
  199. data/spec/lib/acitve_mock/queriable_spec.rb +0 -207
  200. data/spec/lib/active_mocker/db_to_ruby_type_spec.rb +0 -124
  201. data/spec/lib/active_mocker/generate_spec.rb +0 -40
  202. data/spec/lib/active_mocker/loaded_mocks_spec.rb +0 -167
  203. data/spec/lib/active_mocker/logger_spec.rb +0 -32
  204. data/spec/lib/active_mocker/model_reader_spec.rb +0 -206
  205. data/spec/lib/active_mocker/model_schema/generate_spec.rb +0 -111
  206. data/spec/lib/active_mocker/model_schema_spec.rb +0 -145
  207. data/spec/lib/active_mocker/schema_reader_spec.rb +0 -109
  208. data/spec/lib/model.rb +0 -43
  209. data/spec/lib/person.rb +0 -9
  210. data/spec/lib/readme_spec.rb +0 -199
  211. data/spec/lib/reparameterize_spec.rb +0 -202
  212. data/spec/lib/schema.rb +0 -40
  213. data/spec/unit_logger.rb +0 -24
@@ -1,109 +0,0 @@
1
- require 'rspec'
2
- $:.unshift File.expand_path('../../', __FILE__)
3
- require 'string_reader'
4
- require 'file_reader'
5
- require 'active_mocker/table'
6
- require 'active_mocker/field'
7
- require 'active_mocker/active_record/schema'
8
- require 'active_mocker/schema_reader'
9
- require 'active_support/all'
10
-
11
- describe ActiveMocker::SchemaReader do
12
-
13
- let(:schema_file){ File.join(File.expand_path('../../', __FILE__), 'schema.rb') }
14
-
15
- let(:example_schema){
16
- StringReader.new(
17
- <<-eos
18
- ActiveRecord::Schema.define(version: 20140327205359) do
19
-
20
- create_table "people", force: true do |t|
21
- t.integer "company_id"
22
- t.string "first_name", limit: 128
23
- t.string "middle_name", limit: 128
24
- t.string "last_name", limit: 128
25
- t.string "address_1", limit: 200
26
- t.string "address_2", limit: 100
27
- t.string "city", limit: 100
28
- t.integer "state_id"
29
- t.integer "zip_code_id"
30
- t.string "title", limit: 150
31
- t.string "department", limit: 150
32
- t.string "person_email", limit: 150
33
- t.string "work_phone", limit: 20
34
- t.string "cell_phone", limit: 20
35
- t.string "home_phone", limit: 20
36
- t.string "fax", limit: 20
37
-
38
- end
39
-
40
- create_table "zip_codes", force: true do |t|
41
- t.string "zip_code", limit: 9
42
- t.integer "state_id"
43
- t.integer "cola_by_fip_id"
44
- t.string "city_name", limit: 100
45
- t.string "County_name", limit: 100
46
- t.decimal "City_Latitude", precision: 8, scale: 4
47
- t.decimal "City_Longitude", precision: 8, scale: 4
48
- end
49
-
50
- add_index "zip_codes", ["zip_code"], name: "index_zip_codes_on_zip_code", unique: true, using: :btree
51
-
52
- end
53
-
54
- eos
55
- )
56
- }
57
-
58
- context 'inject string_reader as file_reader' do
59
-
60
- let(:subject){described_class.new({schema_file:nil, file_reader: example_schema, clear_cache: true})}
61
-
62
- let!(:search){subject.search(nil)}
63
-
64
- it 'let not read a file but return a string instead to be evaluated' do
65
- tables = subject.tables
66
- expect(tables.first.name).to eq 'people'
67
- expect(tables.last.name).to eq 'zip_codes'
68
- expect(tables.last.fields.count).to eq 8
69
- end
70
-
71
- end
72
-
73
- context 'reads from file' do
74
-
75
- let(:subject){described_class.new({schema_file: schema_file})}
76
-
77
-
78
- describe '#search' do
79
-
80
- it 'takes a table name and will return its attributes' do
81
- described_class.new({schema_file: schema_file}).search(nil)
82
- end
83
-
84
- end
85
-
86
- let(:tables){subject.search("people")}
87
-
88
- describe '#column_names' do
89
-
90
- it 'returns an array of columns from the schema.rb' do
91
- tables
92
- expect(subject.tables.first.name).to eq 'people'
93
- expect(subject.tables.first.column_names).to eq ["id", "company_id", "first_name", "middle_name", "last_name", "address_1", "address_2", "city", "state_id", "zip_code_id", "title", "department", "person_email", "work_phone", "cell_phone", "home_phone", "fax", "user_id_assistant", "birth_date", "needs_review", "created_at", "updated_at"]
94
- end
95
-
96
- end
97
-
98
- describe '#fields' do
99
-
100
- it 'returns all fields from schema' do
101
- tables
102
- expect(subject.tables.first.fields[1].to_h).to eq({:name=>"company_id", :type=>:integer, :options=>{}})
103
- end
104
-
105
- end
106
-
107
- end
108
-
109
- end
@@ -1,43 +0,0 @@
1
- class Model < ActiveRecord::Base
2
- include FooBar
3
- extend Baz
4
-
5
- include ModelCore::PlanService::Dah
6
-
7
- belongs_to :company, class_name: 'PlanServiceCategory', foreign_key: 'category_id'
8
- belongs_to :person, through: 'customer'
9
- has_many :users
10
- has_one :account
11
- has_and_belongs_to_many :disclosures
12
- devise :database_authenticatable, :registerable,
13
- :recoverable, :rememberable, :trackable, :validatable
14
-
15
- def self.duper(value, *args)
16
-
17
- end
18
-
19
- scope :named, ->(name, value=nil, options={}) { }
20
-
21
- def foo(foobar, value)
22
-
23
- end
24
-
25
- def self.foo
26
-
27
- end
28
-
29
- def super
30
-
31
- end
32
-
33
- def self.bang!
34
-
35
- end
36
-
37
- private
38
-
39
- def bar
40
-
41
- end
42
-
43
- end
@@ -1,9 +0,0 @@
1
- class Person < ActiveRecord::Base
2
-
3
- belongs_to :zip_code
4
-
5
- def full_name
6
- "#{first_name} #{last_name}"
7
- end
8
-
9
- end
@@ -1,199 +0,0 @@
1
- # require 'rspec'
2
- # $:.unshift File.expand_path('../../../active_mocker', __FILE__)
3
- # require 'active_mocker'
4
- # require 'string_reader'
5
- #
6
- # describe 'ReadMe', pending:true do
7
- #
8
- # before(:each) do
9
- # ActiveMocker.configure do |config|
10
- # # Required Options
11
- # config.schema_file = ""
12
- # config.model_dir = ""
13
- # config.schema_file_reader = schema_file
14
- # config.model_file_reader = model_file
15
- # config.mock_dir =
16
- # config.logger = Logger.new(STDOUT)
17
- # end
18
- # end
19
- #
20
- # let(:schema_file){
21
- # StringReader.new <<-eos
22
- #
23
- # ActiveRecord::Schema.define(version: 20140327205359) do
24
- #
25
- # create_table "people", force: true do |t|
26
- # t.integer "account_id"
27
- # t.string "first_name", limit: 128
28
- # t.string "last_name", limit: 128
29
- # t.string "address", limit: 200
30
- # t.string "city", limit: 100
31
- # end
32
- #
33
- # end
34
- #
35
- # eos
36
- # }
37
- #
38
- # let(:model_file){
39
- # StringReader.new <<-eos
40
- # class Person < ActiveRecord::Base
41
- # belongs_to :account
42
- #
43
- # def bar(name, type=nil)
44
- # puts name
45
- # end
46
- #
47
- # def self.bar
48
- # end
49
- #
50
- # end
51
- # eos
52
- # }
53
- #
54
- # before do
55
- # ActiveMocker.mock('Person')
56
- # end
57
- #
58
- # let(:person_mock){PersonMock}
59
- #
60
- # describe 'Usage' do
61
- #
62
- # it 'Mock a Person' do
63
- # expect(ActiveMocker.mock('Person')).to eq PersonMock
64
- # end
65
- #
66
- # it '::column_names' do
67
- # expect(PersonMock.column_names).to eq ["id", "account_id", "first_name", "last_name", "address", "city"]
68
- # end
69
- #
70
- # it '::new' do
71
- # expect(PersonMock.new(first_name: "Dustin", last_name: "Zeisler").inspect).to eq("#<PersonMock id: nil, account_id: nil, first_name: \"Dustin\", last_name: \"Zeisler\", address: nil, city: nil>")
72
- # end
73
- #
74
- # it '#first_name' do
75
- # person_mock = PersonMock.new(first_name: "Dustin", last_name: "Zeisler")
76
- # expect( person_mock.first_name).to eq 'Dustin'
77
- # end
78
- #
79
- # end
80
- #
81
- # describe 'When schema.rb changes, the mock fails' do
82
- #
83
- # let(:schema_file){
84
- # StringReader.new <<-eos
85
- #
86
- # ActiveRecord::Schema.define(version: 20140327205359) do
87
- #
88
- # create_table "people", force: true do |t|
89
- # t.integer "account_id"
90
- # t.string "f_name", limit: 128
91
- # t.string "l_name", limit: 128
92
- # t.string "address", limit: 200
93
- # t.string "city", limit: 100
94
- # end
95
- #
96
- # end
97
- #
98
- # eos
99
- # }
100
- #
101
- # it 'fails' do
102
- # expect{ActiveMocker.mock('Person').new(first_name: "Dustin", last_name: "Zeisler")}.to raise_error(RuntimeError)
103
- # end
104
- #
105
- # end
106
- #
107
- # describe 'Mocking instance and class methods' do
108
- #
109
- # it 'bar is not Implemented' do
110
- # expect{person_mock.bar}.to raise_error( RuntimeError, '::bar is not Implemented for Class: PersonMock' )
111
- # end
112
- #
113
- # it 'is implemented' do
114
- # person_mock.mock_instance_method(:bar) do |name, type=nil|
115
- # "Now implemented with #{name} and #{type}"
116
- # end
117
- #
118
- # expect(person_mock.new.bar('foo', 'type')).to eq "Now implemented with foo and type"
119
- #
120
- # person_mock.mock_class_method(:bar) do
121
- # "Now implemented"
122
- # end
123
- #
124
- # expect(person_mock.bar).to eq "Now implemented"
125
- #
126
- # end
127
- #
128
- # it 'has argument error' do
129
- #
130
- # person_mock.mock_instance_method(:bar) do |name, type=nil|
131
- # "Now implemented with #{name} and #{type}"
132
- # end
133
- #
134
- # expect{person_mock.new.bar}.to raise_error(ArgumentError, 'wrong number of arguments (0 for 1..2)')
135
- #
136
- # end
137
- #
138
- # end
139
- #
140
- # describe 'When the model changes, the mock fails' do
141
- #
142
- # context 'different arguments' do
143
- #
144
- # let(:model_file){
145
- # StringReader.new <<-eos
146
- # class Person < ActiveRecord::Base
147
- # belongs_to :account
148
- #
149
- # def bar(name)
150
- # puts name
151
- # end
152
- #
153
- # end
154
- # eos
155
- # }
156
- #
157
- # it 'has argument error' do
158
- #
159
- # person_mock.mock_instance_method(:bar) do |name, type=nil|
160
- # "Now implemented with #{name} and #{type}"
161
- # end
162
- #
163
- # expect{person_mock.new.bar('foo', 'type')}.to raise_error(ArgumentError, 'wrong number of arguments (2 for 1)')
164
- #
165
- # end
166
- #
167
- # end
168
- #
169
- # context 'different method name' do
170
- #
171
- # let(:model_file){
172
- # StringReader.new <<-eos
173
- # class Person < ActiveRecord::Base
174
- # belongs_to :account
175
- #
176
- # def foo(name)
177
- # puts name
178
- # end
179
- #
180
- # end
181
- #
182
- # eos
183
- # }
184
- #
185
- # it 'when method name changes' do
186
- #
187
- # person_mock.mock_instance_method(:bar) do |name, type=nil|
188
- # "Now implemented with #{name} and #{type}"
189
- # end
190
- #
191
- # expect{person_mock.new.bar}.to raise_error(NoMethodError)
192
- #
193
- # end
194
- #
195
- # end
196
- #
197
- # end
198
- #
199
- # end
@@ -1,202 +0,0 @@
1
- require 'rspec'
2
- require 'rspec/given'
3
- $:.unshift File.expand_path('../../../lib', __FILE__)
4
- require 'active_mocker/reparameterize'
5
-
6
- describe ActiveMocker::Reparameterize do
7
-
8
- describe '::call' do
9
-
10
- describe 'create parameter arguments' do
11
-
12
- context 'keyreq' do
13
-
14
- Given(:parameters) { [[:keyreq, 'named_param']] }
15
-
16
- When(:call) { described_class.call(parameters) }
17
-
18
- Then { expect(call).to eq('named_param:') }
19
-
20
- end
21
-
22
- context 'key' do
23
-
24
- Given(:parameters) { [[:key, 'named_param']] }
25
-
26
- When (:call) { described_class.call(parameters) }
27
-
28
- Then { expect(call).to eq('named_param: nil') }
29
-
30
- end
31
-
32
- context 'req' do
33
-
34
- Given(:parameters) { [[:req, 'req_param']] }
35
-
36
- When (:call) { described_class.call(parameters) }
37
-
38
- Then { expect(call).to eq('req_param') }
39
-
40
- end
41
-
42
- context 'rest' do
43
-
44
- Given(:parameters) { [[:rest, 'rest_param']] }
45
-
46
- When (:call) { described_class.call(parameters) }
47
-
48
- Then { expect(call).to eq('*rest_param') }
49
-
50
- end
51
-
52
-
53
- context 'opt' do
54
-
55
- Given(:parameters) { [[:opt, 'opt_param']] }
56
-
57
- When(:call) { described_class.call(parameters) }
58
-
59
- Then { expect(call).to eq('opt_param=nil') }
60
-
61
- end
62
-
63
- context 'req, rest' do
64
-
65
- Given(:parameters) { [[:req, 'req_param'], [:rest, 'rest_param']] }
66
-
67
- When(:call) { described_class.call(parameters) }
68
-
69
- Then { expect(call).to eq('req_param, *rest_param') }
70
-
71
- end
72
-
73
- context 'req, opt' do
74
-
75
- Given(:parameters) { [[:req, 'req_param'], [:opt, 'opt_param']] }
76
-
77
- When(:call) { described_class.call(parameters) }
78
-
79
- Then { expect(call).to eq('req_param, opt_param=nil') }
80
-
81
- end
82
-
83
- context 'key, keyreq' do
84
-
85
- Given(:parameters) { [[:key, 'named_param'], [:keyreq, 'named_param']] }
86
-
87
- When(:call) { described_class.call(parameters) }
88
-
89
- Then { expect(call).to eq('named_param: nil, named_param:') }
90
-
91
- end
92
-
93
- context 'rep, key' do
94
-
95
- Given(:parameters) { [[:key, 'key_param'], [:req, 'req_param']] }
96
-
97
- When (:call) { described_class.call(parameters) }
98
-
99
- Then { expect(call).to eq('key_param: nil, req_param') }
100
-
101
- end
102
-
103
- end
104
-
105
- context 'create a parameter passable list' do
106
-
107
- context 'keyreq' do
108
-
109
- Given(:parameters) { [[:keyreq, 'named_param']] }
110
-
111
- When (:call) { described_class.call(parameters, param_list: true) }
112
-
113
- Then { expect(call).to eq('named_param: named_param') }
114
-
115
- end
116
-
117
- context 'key' do
118
-
119
- Given(:parameters) { [[:key, 'named_param']] }
120
-
121
- When (:call) { described_class.call(parameters, param_list: true) }
122
-
123
- Then { expect(call).to eq('named_param: named_param') }
124
-
125
- end
126
-
127
- context 'req' do
128
-
129
- Given(:parameters) { [[:req, 'req_param']] }
130
-
131
- When (:call) { described_class.call(parameters, param_list: true) }
132
-
133
- Then { expect(call).to eq('req_param') }
134
-
135
- end
136
-
137
- context 'rest' do
138
-
139
- Given(:parameters) { [[:rest, 'rest_param']] }
140
-
141
- When (:call) { described_class.call(parameters, param_list: true) }
142
-
143
- Then { expect(call).to eq('rest_param') }
144
-
145
- end
146
-
147
-
148
- context 'opt' do
149
-
150
- Given(:parameters) { [[:opt, 'opt_param']] }
151
-
152
- When (:call) { described_class.call(parameters, param_list: true) }
153
-
154
- Then { expect(call).to eq('opt_param') }
155
-
156
- end
157
-
158
- context 'req, rest' do
159
-
160
- Given(:parameters) { [[:req, 'req_param'], [:rest, 'rest_param']] }
161
-
162
- When (:call) { described_class.call(parameters, param_list: true) }
163
-
164
- Then { expect(call).to eq('req_param, rest_param') }
165
-
166
- end
167
-
168
- context 'req, opt' do
169
-
170
- Given(:parameters) { [[:req, 'req_param'], [:opt, 'opt_param']] }
171
-
172
- When (:call) { described_class.call(parameters, param_list: true) }
173
-
174
- Then { expect(call).to eq('req_param, opt_param') }
175
-
176
- end
177
-
178
- context 'key, keyreq' do
179
-
180
- Given(:parameters) { [[:key, 'key_param'], [:keyreq, 'keyreq_param']] }
181
-
182
- When (:call) { described_class.call(parameters, param_list: true) }
183
-
184
- Then { expect(call).to eq('key_param: key_param, keyreq_param: keyreq_param') }
185
-
186
- end
187
-
188
- context 'rep, key' do
189
-
190
- Given(:parameters) { [[:key, 'key_param'], [:req, 'req_param']] }
191
-
192
- When (:call) { described_class.call(parameters, param_list: true) }
193
-
194
- Then { expect(call).to eq('key_param: key_param, req_param') }
195
-
196
- end
197
-
198
- end
199
-
200
- end
201
-
202
- end