mv-test 0.1.1 → 1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: aeae238d16f9f9a02bd1d58677b7eced19b1e2b7
4
+ data.tar.gz: 6d5640e0ac075f20872806c6a195041e0875360b
5
+ SHA512:
6
+ metadata.gz: f659fcaf529b5f12a3e5074ce1dde1296d98f2dfbef11f0a04213e451b3b684ac00bb30135c6ad8ad6c5d02f2cf41c57cd6e53a309e8ac32d42d8501d84ed964
7
+ data.tar.gz: 751c434dcea9a931b39c8decf72a366b4a37fd79cb1b55c4eb8e28dcfa66d8341029adca468a7d3bf439f21741db34b97ab13c70c38e1b9fb26dac293057e13d
@@ -103,7 +103,7 @@ module MigrationValidators
103
103
  def matches? column_wrapper
104
104
  column_wrapper.insert(@initial) if @initial
105
105
 
106
- column_wrapper.to_array(values).each do |value|
106
+ MigrationValidators::Spec::Support::ColumnWrapper.to_array(values).each do |value|
107
107
  passed = true
108
108
 
109
109
  if insert?
@@ -154,6 +154,12 @@ module MigrationValidators
154
154
  super && exception && exception.message =~ /#{message}/
155
155
  end
156
156
 
157
+ def description
158
+ compose_message do |operations_name, elements_name, last_message, expected_message|
159
+ "expected that operation #{operations_name} would fail for #{elements_name} from #{values} #{expected_message}"
160
+ end
161
+ end
162
+
157
163
 
158
164
  def failure_message
159
165
  compose_message do |operations_name, elements_name, last_message, expected_message|
@@ -161,7 +167,7 @@ module MigrationValidators
161
167
  end
162
168
  end
163
169
 
164
- def negative_failure_message
170
+ def failure_message_when_negated
165
171
  compose_message do |operations_name, elements_name, last_message, expected_message|
166
172
  "not expected that operation #{operations_name} would fail for #{elements_name} from #{values} #{expected_message}. But it happened with #{last_operation} on '#{last_value}'"
167
173
  end
@@ -174,6 +180,11 @@ module MigrationValidators
174
180
  super && exception.blank?
175
181
  end
176
182
 
183
+ def description
184
+ compose_message do |operations_name, elements_name, last_message, expected_message|
185
+ "expected that operation #{operations_name} would success for #{elements_name} from #{values}"
186
+ end
187
+ end
177
188
 
178
189
  def failure_message
179
190
  compose_message do |operations_name, elements_name, last_message, expected_message|
@@ -181,7 +192,7 @@ module MigrationValidators
181
192
  end
182
193
  end
183
194
 
184
- def negative_failure_message
195
+ def failure_message_when_negated
185
196
  compose_message do |operations_name, elements_name, last_message, expected_message|
186
197
  "not expected that operation #{operations_name} would success for #{elements_name} from #{values}. But it happened with #{last_operation} on '#{last_value}'"
187
198
  end
@@ -19,17 +19,17 @@ module MigrationValidators
19
19
 
20
20
  def update *values
21
21
  @last_exception = nil
22
- to_array(values).each{|value| execute(value, "UPDATE #{@table_wrapper.table_name} SET #{column_name} = #{value}")}
22
+ ColumnWrapper.to_array(values).each{|value| execute(value, "UPDATE #{@table_wrapper.table_name} SET #{column_name} = #{value}")}
23
23
  self
24
24
  end
25
25
 
26
26
  def insert *values
27
27
  @last_exception = nil
28
- to_array(values).each {|value| execute(value, "INSERT INTO #{@table_wrapper.table_name}(#{column_name}) VALUES(#{value})")}
28
+ ColumnWrapper.to_array(values).each {|value| execute(value, "INSERT INTO #{@table_wrapper.table_name}(#{column_name}) VALUES(#{value})")}
29
29
  self
30
30
  end
31
31
 
32
- def to_array values
32
+ def self.to_array values
33
33
  values.collect do |value|
34
34
  case value.class.name
35
35
  when "Range" then to_array(value.to_a)
@@ -46,7 +46,7 @@ module MigrationValidators
46
46
 
47
47
  private
48
48
 
49
- def quote value
49
+ def self.quote value
50
50
  value = "'#{value}" unless value.starts_with?("'")
