fixture_replacement 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
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