database_cleaner 1.6.2 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +5 -5
  2. data/lib/database_cleaner.rb +1 -8
  3. metadata +25 -499
  4. data/CONTRIBUTE.markdown +0 -28
  5. data/Gemfile.lock +0 -286
  6. data/History.rdoc +0 -430
  7. data/LICENSE +0 -20
  8. data/README.markdown +0 -518
  9. data/Rakefile +0 -40
  10. data/TODO +0 -3
  11. data/VERSION.yml +0 -4
  12. data/cucumber.yml +0 -1
  13. data/examples/Gemfile +0 -1
  14. data/examples/Gemfile.lock +0 -1
  15. data/examples/config/database.yml.example +0 -8
  16. data/examples/config/redis.yml +0 -8
  17. data/examples/db/sqlite_databases_go_here +0 -0
  18. data/examples/features/example.feature +0 -11
  19. data/examples/features/example_multiple_db.feature +0 -23
  20. data/examples/features/example_multiple_orm.feature +0 -22
  21. data/examples/features/step_definitions/activerecord_steps.rb +0 -31
  22. data/examples/features/step_definitions/couchpotato_steps.rb +0 -31
  23. data/examples/features/step_definitions/datamapper_steps.rb +0 -37
  24. data/examples/features/step_definitions/mongoid_steps.rb +0 -23
  25. data/examples/features/step_definitions/mongomapper_steps.rb +0 -31
  26. data/examples/features/step_definitions/neo4j_steps.rb +0 -23
  27. data/examples/features/step_definitions/ohm_steps.rb +0 -31
  28. data/examples/features/step_definitions/redis_steps.rb +0 -31
  29. data/examples/features/step_definitions/translation_steps.rb +0 -55
  30. data/examples/features/support/env.rb +0 -61
  31. data/examples/lib/activerecord_models.rb +0 -41
  32. data/examples/lib/couchpotato_models.rb +0 -61
  33. data/examples/lib/datamapper_models.rb +0 -50
  34. data/examples/lib/mongoid_models.rb +0 -44
  35. data/examples/lib/mongomapper_models.rb +0 -51
  36. data/examples/lib/neo4j_models.rb +0 -17
  37. data/examples/lib/ohm_models.rb +0 -43
  38. data/examples/lib/redis_models.rb +0 -65
  39. data/examples/lib/sequel_models.rb +0 -9
  40. data/features/cleaning.feature +0 -30
  41. data/features/cleaning_default_strategy.feature +0 -23
  42. data/features/cleaning_multiple_dbs.feature +0 -22
  43. data/features/cleaning_multiple_orms.feature +0 -67
  44. data/features/step_definitions/database_cleaner_steps.rb +0 -33
  45. data/features/support/env.rb +0 -4
  46. data/features/support/feature_runner.rb +0 -39
  47. data/lib/database_cleaner/active_record/base.rb +0 -92
  48. data/lib/database_cleaner/active_record/deletion.rb +0 -106
  49. data/lib/database_cleaner/active_record/transaction.rb +0 -59
  50. data/lib/database_cleaner/active_record/truncation.rb +0 -275
  51. data/lib/database_cleaner/base.rb +0 -164
  52. data/lib/database_cleaner/configuration.rb +0 -131
  53. data/lib/database_cleaner/couch_potato/base.rb +0 -7
  54. data/lib/database_cleaner/couch_potato/truncation.rb +0 -28
  55. data/lib/database_cleaner/cucumber.rb +0 -3
  56. data/lib/database_cleaner/data_mapper/base.rb +0 -21
  57. data/lib/database_cleaner/data_mapper/transaction.rb +0 -28
  58. data/lib/database_cleaner/data_mapper/truncation.rb +0 -172
  59. data/lib/database_cleaner/generic/base.rb +0 -29
  60. data/lib/database_cleaner/generic/transaction.rb +0 -11
  61. data/lib/database_cleaner/generic/truncation.rb +0 -40
  62. data/lib/database_cleaner/mongo/base.rb +0 -16
  63. data/lib/database_cleaner/mongo/truncation.rb +0 -62
  64. data/lib/database_cleaner/mongo/truncation_mixin.rb +0 -26
  65. data/lib/database_cleaner/mongo2/base.rb +0 -16
  66. data/lib/database_cleaner/mongo2/truncation_mixin.rb +0 -39
  67. data/lib/database_cleaner/mongo_mapper/base.rb +0 -20
  68. data/lib/database_cleaner/mongo_mapper/truncation.rb +0 -19
  69. data/lib/database_cleaner/mongoid/base.rb +0 -20
  70. data/lib/database_cleaner/mongoid/truncation.rb +0 -49
  71. data/lib/database_cleaner/moped/base.rb +0 -39
  72. data/lib/database_cleaner/moped/truncation.rb +0 -9
  73. data/lib/database_cleaner/moped/truncation_base.rb +0 -40
  74. data/lib/database_cleaner/neo4j/base.rb +0 -62
  75. data/lib/database_cleaner/neo4j/deletion.rb +0 -16
  76. data/lib/database_cleaner/neo4j/transaction.rb +0 -35
  77. data/lib/database_cleaner/neo4j/truncation.rb +0 -9
  78. data/lib/database_cleaner/null_strategy.rb +0 -20
  79. data/lib/database_cleaner/ohm/truncation.rb +0 -15
  80. data/lib/database_cleaner/redis/base.rb +0 -37
  81. data/lib/database_cleaner/redis/truncation.rb +0 -26
  82. data/lib/database_cleaner/sequel/base.rb +0 -22
  83. data/lib/database_cleaner/sequel/deletion.rb +0 -47
  84. data/lib/database_cleaner/sequel/transaction.rb +0 -40
  85. data/lib/database_cleaner/sequel/truncation.rb +0 -78
  86. data/spec/database_cleaner/active_record/base_spec.rb +0 -188
  87. data/spec/database_cleaner/active_record/transaction_spec.rb +0 -176
  88. data/spec/database_cleaner/active_record/truncation/mysql2_spec.rb +0 -38
  89. data/spec/database_cleaner/active_record/truncation/mysql_spec.rb +0 -38
  90. data/spec/database_cleaner/active_record/truncation/postgresql_spec.rb +0 -75
  91. data/spec/database_cleaner/active_record/truncation/shared_fast_truncation.rb +0 -40
  92. data/spec/database_cleaner/active_record/truncation/sqlite3_spec.rb +0 -40
  93. data/spec/database_cleaner/active_record/truncation_spec.rb +0 -180
  94. data/spec/database_cleaner/base_spec.rb +0 -617
  95. data/spec/database_cleaner/configuration_spec.rb +0 -345
  96. data/spec/database_cleaner/couch_potato/truncation_spec.rb +0 -41
  97. data/spec/database_cleaner/data_mapper/base_spec.rb +0 -30
  98. data/spec/database_cleaner/data_mapper/transaction_spec.rb +0 -23
  99. data/spec/database_cleaner/data_mapper/truncation/sqlite3_spec.rb +0 -41
  100. data/spec/database_cleaner/data_mapper/truncation_spec.rb +0 -11
  101. data/spec/database_cleaner/generic/base_spec.rb +0 -61
  102. data/spec/database_cleaner/generic/truncation_spec.rb +0 -118
  103. data/spec/database_cleaner/mongo/mongo_examples.rb +0 -26
  104. data/spec/database_cleaner/mongo/truncation_spec.rb +0 -72
  105. data/spec/database_cleaner/mongo_mapper/base_spec.rb +0 -33
  106. data/spec/database_cleaner/mongo_mapper/mongo_examples.rb +0 -8
  107. data/spec/database_cleaner/mongo_mapper/truncation_spec.rb +0 -74
  108. data/spec/database_cleaner/moped/moped_examples.rb +0 -32
  109. data/spec/database_cleaner/moped/truncation_spec.rb +0 -80
  110. data/spec/database_cleaner/neo4j/base_spec.rb +0 -43
  111. data/spec/database_cleaner/neo4j/transaction_spec.rb +0 -25
  112. data/spec/database_cleaner/null_strategy_spec.rb +0 -28
  113. data/spec/database_cleaner/ohm/truncation_spec.rb +0 -70
  114. data/spec/database_cleaner/redis/base_spec.rb +0 -43
  115. data/spec/database_cleaner/redis/truncation_spec.rb +0 -63
  116. data/spec/database_cleaner/sequel/base_spec.rb +0 -32
  117. data/spec/database_cleaner/sequel/deletion_spec.rb +0 -58
  118. data/spec/database_cleaner/sequel/transaction_spec.rb +0 -21
  119. data/spec/database_cleaner/sequel/truncation/sqlite3_spec.rb +0 -0
  120. data/spec/database_cleaner/sequel/truncation_spec.rb +0 -182
  121. data/spec/database_cleaner/shared_strategy.rb +0 -15
  122. data/spec/rcov.opts +0 -1
  123. data/spec/spec_helper.rb +0 -21
  124. data/spec/support/active_record/database_setup.rb +0 -6
  125. data/spec/support/active_record/migrations/20150101010000_create_users.rb +0 -14
  126. data/spec/support/active_record/migrations/20150101020000_create_agents.rb +0 -14
  127. data/spec/support/active_record/mysql2_setup.rb +0 -39
  128. data/spec/support/active_record/mysql_setup.rb +0 -38
  129. data/spec/support/active_record/postgresql_setup.rb +0 -48
  130. data/spec/support/active_record/schema_setup.rb +0 -17
  131. data/spec/support/active_record/sqlite3_setup.rb +0 -40
  132. data/spec/support/data_mapper/schema_setup.rb +0 -15
  133. data/spec/support/data_mapper/sqlite3_setup.rb +0 -39
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using activerecord$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/datamapper_models"
4
- #
5
- # DatabaseCleaner[:datamapper, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:datamapper, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using activerecord$/ do
10
- ActiveRecordWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using activerecord$/ do |widget_count|
14
- ActiveRecordWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using activerecord$/ do
18
- ActiveRecordWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using activerecord$/ do
22
- ActiveRecordWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using activerecord$/ do |widget_count|
26
- ActiveRecordWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using activerecord$/ do |widget_count|
30
- ActiveRecordWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using couchpotato$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/couchpotato_models"
4
- #
5
- # DatabaseCleaner[:couchpotato, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:couchpotato, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using couchpotato$/ do
10
- CouchPotatoWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using couchpotato$/ do |widget_count|
14
- CouchPotatoWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using couchpotato$/ do
18
- CouchPotatoWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using couchpotato$/ do
22
- CouchPotatoWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using couchpotato$/ do |widget_count|
26
- CouchPotatoWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using couchpotato$/ do |widget_count|
30
- CouchPotatoWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,37 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using datamapper$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/datamapper_models"
4
- #
5
- # DatabaseCleaner[:datamapper, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:datamapper, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using datamapper$/ do
10
- DataMapperWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using datamapper$/ do |widget_count|
14
- DataMapperWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using datamapper$/ do
18
- begin
19
- DataMapperWidgetUsingDatabaseOne.create!
20
- rescue StandardError => e
21
- BREAK = e.backtrace
22
- debugger
23
- DataMapperWidgetUsingDatabaseOne.create!
24
- end
25
- end
26
-
27
- When /^I create a widget in another db using datamapper$/ do
28
- DataMapperWidgetUsingDatabaseTwo.create!
29
- end
30
-
31
- Then /^I should see ([\d]+) widget in one db using datamapper$/ do |widget_count|
32
- DataMapperWidgetUsingDatabaseOne.count.should == widget_count.to_i
33
- end
34
-
35
- Then /^I should see ([\d]+) widget in another db using datamapper$/ do |widget_count|
36
- DataMapperWidgetUsingDatabaseTwo.count.should == widget_count.to_i
37
- end
@@ -1,23 +0,0 @@
1
- When /^I create a widget using mongoid$/ do
2
- MongoidWidget.create!( :id => rand(1000)+1000)
3
- end
4
-
5
- Then /^I should see ([\d]+) widget using mongoid$/ do |widget_count|
6
- MongoidWidget.count.should == widget_count.to_i
7
- end
8
-
9
- When /^I create a widget in one db using mongoid$/ do
10
- MongoidWidgetUsingDatabaseOne.create!
11
- end
12
-
13
- When /^I create a widget in another db using mongoid$/ do
14
- MongoidWidgetUsingDatabaseTwo.create!
15
- end
16
-
17
- Then /^I should see ([\d]+) widget in one db using mongoid$/ do |widget_count|
18
- MongoidWidgetUsingDatabaseOne.count.should == widget_count.to_i
19
- end
20
-
21
- Then /^I should see ([\d]+) widget in another db using mongoid$/ do |widget_count|
22
- MongoidWidgetUsingDatabaseTwo.count.should == widget_count.to_i
23
- end
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using mongomapper$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/datamapper_models"
4
- #
5
- # DatabaseCleaner[:datamapper, {:connection => :one} ].strategy = :truncation
6
- # DatabaseCleaner[:datamapper, {:connection => :two} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using mongomapper$/ do
10
- MongoMapperWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using mongomapper$/ do |widget_count|
14
- MongoMapperWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using mongomapper$/ do
18
- MongoMapperWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using mongomapper$/ do
22
- MongoMapperWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using mongomapper$/ do |widget_count|
26
- MongoMapperWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using mongomapper$/ do |widget_count|
30
- MongoMapperWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,23 +0,0 @@
1
- When /^I create a widget using neo4j$/ do
2
- Neo4jWidget.create!
3
- end
4
-
5
- Then /^I should see ([\d]+) widget using neo4j$/ do |widget_count|
6
- Neo4jWidget.count.should == widget_count.to_i
7
- end
8
-
9
- When /^I create a widget in one db using neo4j$/ do
10
- Neo4jWidgetUsingDatabaseOne.create!
11
- end
12
-
13
- When /^I create a widget in another db using neo4j$/ do
14
- Neo4jWidgetUsingDatabaseTwo.create!
15
- end
16
-
17
- Then /^I should see ([\d]+) widget in one db using neo4j$/ do |widget_count|
18
- Neo4jWidgetUsingDatabaseOne.count.should == widget_count.to_i
19
- end
20
-
21
- Then /^I should see ([\d]+) widget in another db using neo4j$/ do |widget_count|
22
- Neo4jWidgetUsingDatabaseTwo.count.should == widget_count.to_i
23
- end
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using ohm$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/ohm_models"
4
- #
5
- # DatabaseCleaner[:ohm, {:connection => ENV['REDIS_URL_ONE']} ].strategy = :truncation
6
- # DatabaseCleaner[:ohm, {:connection => ENV['REDIS_URL_TWO']} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using ohm$/ do
10
- OhmWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using ohm$/ do |widget_count|
14
- OhmWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using ohm$/ do
18
- OhmWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using ohm$/ do
22
- OhmWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using ohm$/ do |widget_count|
26
- OhmWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using ohm$/ do |widget_count|
30
- OhmWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,31 +0,0 @@
1
- Given /^I have setup database cleaner to clean multiple databases using redis$/ do
2
- #DatabaseCleaner
3
- # require "#{File.dirname(__FILE__)}/../../../lib/redis_models"
4
- #
5
- # DatabaseCleaner[:redis, {:connection => ENV['REDIS_URL_ONE']} ].strategy = :truncation
6
- # DatabaseCleaner[:redis, {:connection => ENV['REDIS_URL_TWO']} ].strategy = :truncation
7
- end
8
-
9
- When /^I create a widget using redis$/ do
10
- RedisWidget.create!
11
- end
12
-
13
- Then /^I should see ([\d]+) widget using redis$/ do |widget_count|
14
- RedisWidget.count.should == widget_count.to_i
15
- end
16
-
17
- When /^I create a widget in one db using redis$/ do
18
- RedisWidgetUsingDatabaseOne.create!
19
- end
20
-
21
- When /^I create a widget in another db using redis$/ do
22
- RedisWidgetUsingDatabaseTwo.create!
23
- end
24
-
25
- Then /^I should see ([\d]+) widget in one db using redis$/ do |widget_count|
26
- RedisWidgetUsingDatabaseOne.count.should == widget_count.to_i
27
- end
28
-
29
- Then /^I should see ([\d]+) widget in another db using redis$/ do |widget_count|
30
- RedisWidgetUsingDatabaseTwo.count.should == widget_count.to_i
31
- end
@@ -1,55 +0,0 @@
1
- When /^I create a widget$/ do
2
- step "I create a widget using #{ENV['ORM'].downcase}"
3
- end
4
-
5
- Then /^I should see 1 widget$/ do
6
- step "I should see 1 widget using #{ENV['ORM'].downcase}"
7
- end
8
-
9
- When /^I create a widget in one orm$/ do
10
- step "I create a widget using #{ENV['ORM'].downcase}"
11
- end
12
-
13
- When /^I create a widget in another orm$/ do
14
- step "I create a widget using #{ENV['ANOTHER_ORM'].downcase}"
15
- end
16
-
17
- Then /^I should see 1 widget in one orm$/ do
18
- step "I should see 1 widget using #{ENV['ORM'].downcase}"
19
- end
20
-
21
- Then /^I should see 1 widget in another orm$/ do
22
- step "I should see 1 widget using #{ENV['ANOTHER_ORM'].downcase}"
23
- end
24
-
25
- Then /^I should see 0 widget in another orm$/ do
26
- step "I should see 0 widget using #{ENV['ANOTHER_ORM'].downcase}"
27
- end
28
-
29
- Then /^I should see 0 widget in one orm$/ do
30
- step "I should see 0 widget using #{ENV['ORM'].downcase}"
31
- end
32
-
33
- When /^I create a widget in one db$/ do
34
- step "I create a widget in one db using #{ENV['ORM'].downcase}"
35
- end
36
-
37
- When /^I create a widget in another db$/ do
38
- step "I create a widget in another db using #{ENV['ORM'].downcase}"
39
- end
40
-
41
- Then /^I should see 1 widget in one db$/ do
42
- step "I should see 1 widget in one db using #{ENV['ORM'].downcase}"
43
- end
44
-
45
- Then /^I should see 1 widget in another db$/ do
46
- step "I should see 1 widget in another db using #{ENV['ORM'].downcase}"
47
- end
48
-
49
- Then /^I should see 0 widget in another db$/ do
50
- step "I should see 0 widget in another db using #{ENV['ORM'].downcase}"
51
- end
52
-
53
- Then /^I should see 0 widget in one db$/ do
54
- step "I should see 0 widget in one db using #{ENV['ORM'].downcase}"
55
- end
@@ -1,61 +0,0 @@
1
- #Hilarious as it seems, this is necessary so bundle exec cucumber works for mongoid cukeage (I'm assuming mongomapper is automatically present because its a git repo)
2
- Object.send(:remove_const, 'MongoMapper') if defined?(::MongoMapper)
3
-
4
- require 'rubygems'
5
- require 'bundler'
6
-
7
- Bundler.setup
8
- require 'rspec/expectations'
9
- #require 'ruby-debug'
10
-
11
- DB_DIR = "#{File.dirname(__FILE__)}/../../db"
12
-
13
- orm = ENV['ORM']
14
- another_orm = ENV['ANOTHER_ORM']
15
- strategy = ENV['STRATEGY']
16
- multiple_db = ENV['MULTIPLE_DBS']
17
-
18
- config = YAML::load(File.open("#{File.dirname(__FILE__)}/../../config/redis.yml"))
19
- ENV['REDIS_URL'] = config['test']['url']
20
- ENV['REDIS_URL_ONE'] = config['one']['url']
21
- ENV['REDIS_URL_TWO'] = config['two']['url']
22
-
23
- if orm && strategy
24
- $:.unshift(File.dirname(__FILE__) + '/../../../lib')
25
- require 'database_cleaner'
26
- require 'database_cleaner/cucumber'
27
- require "#{File.dirname(__FILE__)}/../../lib/#{orm.downcase}_models"
28
-
29
- if another_orm
30
- require "#{File.dirname(__FILE__)}/../../lib/#{another_orm.downcase}_models"
31
- end
32
-
33
- if multiple_db
34
- DatabaseCleaner.app_root = "#{File.dirname(__FILE__)}/../.."
35
- orm_sym = orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym
36
-
37
- case orm_sym
38
- when :mongo_mapper
39
- DatabaseCleaner[ orm_sym, {:connection => 'database_cleaner_test_one'} ].strategy = strategy.to_sym
40
- DatabaseCleaner[ orm_sym, {:connection => 'database_cleaner_test_two'} ].strategy = strategy.to_sym
41
- when :redis, :ohm
42
- DatabaseCleaner[ orm_sym, {:connection => ENV['REDIS_URL_ONE']} ].strategy = strategy.to_sym
43
- DatabaseCleaner[ orm_sym, {:connection => ENV['REDIS_URL_TWO']} ].strategy = strategy.to_sym
44
- when :active_record
45
- DatabaseCleaner[:active_record, {:model => ActiveRecordWidgetUsingDatabaseOne} ].strategy = strategy.to_sym
46
- DatabaseCleaner[:active_record, {:model => ActiveRecordWidgetUsingDatabaseTwo} ].strategy = strategy.to_sym
47
- else
48
- DatabaseCleaner[ orm_sym, {:connection => :one} ].strategy = strategy.to_sym
49
- DatabaseCleaner[ orm_sym, {:connection => :two} ].strategy = strategy.to_sym
50
- end
51
-
52
- elsif another_orm
53
- DatabaseCleaner[ orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym ].strategy = strategy.to_sym
54
- DatabaseCleaner[ another_orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym ].strategy = strategy.to_sym
55
- else
56
- DatabaseCleaner.strategy = strategy.to_sym unless strategy == "default"
57
- end
58
-
59
- else
60
- raise "Run 'ORM=ActiveRecord|DataMapper|MongoMapper|CouchPotato|Ohm|Redis [ANOTHER_ORM=...] [MULTIPLE_DBS=true] STRATEGY=transaction|truncation|default cucumber examples/features'"
61
- end
@@ -1,41 +0,0 @@
1
- require 'active_record'
2
- databases_config = {
3
- "one" => {"adapter" => "#{"jdbc" if defined?(JRUBY_VERSION)}sqlite3", "database" => "#{DB_DIR}/activerecord_one.db"},
4
- "two" => {"adapter" => "#{"jdbc" if defined?(JRUBY_VERSION)}sqlite3", "database" => "#{DB_DIR}/activerecord_two.db"}
5
- }
6
-
7
- File.open("#{File.dirname(__FILE__)}/../config/database.yml", 'w') do |file|
8
- file.write(YAML.dump(databases_config))
9
- end
10
-
11
- ["two","one"].each do |db|
12
- ActiveRecord::Base.establish_connection(databases_config[db])
13
- ActiveRecord::Base.connection.execute('DROP TABLE IF EXISTS "active_record_widgets"')
14
- ActiveRecord::Base.connection.execute('DROP TABLE IF EXISTS "active_record_widget_using_database_ones"')
15
- ActiveRecord::Base.connection.execute('DROP TABLE IF EXISTS "active_record_widget_using_database_twos"')
16
-
17
- ActiveRecord::Schema.define(:version => 1) do
18
- create_table :active_record_widgets do |t|
19
- t.string :name
20
- end
21
-
22
- create_table :active_record_widget_using_database_ones do |t|
23
- t.string :name
24
- end
25
-
26
- create_table :active_record_widget_using_database_twos do |t|
27
- t.string :name
28
- end
29
- end
30
- end
31
-
32
- class ActiveRecordWidget < ActiveRecord::Base
33
- end
34
-
35
- class ActiveRecordWidgetUsingDatabaseOne < ActiveRecord::Base
36
- establish_connection(:adapter => "#{"jdbc" if defined?(JRUBY_VERSION)}sqlite3", :database => "#{DB_DIR}/activerecord_one.db")
37
- end
38
-
39
- class ActiveRecordWidgetUsingDatabaseTwo < ActiveRecord::Base
40
- establish_connection(:adapter => "#{"jdbc" if defined?(JRUBY_VERSION)}sqlite3", :database => "#{DB_DIR}/activerecord_two.db")
41
- end
@@ -1,61 +0,0 @@
1
- require 'couch_potato'
2
- require 'json/pure' unless defined? ::JSON
3
- ::CouchPotato::Config.database_name = 'couch_potato_test'
4
-
5
- class CouchPotatoWidget
6
- include CouchPotato::Persistence
7
-
8
- property :name
9
- view :by_name, :key => :name
10
-
11
-
12
- # mimic the AR interface used in example_steps
13
-
14
- def self.create!(attrs = {})
15
- CouchPotato.database.save(self.new)
16
- end
17
-
18
- def self.count
19
- CouchPotato.database.view(self.by_name).size
20
- end
21
- end
22
-
23
- class CouchPotatoWidgetUsingDatabaseOne
24
- include CouchPotato::Persistence
25
-
26
- database_name = 'couch_potato_test_one'
27
-
28
- property :name
29
- view :by_name, :key => :name
30
-
31
-
32
- # mimic the AR interface used in example_steps
33
-
34
- def self.create!(attrs = {})
35
- CouchPotato.database.save(self.new)
36
- end
37
-
38
- def self.count
39
- CouchPotato.database.view(self.by_name).size
40
- end
41
- end
42
-
43
- class CouchPotatoWidgetUsingDatabaseTwo
44
- include CouchPotato::Persistence
45
-
46
- database_name = 'couch_potato_test_two'
47
-
48
- property :name
49
- view :by_name, :key => :name
50
-
51
-
52
- # mimic the AR interface used in example_steps
53
-
54
- def self.create!(attrs = {})
55
- CouchPotato.database.save(self.new)
56
- end
57
-
58
- def self.count
59
- CouchPotato.database.view(self.by_name).size
60
- end
61
- end
@@ -1,50 +0,0 @@
1
- require "dm-core"
2
- require "dm-transactions"
3
-
4
- #Datamapper 1.0 requires you to require dm-migrations to automigrate
5
- require "dm-migrations"
6
-
7
- # only to please activerecord API used in database_cleaner/examples/features/step_definitions
8
- # yes, i know that's lazy ...
9
-
10
- require "dm-validations"
11
- require "dm-aggregates"
12
-
13
- DataMapper.setup(:default, "sqlite3:#{DB_DIR}/datamapper_default.db")
14
- DataMapper.setup(:one, "sqlite3:#{DB_DIR}/datamapper_one.db")
15
- DataMapper.setup(:two, "sqlite3:#{DB_DIR}/datamapper_two.db")
16
-
17
- class DataMapperWidget
18
- include DataMapper::Resource
19
-
20
- property :id, Serial
21
- property :name, String
22
- end
23
-
24
- class DataMapperWidgetUsingDatabaseOne
25
- include DataMapper::Resource
26
-
27
- def self.default_repository_name
28
- :one
29
- end
30
-
31
- property :id, Serial
32
- property :name, String
33
-
34
- end
35
-
36
- class DataMapperWidgetUsingDatabaseTwo
37
- include DataMapper::Resource
38
-
39
- def self.default_repository_name
40
- :two
41
- end
42
-
43
- property :id, Serial
44
- property :name, String
45
-
46
- end
47
-
48
- DataMapperWidget.auto_migrate!
49
- DataMapperWidgetUsingDatabaseOne.auto_migrate!
50
- DataMapperWidgetUsingDatabaseTwo.auto_migrate!
@@ -1,44 +0,0 @@
1
- require 'mongoid'
2
-
3
- Mongoid.configure do |config|
4
- config.master = Mongo::Connection.new.db('database_cleaner_test')
5
- end
6
-
7
- class MongoidWidget
8
- include Mongoid::Document
9
- field :id, :type => Integer
10
- field :name
11
-
12
- class << self
13
- #mongoid doesn't seem to provide this...
14
- def create!(*args)
15
- new(*args).save!
16
- end
17
- end
18
- end
19
-
20
- class MongoidWidgetUsingDatabaseOne
21
- include Mongoid::Document
22
- field :id, :type => Integer
23
- field :name
24
-
25
- class << self
26
- #mongoid doesn't seem to provide this...
27
- def create!(*args)
28
- new(*args).save!
29
- end
30
- end
31
- end
32
-
33
- class MongoidWidgetUsingDatabaseTwo
34
- include Mongoid::Document
35
- field :id, :type => Integer
36
- field :name
37
-
38
- class << self
39
- #mongoid doesn't seem to provide this...
40
- def create!(*args)
41
- new(*args).save!
42
- end
43
- end
44
- end
@@ -1,51 +0,0 @@
1
- require 'mongo_mapper'
2
-
3
- ::MongoMapper.connection = Mongo::Connection.new('127.0.0.1')
4
- ::MongoMapper.database = 'database_cleaner_test'
5
-
6
- class MongoMapperWidget
7
- include MongoMapper::Document
8
- key :id, Integer
9
- key :name, String
10
-
11
- class << self
12
- #mongomapper doesn't seem to provide this...
13
- def create!(*args)
14
- new(*args).save!
15
- end
16
- end
17
- end
18
-
19
- class MongoMapperWidgetUsingDatabaseOne
20
- include MongoMapper::Document
21
-
22
- connection = Mongo::Connection.new('127.0.0.1')
23
- set_database_name = 'database_cleaner_test_one'
24
-
25
- key :id, Integer
26
- key :name, String
27
-
28
- class << self
29
- #mongomapper doesn't seem to provide this...
30
- def create!(*args)
31
- new(*args).save!
32
- end
33
- end
34
- end
35
-
36
- class MongoMapperWidgetUsingDatabaseTwo
37
- include MongoMapper::Document
38
-
39
- connection = Mongo::Connection.new('127.0.0.1')
40
- set_database_name = 'database_cleaner_test_two'
41
-
42
- key :id, Integer
43
- key :name, String
44
-
45
- class << self
46
- #mongomapper doesn't seem to provide this...
47
- def create!(*args)
48
- new(*args).save!
49
- end
50
- end
51
- end
@@ -1,17 +0,0 @@
1
- require 'neo4j-core'
2
-
3
- class Neo4jWidget < Neo4j::Node
4
- def self.create!(*args)
5
- create(*args)
6
- end
7
-
8
- def self.count
9
- Neo4j::Session.query.match('n').pluck('COUNT(n)').first
10
- end
11
- end
12
-
13
- class Neo4jWidgetUsingDatabaseOne < Neo4jWidget
14
- end
15
-
16
- class Neo4jWidgetUsingDatabaseTwo < Neo4jWidget
17
- end
@@ -1,43 +0,0 @@
1
- require 'ohm'
2
-
3
- Ohm.connect :url => ENV['REDIS_URL']
4
-
5
- class OhmWidget < Ohm::Model
6
- attribute :name
7
-
8
- def self.create!(attrs = {})
9
- new({:name => 'some widget'}.merge(attrs)).save
10
- end
11
-
12
- def self.count
13
- all.count
14
- end
15
-
16
- end
17
-
18
- class OhmWidgetUsingDatabaseOne < Ohm::Model
19
- connect :url => ENV['REDIS_URL_ONE']
20
- attribute :name
21
-
22
- def self.create!(attrs = {})
23
- new({:name => 'a widget using database one'}.merge(attrs)).save
24
- end
25
-
26
- def self.count
27
- all.count
28
- end
29
-
30
- end
31
-
32
- class OhmWidgetUsingDatabaseTwo < Ohm::Model
33
- connect :url => ENV['REDIS_URL_TWO']
34
- attribute :name
35
-
36
- def self.create!(attrs = {})
37
- new({:name => 'a widget using database two'}.merge(attrs)).save
38
- end
39
-
40
- def self.count
41
- all.count
42
- end
43
- end