51
51
  value = "#{value}'" unless value.ends_with?("'")
52
52
  value
metadata CHANGED
@@ -1,82 +1,77 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mv-test
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Valeriy Prokopchuk
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2011-03-22 00:00:00 +02:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
17
14
  name: activerecord
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 2.3.5
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.6
24
20
  type: :runtime
25
21
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.6
27
+ - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - ~>
33
- - !ruby/object:Gem::Version
34
- version: 2.3.0
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.0
35
34
  type: :runtime
36
35
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: bundler
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 1.0.0
46
- type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-its
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.1
48
+ type: :runtime
47
49
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.1
55
+ - !ruby/object:Gem::Dependency
50
56
  name: jeweler
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ~>
55
- - !ruby/object:Gem::Version
56
- version: 1.5.2
57
- type: :development
58
- prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: rcov
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.1
68
62
  type: :development
69
63
  prerelease: false
70
- version_requirements: *id005
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.1
71
69
  description: Contains macros / matchers for database behavious testing
72
70
  email: vprokopchuk@gmail.com
73
71
  executables: []
74
-
75
72
  extensions: []
76
-
77
73
  extra_rdoc_files: []
78
-
79
- files:
74
+ files:
80
75
  - lib/migration_validators/spec/macros/db_macros.rb
81
76
  - lib/migration_validators/spec/matchers/db_matchers.rb
82
77
  - lib/migration_validators/spec/support/column_wrapper.rb
@@ -84,51 +79,28 @@ files:
84
79
  - lib/migration_validators/spec/support/table_wrapper.rb
85
80
  - lib/migration_validators/spec/support/test_adapter.rb
86
81
  - lib/mv-test.rb
87
- - spec/migration_validators/spec/macros/db_macros_spec.rb
88
- - spec/migration_validators/spec/matchers/db_matchers_spec.rb
89
- - spec/migration_validators/spec/support/column_wrapper_spec.rb
90
- - spec/migration_validators/spec/support/db_spec.rb
91
- - spec/migration_validators/spec/support/table_wrapper_spec.rb
92
- - spec/migration_validators/spec/support/test_adapter_spec.rb
93
- - spec/mv-test_spec.rb
94
- - spec/spec_helper.rb
95
- has_rdoc: true
96
82
  homepage: http://github.com/vprokopchuk256/mv-test
97
- licenses:
83
+ licenses:
98
84
  - MIT
85
+ metadata: {}
99
86
  post_install_message:
100
87
  rdoc_options: []
101
-
102
- require_paths:
88
+ require_paths:
103
89
  - lib
104
- required_ruby_version: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- hash: -421553261649846156
110
- segments:
111
- - 0
112
- version: "0"
113
- required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: "0"
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
119
100
  requirements: []
120
-
121
101
  rubyforge_project:
122
- rubygems_version: 1.6.2
102
+ rubygems_version: 2.1.10
123
103
  signing_key:
124
- specification_version: 3
104
+ specification_version: 4
125
105
  summary: Migration Validators project test suite
