mass_insert 0.1.1 → 0.1.2
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.
- data/.gitignore +2 -0
- data/.travis.yml +10 -0
- data/Gemfile +0 -2
- data/README.md +15 -23
- data/Rakefile +22 -33
- data/lib/mass_insert.rb +11 -7
- data/lib/mass_insert/base.rb +22 -58
- data/lib/mass_insert/builder/adapters.rb +16 -0
- data/lib/mass_insert/builder/adapters/adapter.rb +65 -0
- data/lib/mass_insert/builder/adapters/helpers/abstract_query.rb +52 -0
- data/lib/mass_insert/builder/adapters/helpers/column_value.rb +90 -0
- data/lib/mass_insert/builder/adapters/mysql2_adapter.rb +15 -0
- data/lib/mass_insert/builder/adapters/postgresql_adapter.rb +7 -0
- data/lib/mass_insert/builder/adapters/sqlite3_adapter.rb +27 -0
- data/lib/mass_insert/builder/adapters/sqlserver_adapter.rb +26 -0
- data/lib/mass_insert/builder/base.rb +28 -0
- data/lib/mass_insert/builder/utilities.rb +13 -0
- data/lib/mass_insert/executer.rb +13 -0
- data/lib/mass_insert/process.rb +24 -0
- data/lib/mass_insert/result.rb +33 -0
- data/lib/mass_insert/version.rb +1 -1
- data/mass_insert.gemspec +2 -2
- data/spec/adapters/column_types/binary_spec.rb +64 -0
- data/spec/adapters/column_types/boolean_spec.rb +48 -0
- data/spec/adapters/column_types/decimal_spec.rb +59 -0
- data/spec/adapters/column_types/integer_spec.rb +59 -0
- data/spec/adapters/column_types/string_spec.rb +46 -0
- data/spec/{active_record_models → adapters}/model_spec.rb +1 -21
- data/spec/{active_record_dummy → dummy}/.gitignore +0 -0
- data/spec/{active_record_dummy → dummy}/Gemfile +1 -1
- data/spec/{active_record_dummy → dummy}/README.rdoc +0 -0
- data/spec/{active_record_dummy → dummy}/Rakefile +0 -0
- data/spec/{active_record_dummy → dummy}/app/assets/images/rails.png +0 -0
- data/spec/{active_record_dummy → dummy}/app/assets/javascripts/application.js +0 -0
- data/spec/{active_record_dummy → dummy}/app/assets/stylesheets/application.css +0 -0
- data/spec/{active_record_dummy → dummy}/app/controllers/application_controller.rb +0 -0
- data/spec/{active_record_dummy → dummy}/app/helpers/application_helper.rb +0 -0
- data/spec/{active_record_dummy → dummy}/app/mailers/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/app/models/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/app/models/user.rb +0 -0
- data/spec/{active_record_dummy → dummy}/app/views/layouts/application.html.erb +0 -0
- data/spec/{active_record_dummy → dummy}/config.ru +0 -0
- data/spec/{active_record_dummy → dummy}/config/application.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/boot.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/database.yml +3 -8
- data/spec/{active_record_dummy → dummy}/config/environment.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/environments/development.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/environments/mysql2.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/environments/postgresql.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/environments/production.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/environments/sqlite3.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/environments/test.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/initializers/inflections.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/initializers/mime_types.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/initializers/secret_token.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/initializers/session_store.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/initializers/wrap_parameters.rb +0 -0
- data/spec/{active_record_dummy → dummy}/config/locales/en.yml +0 -0
- data/spec/{active_record_dummy → dummy}/config/routes.rb +0 -0
- data/spec/{active_record_dummy → dummy}/db/migrate/20130412154541_create_users.rb +0 -0
- data/spec/{active_record_dummy → dummy}/db/schema.rb +0 -0
- data/spec/{active_record_dummy → dummy}/db/seeds.rb +0 -0
- data/spec/{active_record_dummy → dummy}/lib/assets/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/lib/tasks/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/log/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/public/404.html +0 -0
- data/spec/{active_record_dummy → dummy}/public/422.html +0 -0
- data/spec/{active_record_dummy → dummy}/public/500.html +0 -0
- data/spec/{active_record_dummy → dummy}/public/favicon.ico +0 -0
- data/spec/{active_record_dummy → dummy}/public/index.html +0 -0
- data/spec/{active_record_dummy → dummy}/public/robots.txt +0 -0
- data/spec/{active_record_dummy → dummy}/script/rails +0 -0
- data/spec/{active_record_dummy → dummy}/vendor/assets/javascripts/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/vendor/assets/stylesheets/.gitkeep +0 -0
- data/spec/{active_record_dummy → dummy}/vendor/plugins/.gitkeep +0 -0
- data/spec/lib/mass_insert/base_spec.rb +40 -0
- data/spec/lib/mass_insert/builder/adapters/adapter_spec.rb +129 -0
- data/spec/lib/mass_insert/builder/adapters/helpers/abstract_query_spec.rb +130 -0
- data/spec/{mass_insert/adapters/adapter_helpers → lib/mass_insert/builder/adapters/helpers}/column_value_spec.rb +42 -94
- data/spec/lib/mass_insert/builder/adapters/mysql_adapter_spec.rb +15 -0
- data/spec/lib/mass_insert/builder/adapters/postgresql_adapter_spec.rb +9 -0
- data/spec/lib/mass_insert/builder/adapters/sqlite3_adapter_spec.rb +52 -0
- data/spec/lib/mass_insert/builder/adapters/sqlserver_adapter_spec.rb +38 -0
- data/spec/lib/mass_insert/builder/adapters_spec.rb +31 -0
- data/spec/lib/mass_insert/builder/base_spec.rb +28 -0
- data/spec/lib/mass_insert/builder/utilities_spec.rb +11 -0
- data/spec/lib/mass_insert/executer_spec.rb +33 -0
- data/spec/lib/mass_insert/process_spec.rb +44 -0
- data/spec/lib/mass_insert/result_spec.rb +45 -0
- data/spec/lib/mass_insert_spec.rb +35 -0
- data/spec/spec_helper.rb +7 -2
- data/spec/support/mass_insert_support.rb +12 -0
- metadata +160 -163
- data/lib/mass_insert/adapters.rb +0 -10
- data/lib/mass_insert/adapters/adapter.rb +0 -26
- data/lib/mass_insert/adapters/adapter_helpers.rb +0 -11
- data/lib/mass_insert/adapters/adapter_helpers/abstract_query.rb +0 -56
- data/lib/mass_insert/adapters/adapter_helpers/column_value.rb +0 -110
- data/lib/mass_insert/adapters/adapter_helpers/sanitizer.rb +0 -21
- data/lib/mass_insert/adapters/adapter_helpers/timestamp.rb +0 -33
- data/lib/mass_insert/adapters/mysql2_adapter.rb +0 -13
- data/lib/mass_insert/adapters/postgresql_adapter.rb +0 -5
- data/lib/mass_insert/adapters/sqlite3_adapter.rb +0 -37
- data/lib/mass_insert/adapters/sqlserver_adapter.rb +0 -29
- data/lib/mass_insert/process_control.rb +0 -46
- data/lib/mass_insert/query_builder.rb +0 -39
- data/lib/mass_insert/query_execution.rb +0 -29
- data/spec/active_record_models/column_types/binary_spec.rb +0 -60
- data/spec/active_record_models/column_types/boolean_spec.rb +0 -52
- data/spec/active_record_models/column_types/decimal_spec.rb +0 -49
- data/spec/active_record_models/column_types/integer_spec.rb +0 -49
- data/spec/active_record_models/column_types/string_spec.rb +0 -50
- data/spec/dummy_models/test.rb +0 -5
- data/spec/mass_insert/adapters/adapter_helpers/abstract_query_spec.rb +0 -119
- data/spec/mass_insert/adapters/adapter_helpers/sanitizer_spec.rb +0 -46
- data/spec/mass_insert/adapters/adapter_helpers/timestamp_spec.rb +0 -75
- data/spec/mass_insert/adapters/adapter_helpers_spec.rb +0 -24
- data/spec/mass_insert/adapters/adapter_spec.rb +0 -79
- data/spec/mass_insert/adapters/mysql_adapter_spec.rb +0 -22
- data/spec/mass_insert/adapters/postgresql_adapter_spec.rb +0 -11
- data/spec/mass_insert/adapters/sqlite3_adapter_spec.rb +0 -84
- data/spec/mass_insert/adapters/sqlserver_adapter_spec.rb +0 -61
- data/spec/mass_insert/adapters_spec.rb +0 -32
- data/spec/mass_insert/base_spec.rb +0 -114
- data/spec/mass_insert/process_control_spec.rb +0 -125
- data/spec/mass_insert/query_builder_spec.rb +0 -84
- data/spec/mass_insert/query_execution_spec.rb +0 -50
- data/spec/mass_insert_spec.rb +0 -28
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module MassInsert
|
|
2
|
-
# This class is responsible to execute the query string into the
|
|
3
|
-
# database. Uses the ActiveRecord::Base.connection.execute functionality
|
|
4
|
-
# to execute the query string directly.
|
|
5
|
-
class QueryExecution
|
|
6
|
-
|
|
7
|
-
attr_accessor :query_container
|
|
8
|
-
|
|
9
|
-
# The query string is usually passed by params when the ProcessControl
|
|
10
|
-
# class instances this class. The query can be a string or an array,
|
|
11
|
-
# therefore to be sure that the query_container attribute is an array
|
|
12
|
-
# the param passed to this class is converted to array. The query
|
|
13
|
-
# container attribute will be iterated in execute method to execute
|
|
14
|
-
# each query that it contains.
|
|
15
|
-
def initialize query_container
|
|
16
|
-
@query_container = Array(query_container)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Saves queries contained in query_container attribute into database.
|
|
20
|
-
# Use the helper that ActiveRecord provides. The query_container
|
|
21
|
-
# attribute is iterated to save each query that it contains.
|
|
22
|
-
def execute
|
|
23
|
-
@query_container.each do |query|
|
|
24
|
-
ActiveRecord::Base.connection.execute(query)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe "Binary" do
|
|
5
|
-
|
|
6
|
-
before :each do
|
|
7
|
-
@values, @options = [{:checked => 1}], {}
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "when exist in values hashes" do
|
|
11
|
-
context "when contains binary value" do
|
|
12
|
-
context "when is 1" do
|
|
13
|
-
it "should be saved correctly" do
|
|
14
|
-
User.mass_insert(@values, @options)
|
|
15
|
-
expect(User.last.checked).to eq("1")
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
context "when is 0" do
|
|
20
|
-
it "should be saved correctly" do
|
|
21
|
-
@values.first.merge!(:checked => 0)
|
|
22
|
-
User.mass_insert(@values, @options)
|
|
23
|
-
expect(User.last.checked).to eq("0")
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
context "when contains a string" do
|
|
29
|
-
it "should convert string value to binary" do
|
|
30
|
-
@values.first.merge!(:checked => "string")
|
|
31
|
-
User.mass_insert(@values, @options)
|
|
32
|
-
expect(User.last.checked).to eq("string")
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context "when contains a decimal" do
|
|
37
|
-
it "should convert decimal value to binary" do
|
|
38
|
-
@values.first.merge!(:checked => 25.34)
|
|
39
|
-
User.mass_insert(@values, @options)
|
|
40
|
-
expect(User.last.checked).to eq("25.34")
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
context "when contains a boolean" do
|
|
45
|
-
it "should convert boolean value to binary" do
|
|
46
|
-
@values.first.merge!(:checked => true)
|
|
47
|
-
User.mass_insert(@values, @options)
|
|
48
|
-
expect(User.last.checked).to eq("true")
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
context "when not exist in values hashes" do
|
|
54
|
-
it "should save the default value" do
|
|
55
|
-
@values.first.delete(:checked)
|
|
56
|
-
User.mass_insert(@values, @options)
|
|
57
|
-
expect(User.last.checked).to eq(nil)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe "Boolean" do
|
|
5
|
-
|
|
6
|
-
before :each do
|
|
7
|
-
@values, @options = [{:active => true}], {}
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "when exist in values hashes" do
|
|
11
|
-
context "when contains boolean value" do
|
|
12
|
-
context "when is true" do
|
|
13
|
-
it "should be saved correctly" do
|
|
14
|
-
User.mass_insert(@values, @options)
|
|
15
|
-
expect(User.last.active).to eq(true)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
context "when is false" do
|
|
20
|
-
it "should be saved correctly" do
|
|
21
|
-
@values.first.merge!(:active => false)
|
|
22
|
-
User.mass_insert(@values, @options)
|
|
23
|
-
expect(User.last.active).to eq(false)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
context "when contains a string" do
|
|
29
|
-
it "should convert string value to boolean" do
|
|
30
|
-
@values.first.merge!(:active => "string")
|
|
31
|
-
User.mass_insert(@values, @options)
|
|
32
|
-
expect(User.last.active).to eq(true)
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context "when contains a decimal" do
|
|
37
|
-
it "should convert decimal value to boolean" do
|
|
38
|
-
@values.first.merge!(:active => 25.34)
|
|
39
|
-
User.mass_insert(@values, @options)
|
|
40
|
-
expect(User.last.active).to eq(true)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
context "when not exist in values hashes" do
|
|
46
|
-
it "should save the default value" do
|
|
47
|
-
@values.first.delete(:active)
|
|
48
|
-
User.mass_insert(@values, @options)
|
|
49
|
-
expect(User.last.active).to eq(nil)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe "Decimal" do
|
|
5
|
-
|
|
6
|
-
before :each do
|
|
7
|
-
@values, @options = [{:money => 20.50}], {}
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "when exist in values hashes" do
|
|
11
|
-
context "when contains an integer" do
|
|
12
|
-
it "should convert integer value to decimal" do
|
|
13
|
-
@values.first.merge!(:money => 10)
|
|
14
|
-
User.mass_insert(@values, @options)
|
|
15
|
-
expect(User.last.money).to eq(10.0)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
context "when contains a string" do
|
|
20
|
-
it "should convert string value to decimal" do
|
|
21
|
-
@values.first.merge!(:money => "string")
|
|
22
|
-
User.mass_insert(@values, @options)
|
|
23
|
-
expect(User.last.money).to eq(0.0)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
context "when contains a decimal" do
|
|
28
|
-
it "should save the correct value" do
|
|
29
|
-
User.mass_insert(@values, @options)
|
|
30
|
-
expect(User.last.money).to eq(20.50)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context "when contains a boolean" do
|
|
35
|
-
it "should raise an exception" do
|
|
36
|
-
@values.first.merge!(:money => true)
|
|
37
|
-
expect(lambda{ User.mass_insert(@values, @options) }).to raise_exception
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
context "when not exist in values hashes" do
|
|
43
|
-
it "should save the default value" do
|
|
44
|
-
@values.first.delete(:money)
|
|
45
|
-
User.mass_insert(@values, @options)
|
|
46
|
-
expect(User.last.money).to eq(nil)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe "Integer" do
|
|
5
|
-
|
|
6
|
-
before :each do
|
|
7
|
-
@values, @options = [{:age => 20}], {}
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "when exist in values hashes" do
|
|
11
|
-
context "when contains an integer" do
|
|
12
|
-
it "should be saved correctly" do
|
|
13
|
-
User.mass_insert(@values, @options)
|
|
14
|
-
expect(User.last.age).to eq(20)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
context "when contains a string" do
|
|
19
|
-
it "should convert string value to integer" do
|
|
20
|
-
@values.first.merge!(:age => "string")
|
|
21
|
-
User.mass_insert(@values, @options)
|
|
22
|
-
expect(User.last.age).to eq(0)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
context "when contains a decimal" do
|
|
27
|
-
it "should convert decimal value to integer" do
|
|
28
|
-
@values.first.merge!(:age => 25.69)
|
|
29
|
-
User.mass_insert(@values, @options)
|
|
30
|
-
expect(User.last.age).to eq(25)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context "when contains a boolean" do
|
|
35
|
-
it "should raise an exception" do
|
|
36
|
-
@values.first.merge!(:age => true)
|
|
37
|
-
expect(lambda{ User.mass_insert(@values, @options) }).to raise_exception
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
context "when not exist in values hashes" do
|
|
43
|
-
it "should save the default value" do
|
|
44
|
-
@values.first.delete(:age)
|
|
45
|
-
User.mass_insert(@values, @options)
|
|
46
|
-
expect(User.last.age).to eq(nil)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe "String" do
|
|
5
|
-
|
|
6
|
-
before :each do
|
|
7
|
-
@values, @options = [{:name => "some name"}], {}
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "when exist in values hashes" do
|
|
11
|
-
context "when contains a string" do
|
|
12
|
-
it "should be saved correctly" do
|
|
13
|
-
User.mass_insert(@values, @options)
|
|
14
|
-
expect(User.last.name).to eq("some name")
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
context "when contains a integer" do
|
|
19
|
-
it "should convert integer value to string" do
|
|
20
|
-
@values.first.merge!(:name => 10)
|
|
21
|
-
User.mass_insert(@values, @options)
|
|
22
|
-
expect(User.last.name).to eq("10")
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
context "when contains a decimal" do
|
|
27
|
-
it "should convert decimal value to string" do
|
|
28
|
-
@values.first.merge!(:name => 25.69)
|
|
29
|
-
User.mass_insert(@values, @options)
|
|
30
|
-
expect(User.last.name).to eq("25.69")
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context "when contains a boolean" do
|
|
35
|
-
it "should convert boolean value to string" do
|
|
36
|
-
@values.first.merge!(:name => true)
|
|
37
|
-
User.mass_insert(@values, @options)
|
|
38
|
-
expect(User.last.name).to eq("true")
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
context "when not exist in values hashes" do
|
|
44
|
-
it "should save the default value" do
|
|
45
|
-
@values.first.delete(:name)
|
|
46
|
-
User.mass_insert(@values, @options)
|
|
47
|
-
expect(User.last.name).to eq(nil)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
data/spec/dummy_models/test.rb
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe MassInsert::Adapters::AdapterHelpers::AbstractQuery do
|
|
5
|
-
let!(:options){ {:class_name => "SomeClassName"} }
|
|
6
|
-
let!(:subject){ MassInsert::Adapters::Adapter.new([], options) }
|
|
7
|
-
|
|
8
|
-
describe "#begin_string" do
|
|
9
|
-
it "should respond to begin_string method" do
|
|
10
|
-
expect(subject).to respond_to(:begin_string)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "should returns the correct string" do
|
|
14
|
-
subject.stub(:table_name).and_return("users")
|
|
15
|
-
expect(subject.begin_string).to eq("INSERT INTO users ")
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
describe "#string_columns" do
|
|
20
|
-
it "should respond to string_columns method" do
|
|
21
|
-
expect(subject).to respond_to(:string_columns)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it "should returns correct string to columns" do
|
|
25
|
-
subject.stub(:columns).and_return([:name, :email])
|
|
26
|
-
expect(subject.string_columns).to eq("(name, email) ")
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
describe "#string_values" do
|
|
31
|
-
it "should respond to string_values method" do
|
|
32
|
-
expect(subject).to respond_to(:string_values)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
it "should returns correct string to values" do
|
|
36
|
-
subject.stub(:string_rows_values).and_return("rows_values")
|
|
37
|
-
expect(subject.string_values).to eq("VALUES (rows_values);")
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
describe "#string_rows_values" do
|
|
42
|
-
it "should respond to string_rows_values method" do
|
|
43
|
-
expect(subject).to respond_to(:string_rows_values)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
context "when only have one value hash" do
|
|
47
|
-
it "should returns the correct string" do
|
|
48
|
-
subject.stub(:string_single_row_values).and_return("row")
|
|
49
|
-
subject.values = [{}]
|
|
50
|
-
expect(subject.string_rows_values).to eq("row")
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
context "when have two or more value hashes" do
|
|
55
|
-
it "should returns the correct string" do
|
|
56
|
-
subject.stub(:string_single_row_values).and_return("row")
|
|
57
|
-
subject.values = [{}, {}]
|
|
58
|
-
expect(subject.string_rows_values).to eq("row), (row")
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
describe "#string_single_row_values" do
|
|
64
|
-
before :each do
|
|
65
|
-
subject.stub(:string_single_value).and_return("value")
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
it "should respond to string_single_row_values method" do
|
|
69
|
-
expect(subject).to respond_to(:string_single_row_values)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it "should returns the correct string" do
|
|
73
|
-
subject.stub(:columns).and_return([:name, :email])
|
|
74
|
-
expect(subject.string_single_row_values({})).to eq("value, value")
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
context "when respond to timestamp attributes" do
|
|
78
|
-
it "should call timestamp_values method" do
|
|
79
|
-
subject.stub(:columns).and_return([:created_at, :updated_at])
|
|
80
|
-
subject.stub(:timestamp_hash).and_return(:test => "test")
|
|
81
|
-
subject.should_receive(:timestamp_hash).exactly(1).times
|
|
82
|
-
subject.string_single_row_values({})
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
context "when not respond to timestamp attributes" do
|
|
87
|
-
it "should returns the correct string" do
|
|
88
|
-
subject.stub(:columns).and_return([:name, :email])
|
|
89
|
-
subject.should_receive(:timestamp_hash).exactly(0).times
|
|
90
|
-
subject.string_single_row_values({})
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
describe "#string_single_value" do
|
|
96
|
-
it "should respond to string_single_value method" do
|
|
97
|
-
expect(subject).to respond_to(:string_single_value)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
it "should call build method in ColumnValue class" do
|
|
101
|
-
column_value = MassInsert::Adapters::AdapterHelpers::ColumnValue.any_instance
|
|
102
|
-
column_value.stub(:build).and_return("value")
|
|
103
|
-
expect(subject.string_single_value({}, :name)).to eq("value")
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
describe "#execute" do
|
|
108
|
-
it "should respond to execute method" do
|
|
109
|
-
expect(subject).to respond_to(:execute)
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
it "call methods and returns their values concatenated" do
|
|
113
|
-
subject.stub(:begin_string).and_return("a")
|
|
114
|
-
subject.stub(:string_columns).and_return("b")
|
|
115
|
-
subject.stub(:string_values).and_return("c")
|
|
116
|
-
expect(subject.execute).to eq("abc")
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
require './spec/spec_helper'
|
|
2
|
-
require "./lib/mass_insert"
|
|
3
|
-
|
|
4
|
-
describe MassInsert::Adapters::AdapterHelpers::Sanitizer do
|
|
5
|
-
let!(:subject){ MassInsert::Adapters::Adapter.new([], {}) }
|
|
6
|
-
|
|
7
|
-
describe "#sanitized_columns" do
|
|
8
|
-
before :each do
|
|
9
|
-
options = {
|
|
10
|
-
:primary_key => :id,
|
|
11
|
-
:primary_key_mode => :auto,
|
|
12
|
-
}
|
|
13
|
-
subject.options.merge!(options)
|
|
14
|
-
subject.stub(:table_columns).and_return([:id, :name])
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "should respond to sanitized_columns" do
|
|
18
|
-
expect(subject).to respond_to(:sanitized_columns)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
context "when primary_key_mode is automatic" do
|
|
22
|
-
it "should returns the column without primary_key" do
|
|
23
|
-
expect(subject.sanitized_columns).to eq([:name])
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
context "when primary_key_mode is not automatic" do
|
|
28
|
-
it "should returns the columns including primary_key" do
|
|
29
|
-
subject.options.merge!(:primary_key_mode => :manual)
|
|
30
|
-
expect(subject.sanitized_columns).to eq([:id, :name])
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
describe "#table_columns" do
|
|
36
|
-
it "should respond to table_columns method" do
|
|
37
|
-
expect(subject).to respond_to(:table_columns)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should returns the table_columns in ActiveRecord class" do
|
|
41
|
-
subject.options = {:class_name => Test}
|
|
42
|
-
columns = [:id, :name, :email]
|
|
43
|
-
expect(subject.table_columns).to eq(columns)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|