fixture_replacement 3.0.1

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.
Files changed (63) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG.rdoc +720 -0
  3. data/GPL_LICENSE +674 -0
  4. data/MIT_LICENSE +22 -0
  5. data/README.rdoc +154 -0
  6. data/Rakefile +8 -0
  7. data/TODO.rdoc +22 -0
  8. data/VERSION +1 -0
  9. data/contributions.rdoc +48 -0
  10. data/etc/bug_reports/2007_09_28_linoj.txt +51 -0
  11. data/etc/google_analytics +6 -0
  12. data/etc/patches/2007_09_14_default_model_name_with_arguments.diff +26 -0
  13. data/etc/patches/2007_10_14_active_record_specs.diff +396 -0
  14. data/etc/patches/2007_10_14_protected_attributes.diff +26 -0
  15. data/etc/patches/2007_10_14_send_patch.diff +79 -0
  16. data/etc/patches/2007_10_14_spelling_error_in_comments.diff +13 -0
  17. data/etc/patches/2007_10_17_protected_attributes_second_go.diff +212 -0
  18. data/etc/patches/2007_10_18_README.diff +137 -0
  19. data/etc/patches/2007_10_19_readme_tweak.diff +12 -0
  20. data/etc/patches/2007_10_19_silence_migration.diff +12 -0
  21. data/etc/patches/2007_10_25_changed_classify_to_camelize.diff +38 -0
  22. data/etc/patches/2007_11_20_fixture_replacement_generator_should_not_reload_environment_or_boot.patch +13 -0
  23. data/etc/patches/2007_11_20_string_random_refactor_and_extension.patch +104 -0
  24. data/etc/patches/2007_11_20_string_random_refactor_and_extension_v2.patch +108 -0
  25. data/fixture_replacement.gemspec +126 -0
  26. data/lib/fixture_replacement.rb +16 -0
  27. data/lib/fixture_replacement/attribute_builder.rb +129 -0
  28. data/lib/fixture_replacement/class_methods.rb +45 -0
  29. data/lib/fixture_replacement/method_generator.rb +38 -0
  30. data/lib/fixture_replacement/version.rb +13 -0
  31. data/lib/fr.rb +1 -0
  32. data/philosophy_and_bugs.rdoc +128 -0
  33. data/rake_tasks/code_quality.rb +37 -0
  34. data/rake_tasks/docs.rb +59 -0
  35. data/rake_tasks/gem.rb +27 -0
  36. data/rake_tasks/specs.rb +7 -0
  37. data/rake_tasks/tests.rb +7 -0
  38. data/rake_tasks/website.rb +11 -0
  39. data/spec/fixture_replacement/attribute_builder_spec.rb +162 -0
  40. data/spec/fixture_replacement/fixture_replacement_spec.rb +96 -0
  41. data/spec/fixture_replacement/fixtures/classes.rb +78 -0
  42. data/spec/fixture_replacement/fr_spec.rb +7 -0
  43. data/spec/fixture_replacement/integration/attr_protected_attributes_spec.rb +71 -0
  44. data/spec/fixture_replacement/integration/attributes_for_with_invalid_keys_spec.rb +14 -0
  45. data/spec/fixture_replacement/integration/attributes_from_spec_without_block.rb +52 -0
  46. data/spec/fixture_replacement/integration/create_method_spec.rb +61 -0
  47. data/spec/fixture_replacement/integration/cyclic_dependency_spec.rb +32 -0
  48. data/spec/fixture_replacement/integration/default_warnings_spec.rb +29 -0
  49. data/spec/fixture_replacement/integration/extend_spec.rb +37 -0
  50. data/spec/fixture_replacement/integration/has_and_belongs_to_many_spec.rb +64 -0
  51. data/spec/fixture_replacement/integration/new_method_spec.rb +96 -0
  52. data/spec/fixture_replacement/integration/private_methods_spec.rb +43 -0
  53. data/spec/fixture_replacement/integration/public_methods_spec.rb +21 -0
  54. data/spec/fixture_replacement/integration/valid_attributes_spec.rb +41 -0
  55. data/spec/fixture_replacement/integration/validation_spec.rb +54 -0
  56. data/spec/fixture_replacement/regressions/2008_01_21_random_string_with_sti_spec.rb +71 -0
  57. data/spec/fixture_replacement/version_spec.rb +7 -0
  58. data/spec/spec.opts +1 -0
  59. data/spec/spec_helper.rb +16 -0
  60. data/spec/spec_helpers.rb +117 -0
  61. data/test/test_helper.rb +21 -0
  62. data/test/unit/user_test.rb +57 -0
  63. metadata +143 -0