126
- test_files:
127
- - spec/migration_validators/spec/macros/db_macros_spec.rb
128
- - spec/migration_validators/spec/matchers/db_matchers_spec.rb
129
- - spec/migration_validators/spec/support/column_wrapper_spec.rb
130
- - spec/migration_validators/spec/support/db_spec.rb
131
- - spec/migration_validators/spec/support/table_wrapper_spec.rb
132
- - spec/migration_validators/spec/support/test_adapter_spec.rb
133
- - spec/mv-test_spec.rb
134
- - spec/spec_helper.rb
106
+ test_files: []
@@ -1,25 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- describe MigrationValidators::Spec::Macros::DBMacros, "supports", :type => :mv_test do
4
- before :all do
5
- use_memory_db
6
- end
7
-
8
- describe :for_column, "creates column for each internal test" do
9
- for_table :test_table do
10
- for_column :column, :integer do
11
- it { db.column_exists?(:test_table, :column).should be_true }
12
- it { db.columns(:test_table).find{|col| col.name.to_s == "column"}.type.to_s.should == "integer" }
13
- end
14
- end
15
- end
16
-
17
- describe :with_validator do
18
- end
19
-
20
- describe :with_option do
21
- end
22
-
23
- describe :with_change do
24
- end
25
- end
@@ -1,37 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- describe MigrationValidators::Spec::Matchers::DBMatchers, "supports", :type => :mv_test do
4
- before :all do
5
- use_memory_db
6
- end
7
-
8
- before :each do
9
- db.drop_table(:test_table) if db.table_exists?(:test_table)
10
-
11
- migrate do
12
- create_table :test_table do |t|
13
- t.string :column
14
- end
15
-
16
- add_index :test_table, :column, :unique => true
17
- end
18
-
19
- @column = table(:test_table).column
20
- end
21
-
22
- describe :allow do
23
- it { @column.should allow.insert(1, 2) }
24
- it { @column.should allow.update(2).with_initial(1) }
25
- it { @column.should allow(1) }
26
- it { @column.should allow.at_least_one(1, 1) }
27
- it { @column.should allow.insert.at_least_one(1, 1) }
28
- it { @column.should allow.update.at_least_one(1, 1) }
29
- end
30
-
31
- describe :deny do
32
- it { @column.should deny.at_least_one(1, 1).with_initial(1, 2) }
33
- it { @column.should deny.at_least_one.insert(1, 1) }
34
- it { @column.should deny.at_least_one.insert(1, 1).with_message(/not unique/) }
35
- it { @column.should deny.insert(1, 1).with_initial(1).with_message(/not unique/) }
36
- end
37
- end
@@ -1,148 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- describe MigrationValidators::Spec::Support::ColumnWrapper, "supports", :type => :mv_test do
4
- before :each do
5
- use_memory_db
6
-
7
- db.drop_table(:test_table) if db.table_exists?(:test_table)
8
- @wrapper = new_table {|t| t.string :str_column }.str_column
9
- end
10
-
11
- it "drop" do
12
- chg_table(:test_table) {|t| t.string :str_column_1}.str_column_1.drop
13
-
14
- db.column_exists?(:test_table, :str_column_1).should be_false
15
- end
16
-
17
- describe "sql wrapping for" do
18
- before :each do
19
- db.drop_table(:items) if db.table_exists?(:items)
20
-
21
- Item = Class.new(ActiveRecord::Base) do
22
- def self.all
23
- Item.find(:all, :order => "column ASC").collect{|item| item.column}
24
- end
25
- end
26
- end
27
-
28
- describe :insert do
29
- describe "range" do
30
- it "open" do
31
- new_table(:items){|t| t.integer :column}.column.insert(1..3)
32
- Item.all.should == [1, 2, 3]
33
- end
34
-
35
- it "closed" do
36
- new_table(:items){|t| t.integer :column}.column.insert(1...3)
37
- Item.all.should == [1, 2]
38
- end
39
- end
40
-
41
- describe "array" do
42
- before :each do
43
- @column = new_table(:items){|t| t.integer :column}.column
44
- end
45
-
46
- it "of simple elements" do
47
- @column.insert([1, 2, 3])
48
- Item.all.should == [1, 2, 3]
49
- end
50
-
51
- it "as params list" do
52
- @column.insert(1, 2, 3)
53
- Item.all.should == [1, 2, 3]
54
- end
55
-
56
- it "as composite elements" do
57
- @column.insert(1, 2, 3, [4, 5], 6..8)
58
- Item.all.should == [1, 2, 3, 4, 5, 6, 7, 8]
59
- end
60
- end
61
-
62
- describe "string" do
63
- before :each do
64
- @column = new_table(:items){|t| t.string :column}.column
65
- end
66
-
67
- it "parameters" do
68
- @column.insert("str1", "str2")
69
- Item.all.should == ["str1", "str2"]
70
- end
71
-
72
- it "interprets NULL correctly" do
73
- @column.insert("NULL")
74
-
75
- Item.all.should == [nil]
76
- end
77
-
78
- it "supports internal arrays" do
79
- @column.insert(["str1", ["str2"]])
80
- Item.all.should == ["str1", "str2"]
81
- end
82
- end
83
-
84
- it "date" do
85
- column = new_table(:items){|t| t.date :column}.column
86
- date = Date.today
87
-
88
- column.insert(date)
89
- Item.all.should == [date]
90
- end
91
-
92
- it "time" do
93
- column = new_table(:items){|t| t.time :column}.column
94
- time = Time.now
95
-
96
- column.insert(time)
97
- Item.all.first.strftime("%H:%M:%S").should == time.strftime("%H:%M:%S")
98
- end
99
- it "datetime" do
100
- column = new_table(:items){|t| t.datetime :column}.column
101
- datetime = DateTime.now
102
-
103
- column.insert(datetime)
104
- Item.all.first.strftime("%y-%m-%d %H:%M:%S").should == datetime.strftime("%y-%m-%d %H:%M:%S")
105
- end
106
-
107
- it "nil" do
108
- column = new_table(:items){|t| t.string :column}.column
109
- column.insert(nil)
110
-
111
- Item.all.should == [nil]
112
- end
113
- end
114
-
115
- it :update do
116
- new_table(:items){|t| t.integer :column}.column.insert(1..3).update(3)
117
- Item.all.should == [3, 3, 3]
118
- end
119
- end
120
-
121
- describe "last exception" do
122
- it "equals nil if operation successed" do
123
- column = new_table(:items){|t| t.string :column}.column
124
- column.insert("value")
125
-
126
- column.last_exception.should be_blank
127
- end
128
-
129
- it "equals last exception if something wrong" do
130
- column = new_table(:items){|t| t.string :column}.column
131
- db.drop_table(:items)
132
- column.insert("value")
133
-
134
- column.last_exception.should_not be_blank
135
- end
136
-
137
- it "clears before each new request" do
138
- column = new_table(:items){|t| t.string :column}.column
139
- db.drop_table(:items)
140
- column.insert("value")
141
-
142
- new_table(:items){|t| t.string :column}
143
- column.insert("value")
144
-
145
- column.last_exception.should be_blank
146
- end
147
- end
148
- end
@@ -1,56 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- describe MigrationValidators::Spec::Support::DB, "supports", :type => :mv_test do
4
- it "connect to the memory db (sqlite in memory)" do
5
- use_memory_db
6
-
7
- ActiveRecord::Base.connection.should_not be_blank
8
- end
9
-
10
- it "shortcut to active record connection" do
11
- use_memory_db
12
-
13
- db.should == ActiveRecord::Base.connection
14
- end
15
-
16
- it "migration shortcut" do
17
- db.drop_table(:test_table) if db.table_exists?(:test_table)
18
-
19
- migrate do
20
- create_table :test_table do |t|
21
- t.string :str_column
22
- end
23
- end
24
-
25
- db.table_exists?(:test_table).should be_true
26
- end
27
-
28
- it "create table shortcut" do
29
- db.drop_table(:test_table) if db.table_exists?(:test_table)
30
-
31
- new_table :test_table do |t|
32
- t.string :str_column
33
- end
34
-
35
- db.table_exists?(:test_table).should be_true
36
- end
37
-
38
- it "change table shortcut" do
39
- db.drop_table(:test_table) if db.table_exists?(:test_table)
40
- new_table {|t| t.string :str_column }
41
-
42
- chg_table :test_table do |t|
43
- t.string :str_column_1
44
- end
45
-
46
- db.column_exists?(:test_table, :str_column_1).should be_true
47
- end
48
-
49
- it "shortcut for table info" do
50
- db.drop_table(:test_table) if db.table_exists?(:test_table)
51
- new_table {|t| t.string :str_column }
52
-
53
- table(:test_table).should be_kind_of(MigrationValidators::Spec::Support::TableWrapper)
54
- table(:test_table).table_name.should == :test_table
55
- end
56
- end
@@ -1,20 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- describe MigrationValidators::Spec::Support::TableWrapper, "supports", :type => :mv_test do
4
- before :each do
5
- use_memory_db
6
-
7
- db.drop_table(:test_table) if db.table_exists?(:test_table)
8
- @wrapper = new_table {|t| t.string :str_column }
9
- end
10
-
11
- it "column information requests" do
12
- @wrapper.str_column.column_name.should == :str_column
13
- end
14
-
15
- it "supports dropping" do
16
- @wrapper.drop
17
-
18
- db.table_exists?(:test_table).should be_false
19
- end
20
- end
@@ -1,4 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- describe MigrationValidators::Spec::Support::TestAdapter, "supports", :type => :mv_test do
4
- end
data/spec/mv-test_spec.rb DELETED
@@ -1,4 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "MvTest" do
4
- end
data/spec/spec_helper.rb DELETED
@@ -1,12 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
- require 'mv-test'
5
-
6
- # Requires supporting files with custom matchers and macros, etc,
7
- # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
-
10
- RSpec.configure do |config|
11
-
12
- end