database_cleaner 1.6.2 → 2.0.0
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 +5 -5
- data/lib/database_cleaner.rb +1 -8
- metadata +18 -498
- data/CONTRIBUTE.markdown +0 -28
- data/Gemfile.lock +0 -286
- data/History.rdoc +0 -430
- data/LICENSE +0 -20
- data/README.markdown +0 -518
- data/Rakefile +0 -40
- data/TODO +0 -3
- data/VERSION.yml +0 -4
- data/cucumber.yml +0 -1
- data/examples/Gemfile +0 -1
- data/examples/Gemfile.lock +0 -1
- data/examples/config/database.yml.example +0 -8
- data/examples/config/redis.yml +0 -8
- data/examples/db/sqlite_databases_go_here +0 -0
- data/examples/features/example.feature +0 -11
- data/examples/features/example_multiple_db.feature +0 -23
- data/examples/features/example_multiple_orm.feature +0 -22
- data/examples/features/step_definitions/activerecord_steps.rb +0 -31
- data/examples/features/step_definitions/couchpotato_steps.rb +0 -31
- data/examples/features/step_definitions/datamapper_steps.rb +0 -37
- data/examples/features/step_definitions/mongoid_steps.rb +0 -23
- data/examples/features/step_definitions/mongomapper_steps.rb +0 -31
- data/examples/features/step_definitions/neo4j_steps.rb +0 -23
- data/examples/features/step_definitions/ohm_steps.rb +0 -31
- data/examples/features/step_definitions/redis_steps.rb +0 -31
- data/examples/features/step_definitions/translation_steps.rb +0 -55
- data/examples/features/support/env.rb +0 -61
- data/examples/lib/activerecord_models.rb +0 -41
- data/examples/lib/couchpotato_models.rb +0 -61
- data/examples/lib/datamapper_models.rb +0 -50
- data/examples/lib/mongoid_models.rb +0 -44
- data/examples/lib/mongomapper_models.rb +0 -51
- data/examples/lib/neo4j_models.rb +0 -17
- data/examples/lib/ohm_models.rb +0 -43
- data/examples/lib/redis_models.rb +0 -65
- data/examples/lib/sequel_models.rb +0 -9
- data/features/cleaning.feature +0 -30
- data/features/cleaning_default_strategy.feature +0 -23
- data/features/cleaning_multiple_dbs.feature +0 -22
- data/features/cleaning_multiple_orms.feature +0 -67
- data/features/step_definitions/database_cleaner_steps.rb +0 -33
- data/features/support/env.rb +0 -4
- data/features/support/feature_runner.rb +0 -39
- data/lib/database_cleaner/active_record/base.rb +0 -92
- data/lib/database_cleaner/active_record/deletion.rb +0 -106
- data/lib/database_cleaner/active_record/transaction.rb +0 -59
- data/lib/database_cleaner/active_record/truncation.rb +0 -275
- data/lib/database_cleaner/base.rb +0 -164
- data/lib/database_cleaner/configuration.rb +0 -131
- data/lib/database_cleaner/couch_potato/base.rb +0 -7
- data/lib/database_cleaner/couch_potato/truncation.rb +0 -28
- data/lib/database_cleaner/cucumber.rb +0 -3
- data/lib/database_cleaner/data_mapper/base.rb +0 -21
- data/lib/database_cleaner/data_mapper/transaction.rb +0 -28
- data/lib/database_cleaner/data_mapper/truncation.rb +0 -172
- data/lib/database_cleaner/generic/base.rb +0 -29
- data/lib/database_cleaner/generic/transaction.rb +0 -11
- data/lib/database_cleaner/generic/truncation.rb +0 -40
- data/lib/database_cleaner/mongo/base.rb +0 -16
- data/lib/database_cleaner/mongo/truncation.rb +0 -62
- data/lib/database_cleaner/mongo/truncation_mixin.rb +0 -26
- data/lib/database_cleaner/mongo2/base.rb +0 -16
- data/lib/database_cleaner/mongo2/truncation_mixin.rb +0 -39
- data/lib/database_cleaner/mongo_mapper/base.rb +0 -20
- data/lib/database_cleaner/mongo_mapper/truncation.rb +0 -19
- data/lib/database_cleaner/mongoid/base.rb +0 -20
- data/lib/database_cleaner/mongoid/truncation.rb +0 -49
- data/lib/database_cleaner/moped/base.rb +0 -39
- data/lib/database_cleaner/moped/truncation.rb +0 -9
- data/lib/database_cleaner/moped/truncation_base.rb +0 -40
- data/lib/database_cleaner/neo4j/base.rb +0 -62
- data/lib/database_cleaner/neo4j/deletion.rb +0 -16
- data/lib/database_cleaner/neo4j/transaction.rb +0 -35
- data/lib/database_cleaner/neo4j/truncation.rb +0 -9
- data/lib/database_cleaner/null_strategy.rb +0 -20
- data/lib/database_cleaner/ohm/truncation.rb +0 -15
- data/lib/database_cleaner/redis/base.rb +0 -37
- data/lib/database_cleaner/redis/truncation.rb +0 -26
- data/lib/database_cleaner/sequel/base.rb +0 -22
- data/lib/database_cleaner/sequel/deletion.rb +0 -47
- data/lib/database_cleaner/sequel/transaction.rb +0 -40
- data/lib/database_cleaner/sequel/truncation.rb +0 -78
- data/spec/database_cleaner/active_record/base_spec.rb +0 -188
- data/spec/database_cleaner/active_record/transaction_spec.rb +0 -176
- data/spec/database_cleaner/active_record/truncation/mysql2_spec.rb +0 -38
- data/spec/database_cleaner/active_record/truncation/mysql_spec.rb +0 -38
- data/spec/database_cleaner/active_record/truncation/postgresql_spec.rb +0 -75
- data/spec/database_cleaner/active_record/truncation/shared_fast_truncation.rb +0 -40
- data/spec/database_cleaner/active_record/truncation/sqlite3_spec.rb +0 -40
- data/spec/database_cleaner/active_record/truncation_spec.rb +0 -180
- data/spec/database_cleaner/base_spec.rb +0 -617
- data/spec/database_cleaner/configuration_spec.rb +0 -345
- data/spec/database_cleaner/couch_potato/truncation_spec.rb +0 -41
- data/spec/database_cleaner/data_mapper/base_spec.rb +0 -30
- data/spec/database_cleaner/data_mapper/transaction_spec.rb +0 -23
- data/spec/database_cleaner/data_mapper/truncation/sqlite3_spec.rb +0 -41
- data/spec/database_cleaner/data_mapper/truncation_spec.rb +0 -11
- data/spec/database_cleaner/generic/base_spec.rb +0 -61
- data/spec/database_cleaner/generic/truncation_spec.rb +0 -118
- data/spec/database_cleaner/mongo/mongo_examples.rb +0 -26
- data/spec/database_cleaner/mongo/truncation_spec.rb +0 -72
- data/spec/database_cleaner/mongo_mapper/base_spec.rb +0 -33
- data/spec/database_cleaner/mongo_mapper/mongo_examples.rb +0 -8
- data/spec/database_cleaner/mongo_mapper/truncation_spec.rb +0 -74
- data/spec/database_cleaner/moped/moped_examples.rb +0 -32
- data/spec/database_cleaner/moped/truncation_spec.rb +0 -80
- data/spec/database_cleaner/neo4j/base_spec.rb +0 -43
- data/spec/database_cleaner/neo4j/transaction_spec.rb +0 -25
- data/spec/database_cleaner/null_strategy_spec.rb +0 -28
- data/spec/database_cleaner/ohm/truncation_spec.rb +0 -70
- data/spec/database_cleaner/redis/base_spec.rb +0 -43
- data/spec/database_cleaner/redis/truncation_spec.rb +0 -63
- data/spec/database_cleaner/sequel/base_spec.rb +0 -32
- data/spec/database_cleaner/sequel/deletion_spec.rb +0 -58
- data/spec/database_cleaner/sequel/transaction_spec.rb +0 -21
- data/spec/database_cleaner/sequel/truncation/sqlite3_spec.rb +0 -0
- data/spec/database_cleaner/sequel/truncation_spec.rb +0 -182
- data/spec/database_cleaner/shared_strategy.rb +0 -15
- data/spec/rcov.opts +0 -1
- data/spec/spec_helper.rb +0 -21
- data/spec/support/active_record/database_setup.rb +0 -6
- data/spec/support/active_record/migrations/20150101010000_create_users.rb +0 -14
- data/spec/support/active_record/migrations/20150101020000_create_agents.rb +0 -14
- data/spec/support/active_record/mysql2_setup.rb +0 -39
- data/spec/support/active_record/mysql_setup.rb +0 -38
- data/spec/support/active_record/postgresql_setup.rb +0 -48
- data/spec/support/active_record/schema_setup.rb +0 -17
- data/spec/support/active_record/sqlite3_setup.rb +0 -40
- data/spec/support/data_mapper/schema_setup.rb +0 -15
- 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
|
data/examples/lib/ohm_models.rb
DELETED
|
@@ -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
|