@@ -0,0 +1,16 @@
1
+ require File.dirname(__FILE__) + "/spec_helpers"
2
+ include SpecHelperFunctions
3
+ setup_database_connection
4
+
5
+ require File.dirname(__FILE__) + "/../lib/fixture_replacement"
6
+ require File.dirname(__FILE__) + "/fixture_replacement/fixtures/classes"
7
+
8
+ Spec::Runner.configure do |config|
9
+ config.prepend_before(:each) do
10
+ FixtureReplacement::AttributeBuilder.clear_out_instances!
11
+ end
12
+
13
+ config.prepend_after(:each) do
14
+ FixtureReplacement::AttributeBuilder.clear_out_instances!
15
+ end
16
+ end
@@ -0,0 +1,117 @@
1
+ module SpecHelperFunctions
2
+ def setup_database_connection
3
+ require 'rubygems'
4
+ require 'sqlite3'
5
+ require 'active_record'
6
+
7
+ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
8
+ ActiveRecord::Migration.verbose = false
9
+
10
+ ActiveRecord::Schema.define do
11
+ create_table :users, :force => true do |t|
12
+ t.column :key, :string
13
+ t.column :other_key, :string
14
+ t.column :gender_id, :integer
15
+ t.column :username, :string
16
+ end
17
+
18
+ create_table :players, :force => true do |t|
19
+ t.column :username, :string
20
+ t.column :key, :string
21
+ end
22
+
23
+ create_table :genders, :force => true do |t|
24
+ t.column :sex, :string
25
+ end
26
+
27
+ create_table :aliens, :force => true do |t|
28
+ t.column :gender_id, :string
29
+ end
30
+
31
+ create_table :admins, :force => true do |t|
32
+ t.column :admin_status, :boolean
33
+ t.column :name, :string
34
+ t.column :username, :string
35
+ t.column :key, :string
36
+ t.column :other_key, :string
37
+ end
38
+
39
+ create_table :items, :force => true do |t|
40
+ t.column :category, :integer
41
+ t.column :type, :string
42
+ t.column :name, :string
43
+ end
44
+
45
+ create_table :categories, :force => true do |t|
46
+ t.column :name, :string
47
+ end
48
+
49
+ create_table :subscribers, :force => true do |t|
50
+ t.column :first_name, :string
51
+ end
52
+
53
+ create_table :subscriptions, :force => true do |t|
54
+ t.column :name, :string
55
+ end
56
+
57
+ create_table :subscribers_subscriptions, :force => true, :id => false do |t|
58
+ t.column :subscriber_id, :integer
59
+ t.column :subscription_id, :integer
60
+ end
61
+
62
+ create_table :events do |t|
63
+ t.column :created_at, :datetime
64
+ t.column :updated_at, :datetime
65
+ end
66
+
67
+ create_table :schedules do |t|
68
+ t.integer :event_id
69
+ end
70
+
71
+ create_table :posts do |t|
72
+ t.timestamps
73
+ end
74
+
75
+ create_table :comments do |t|
76
+ t.integer :post_id
77
+ t.timestamps
78
+ end
79
+
80
+ create_table :no_validations do |t|
81
+ t.timestamps
82
+ end
83
+
84
+ create_table :validate_names do |t|
85
+ t.string :name
86
+ end
87
+
88
+ create_table :validate_name_twos do |t|
89
+ t.string :name
90
+ end
91
+
92
+ create_table :address_with_valid_cities do |t|
93
+ t.string :city
94
+ end
95
+
96
+ create_table :address_with_valid_city_and_states do |t|
97
+ t.string :city
98
+ t.string :state
99
+ end
100
+ end
101
+
102
+ def mock_fr_module(&block)
103
+ mod = Module.new
104
+ mod.extend(FixtureReplacement::ClassMethods)
105
+ mod.instance_eval(&block)
106
+ mod
107
+ end
108
+
109
+ def use_module(&block)
110
+ mod = mock_fr_module(&block)
111
+
112
+ obj = Object.new
113
+ obj.extend mod
114
+ obj
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,21 @@
1
+
2
+ require 'rubygems'
3
+ require 'sqlite3'
4
+ require 'active_record'
5
+ require 'active_support'
6
+
7
+ require 'test/unit'
8
+
9
+ RAILS_ROOT = "."
10
+
11
+ require File.dirname(__FILE__) + "/../spec/spec_helpers"
12
+ include SpecHelperFunctions
13
+
14
+ setup_database_connection
15
+
16
+ require File.dirname(__FILE__) + "/../lib/fixture_replacement"
17
+ require File.dirname(__FILE__) + "/../spec/fixture_replacement/fixtures/classes"
18
+
19
+
20
+ class Test::Unit::TestCase
21
+ end
@@ -0,0 +1,57 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ module ::FixtureReplacement
4
+
5
+ attributes_for :gender do |g|
6
+ g.sex = "male"
7
+ end
8
+
9
+ attributes_for :user do |u|
10
+ u.username = scott
11
+ u.key = "something"
12
+ u.gender = new_gender
13
+ end
14
+
15
+ private
16
+ def scott
17
+ "Scott Taylor"
18
+ end
19
+ end
20
+
21
+
22
+ class UserTest < Test::Unit::TestCase
23
+
24
+ def setup
25
+ extend FixtureReplacement
26
+ end
27
+
28
+ def test_true_should_be_true
29
+ assert_equal true, true
30
+ end
31
+
32
+ def test_be_able_to_create_with_create_user
33
+ assert_equal create_user.class, User
34
+ end
35
+
36
+ def test_user_has_default_gender_with_create_user
37
+ assert create_user.gender.kind_of?(Gender)
38
+ assert_equal create_user.gender.sex, "male"
39
+ end
40
+
41
+ def test_user_has_default_gender_with_new_user
42
+ assert new_user.gender.kind_of?(Gender)
43
+ assert_equal new_user.gender.sex, "male"
44
+ end
45
+
46
+ def test_create_user_should_have_user_key_something
47
+ assert_equal create_user.key, "something"
48
+ end
49
+
50
+ def test_new_user_should_have_user_key_something
51
+ assert_equal new_user.key, "something"
52
+ end
53
+
54
+ def test_testcase_should_not_raise_an_error_when_sending_new_user
55
+ assert self.send(:new_user)
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fixture_replacement
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Scott Taylor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-21 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: |
17
+ FixtureReplacement is a Rails plugin that provides a simple way to
18
+ quickly populate your test database with model objects without having to manage multiple,
19
+ brittle fixture files. You can easily set up complex object graphs (with models which
20
+ reference other models) and add new objects on the fly.
21
+
22
+ email: scott@railsnewbie.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.rdoc
29
+ files:
30
+ - .gitignore
31
+ - CHANGELOG.rdoc
32
+ - GPL_LICENSE
33
+ - MIT_LICENSE
34
+ - README.rdoc
35
+ - Rakefile
36
+ - TODO.rdoc
37
+ - VERSION
38
+ - contributions.rdoc
39
+ - etc/bug_reports/2007_09_28_linoj.txt
40
+ - etc/google_analytics
41
+ - etc/patches/2007_09_14_default_model_name_with_arguments.diff
42
+ - etc/patches/2007_10_14_active_record_specs.diff
43
+ - etc/patches/2007_10_14_protected_attributes.diff
44
+ - etc/patches/2007_10_14_send_patch.diff
45
+ - etc/patches/2007_10_14_spelling_error_in_comments.diff
46
+ - etc/patches/2007_10_17_protected_attributes_second_go.diff
47
+ - etc/patches/2007_10_18_README.diff
48
+ - etc/patches/2007_10_19_readme_tweak.diff
49
+ - etc/patches/2007_10_19_silence_migration.diff
50
+ - etc/patches/2007_10_25_changed_classify_to_camelize.diff
51
+ - etc/patches/2007_11_20_fixture_replacement_generator_should_not_reload_environment_or_boot.patch
52
+ - etc/patches/2007_11_20_string_random_refactor_and_extension.patch
53
+ - etc/patches/2007_11_20_string_random_refactor_and_extension_v2.patch
54
+ - fixture_replacement.gemspec
55
+ - lib/fixture_replacement.rb
56
+ - lib/fixture_replacement/attribute_builder.rb
57
+ - lib/fixture_replacement/class_methods.rb
58
+ - lib/fixture_replacement/method_generator.rb
59
+ - lib/fixture_replacement/version.rb
60
+ - lib/fr.rb
61
+ - philosophy_and_bugs.rdoc
62
+ - rake_tasks/code_quality.rb
63
+ - rake_tasks/docs.rb
64
+ - rake_tasks/gem.rb
65
+ - rake_tasks/specs.rb
66
+ - rake_tasks/tests.rb
67
+ - rake_tasks/website.rb
68
+ - spec/fixture_replacement/attribute_builder_spec.rb
69
+ - spec/fixture_replacement/fixture_replacement_spec.rb
70
+ - spec/fixture_replacement/fixtures/classes.rb
71
+ - spec/fixture_replacement/fr_spec.rb
72
+ - spec/fixture_replacement/integration/attr_protected_attributes_spec.rb
73
+ - spec/fixture_replacement/integration/attributes_for_with_invalid_keys_spec.rb
74
+ - spec/fixture_replacement/integration/attributes_from_spec_without_block.rb
75
+ - spec/fixture_replacement/integration/create_method_spec.rb
76
+ - spec/fixture_replacement/integration/cyclic_dependency_spec.rb
77
+ - spec/fixture_replacement/integration/default_warnings_spec.rb
78
+ - spec/fixture_replacement/integration/extend_spec.rb
79
+ - spec/fixture_replacement/integration/has_and_belongs_to_many_spec.rb
80
+ - spec/fixture_replacement/integration/new_method_spec.rb
81
+ - spec/fixture_replacement/integration/private_methods_spec.rb
82
+ - spec/fixture_replacement/integration/public_methods_spec.rb
83
+ - spec/fixture_replacement/integration/valid_attributes_spec.rb
84
+ - spec/fixture_replacement/integration/validation_spec.rb
85
+ - spec/fixture_replacement/regressions/2008_01_21_random_string_with_sti_spec.rb
86
+ - spec/fixture_replacement/version_spec.rb
87
+ - spec/spec.opts
88
+ - spec/spec_helper.rb
89
+ - spec/spec_helpers.rb
90
+ - test/test_helper.rb
91
+ - test/unit/user_test.rb
92
+ has_rdoc: true
93
+ homepage: http://replacefixtures.rubyforge.org
94
+ licenses: []
95
+
96
+ post_install_message:
97
+ rdoc_options:
98
+ - --charset=UTF-8
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: "0"
106
+ version:
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: "0"
112
+ version:
113
+ requirements: []
114
+
115
+ rubyforge_project:
116
+ rubygems_version: 1.3.5
117
+ signing_key:
118
+ specification_version: 3
119
+ summary: The original fixture replacement solution for rails
120
+ test_files:
121
+ - spec/fixture_replacement/attribute_builder_spec.rb
122
+ - spec/fixture_replacement/fixture_replacement_spec.rb
123
+ - spec/fixture_replacement/fixtures/classes.rb
124
+ - spec/fixture_replacement/fr_spec.rb
125
+ - spec/fixture_replacement/integration/attr_protected_attributes_spec.rb
126
+ - spec/fixture_replacement/integration/attributes_for_with_invalid_keys_spec.rb
127
+ - spec/fixture_replacement/integration/attributes_from_spec_without_block.rb
128
+ - spec/fixture_replacement/integration/create_method_spec.rb
129
+ - spec/fixture_replacement/integration/cyclic_dependency_spec.rb
130
+ - spec/fixture_replacement/integration/default_warnings_spec.rb
131
+ - spec/fixture_replacement/integration/extend_spec.rb
132
+ - spec/fixture_replacement/integration/has_and_belongs_to_many_spec.rb
133
+ - spec/fixture_replacement/integration/new_method_spec.rb
134
+ - spec/fixture_replacement/integration/private_methods_spec.rb
135
+ - spec/fixture_replacement/integration/public_methods_spec.rb
136
+ - spec/fixture_replacement/integration/valid_attributes_spec.rb
137
+ - spec/fixture_replacement/integration/validation_spec.rb
138
+ - spec/fixture_replacement/regressions/2008_01_21_random_string_with_sti_spec.rb
139
+ - spec/fixture_replacement/version_spec.rb
140
+ - spec/spec_helper.rb
141
+ - spec/spec_helpers.rb
142
+ - test/test_helper.rb
143
+ - test/unit/user_test.rb