mockley_crew 1.1.9 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mockley_crew/version.rb +1 -1
  3. data/lib/mockley_crew.rb +2 -1
  4. metadata +1 -67
  5. data/vendor/gems/sqlite3/cache/sqlite3-1.3.13.gem +0 -0
  6. data/vendor/gems/sqlite3/extensions/x86_64-linux/2.5.0/sqlite3-1.3.13/gem.build_complete +0 -0
  7. data/vendor/gems/sqlite3/extensions/x86_64-linux/2.5.0/sqlite3-1.3.13/gem_make.out +0 -33
  8. data/vendor/gems/sqlite3/extensions/x86_64-linux/2.5.0/sqlite3-1.3.13/mkmf.log +0 -592
  9. data/vendor/gems/sqlite3/extensions/x86_64-linux/2.5.0/sqlite3-1.3.13/sqlite3/sqlite3_native.so +0 -0
  10. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/API_CHANGES.rdoc +0 -50
  11. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/CHANGELOG.rdoc +0 -292
  12. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ChangeLog.cvs +0 -88
  13. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/Gemfile +0 -15
  14. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/LICENSE +0 -27
  15. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/Manifest.txt +0 -52
  16. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/README.rdoc +0 -118
  17. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/Rakefile +0 -10
  18. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/Makefile +0 -263
  19. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/backup.c +0 -168
  20. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/backup.h +0 -15
  21. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/backup.o +0 -0
  22. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/database.c +0 -888
  23. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/database.h +0 -15
  24. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/database.o +0 -0
  25. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/exception.c +0 -94
  26. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/exception.h +0 -8
  27. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/exception.o +0 -0
  28. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/extconf.rb +0 -71
  29. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/sqlite3.c +0 -152
  30. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/sqlite3.o +0 -0
  31. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/sqlite3_native.so +0 -0
  32. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/sqlite3_ruby.h +0 -52
  33. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/statement.c +0 -447
  34. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/statement.h +0 -16
  35. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/ext/sqlite3/statement.o +0 -0
  36. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/faq/faq.rb +0 -145
  37. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/faq/faq.yml +0 -426
  38. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/constants.rb +0 -49
  39. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/database.rb +0 -591
  40. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/errors.rb +0 -44
  41. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/pragmas.rb +0 -588
  42. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/resultset.rb +0 -195
  43. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/sqlite3_native.so +0 -0
  44. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/statement.rb +0 -144
  45. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/translator.rb +0 -118
  46. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/value.rb +0 -57
  47. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3/version.rb +0 -25
  48. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/lib/sqlite3.rb +0 -15
  49. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/setup.rb +0 -1333
  50. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/tasks/faq.rake +0 -9
  51. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/tasks/gem.rake +0 -38
  52. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/tasks/native.rake +0 -52
  53. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/tasks/vendor_sqlite3.rake +0 -97
  54. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/helper.rb +0 -18
  55. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_backup.rb +0 -33
  56. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_collation.rb +0 -82
  57. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_database.rb +0 -430
  58. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_database_readonly.rb +0 -36
  59. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_deprecated.rb +0 -44
  60. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_encoding.rb +0 -155
  61. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_integration.rb +0 -576
  62. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_integration_open_close.rb +0 -30
  63. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_integration_pending.rb +0 -115
  64. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_integration_resultset.rb +0 -159
  65. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_integration_statement.rb +0 -194
  66. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_result_set.rb +0 -37
  67. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_sqlite3.rb +0 -21
  68. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_statement.rb +0 -260
  69. data/vendor/gems/sqlite3/gems/sqlite3-1.3.13/test/test_statement_execute.rb +0 -35
  70. data/vendor/gems/sqlite3/specifications/sqlite3-1.3.13.gemspec +0 -56
@@ -1,159 +0,0 @@
1
- require 'helper'
2
-
3
- class TC_ResultSet < SQLite3::TestCase
4
- def setup
5
- @db = SQLite3::Database.new(":memory:")
6
- @db.transaction do
7
- @db.execute "create table foo ( a integer primary key, b text )"
8
- @db.execute "insert into foo ( b ) values ( 'foo' )"
9
- @db.execute "insert into foo ( b ) values ( 'bar' )"
10
- @db.execute "insert into foo ( b ) values ( 'baz' )"
11
- end
12
- @stmt = @db.prepare( "select * from foo where a in ( ?, ? )" )
13
- @result = @stmt.execute
14
- end
15
-
16
- def teardown
17
- @stmt.close
18
- @db.close
19
- end
20
-
21
- def test_reset_unused
22
- assert_nothing_raised { @result.reset }
23
- assert @result.to_a.empty?
24
- end
25
-
26
- def test_reset_used
27
- @result.to_a
28
- assert_nothing_raised { @result.reset }
29
- assert @result.to_a.empty?
30
- end
31
-
32
- def test_reset_with_bind
33
- @result.to_a
34
- assert_nothing_raised { @result.reset( 1, 2 ) }
35
- assert_equal 2, @result.to_a.length
36
- end
37
-
38
- def test_eof_inner
39
- @result.reset( 1 )
40
- assert !@result.eof?
41
- end
42
-
43
- def test_eof_edge
44
- @result.reset( 1 )
45
- @result.next # to first row
46
- @result.next # to end of result set
47
- assert @result.eof?
48
- end
49
-
50
- def test_next_eof
51
- @result.reset( 1 )
52
- assert_not_nil @result.next
53
- assert_nil @result.next
54
- end
55
-
56
- def test_next_no_type_translation_no_hash
57
- @result.reset( 1 )
58
- assert_equal [ 1, "foo" ], @result.next
59
- end
60
-
61
- def test_next_type_translation
62
- @result.reset( 1 )
63
- assert_equal [ 1, "foo" ], @result.next
64
- end
65
-
66
- def test_next_type_translation_with_untyped_column
67
- @db.query( "select count(*) from foo" ) do |result|
68
- assert_equal [3], result.next
69
- end
70
- end
71
-
72
- def test_type_translation_with_null_column
73
- time = '1974-07-25 14:39:00'
74
-
75
- @db.execute "create table bar ( a integer, b time, c string )"
76
- @db.execute "insert into bar (a, b, c) values (NULL, '#{time}', 'hello')"
77
- @db.execute "insert into bar (a, b, c) values (1, NULL, 'hello')"
78
- @db.execute "insert into bar (a, b, c) values (2, '#{time}', NULL)"
79
- @db.query( "select * from bar" ) do |result|
80
- assert_equal [nil, time, 'hello'], result.next
81
- assert_equal [1, nil, 'hello'], result.next
82
- assert_equal [2, time, nil], result.next
83
- end
84
- end
85
-
86
- def test_real_translation
87
- @db.execute('create table foo_real(a real)')
88
- @db.execute('insert into foo_real values (42)' )
89
- @db.query('select a, sum(a), typeof(a), typeof(sum(a)) from foo_real') do |result|
90
- result = result.next
91
- assert result[0].is_a?(Float)
92
- assert result[1].is_a?(Float)
93
- assert result[2].is_a?(String)
94
- assert result[3].is_a?(String)
95
- end
96
- end
97
-
98
- def test_next_results_as_hash
99
- @db.results_as_hash = true
100
- @result.reset( 1 )
101
- hash = @result.next
102
- assert_equal( { "a" => 1, "b" => "foo" },
103
- hash )
104
- assert_equal hash[0], 1
105
- assert_equal hash[1], "foo"
106
- end
107
-
108
- def test_tainted_results_as_hash
109
- @db.results_as_hash = true
110
- @result.reset( 1 )
111
- row = @result.next
112
- row.each do |_, v|
113
- assert(v.tainted?) if String === v
114
- end
115
- end
116
-
117
- def test_tainted_row_values
118
- @result.reset( 1 )
119
- row = @result.next
120
- row.each do |v|
121
- assert(v.tainted?) if String === v
122
- end
123
- end
124
-
125
- def test_each
126
- called = 0
127
- @result.reset( 1, 2 )
128
- @result.each { |row| called += 1 }
129
- assert_equal 2, called
130
- end
131
-
132
- def test_enumerable
133
- @result.reset( 1, 2 )
134
- assert_equal 2, @result.to_a.length
135
- end
136
-
137
- def test_types
138
- assert_equal [ "integer", "text" ], @result.types
139
- end
140
-
141
- def test_columns
142
- assert_equal [ "a", "b" ], @result.columns
143
- end
144
-
145
- def test_close
146
- stmt = @db.prepare( "select * from foo" )
147
- result = stmt.execute
148
- assert !result.closed?
149
- result.close
150
- assert result.closed?
151
- assert stmt.closed?
152
- assert_raise( SQLite3::Exception ) { result.reset }
153
- assert_raise( SQLite3::Exception ) { result.next }
154
- assert_raise( SQLite3::Exception ) { result.each }
155
- assert_raise( SQLite3::Exception ) { result.close }
156
- assert_raise( SQLite3::Exception ) { result.types }
157
- assert_raise( SQLite3::Exception ) { result.columns }
158
- end
159
- end
@@ -1,194 +0,0 @@
1
- require 'helper'
2
-
3
- class TC_Statement < SQLite3::TestCase
4
- def setup
5
- @db = SQLite3::Database.new(":memory:")
6
- @db.transaction do
7
- @db.execute "create table foo ( a integer primary key, b text )"
8
- @db.execute "insert into foo ( b ) values ( 'foo' )"
9
- @db.execute "insert into foo ( b ) values ( 'bar' )"
10
- @db.execute "insert into foo ( b ) values ( 'baz' )"
11
- end
12
- @stmt = @db.prepare( "select * from foo where a in ( ?, :named )" )
13
- end
14
-
15
- def teardown
16
- @stmt.close
17
- @db.close
18
- end
19
-
20
- def test_remainder_empty
21
- assert_equal "", @stmt.remainder
22
- end
23
-
24
- def test_remainder_nonempty
25
- called = false
26
- @db.prepare( "select * from foo;\n blah" ) do |stmt|
27
- called = true
28
- assert_equal "\n blah", stmt.remainder
29
- end
30
- assert called
31
- end
32
-
33
- def test_bind_params_empty
34
- assert_nothing_raised { @stmt.bind_params }
35
- assert @stmt.execute!.empty?
36
- end
37
-
38
- def test_bind_params_array
39
- @stmt.bind_params 1, 2
40
- assert_equal 2, @stmt.execute!.length
41
- end
42
-
43
- def test_bind_params_hash
44
- @stmt.bind_params ":named" => 2
45
- assert_equal 1, @stmt.execute!.length
46
- end
47
-
48
- def test_bind_params_hash_without_colon
49
- @stmt.bind_params "named" => 2
50
- assert_equal 1, @stmt.execute!.length
51
- end
52
-
53
- def test_bind_params_hash_as_symbol
54
- @stmt.bind_params :named => 2
55
- assert_equal 1, @stmt.execute!.length
56
- end
57
-
58
- def test_bind_params_mixed
59
- @stmt.bind_params( 1, ":named" => 2 )
60
- assert_equal 2, @stmt.execute!.length
61
- end
62
-
63
- def test_bind_param_by_index
64
- @stmt.bind_params( 1, 2 )
65
- assert_equal 2, @stmt.execute!.length
66
- end
67
-
68
- def test_bind_param_by_name_bad
69
- assert_raise( SQLite3::Exception ) { @stmt.bind_param( "@named", 2 ) }
70
- end
71
-
72
- def test_bind_param_by_name_good
73
- @stmt.bind_param( ":named", 2 )
74
- assert_equal 1, @stmt.execute!.length
75
- end
76
-
77
- def test_bind_param_with_various_types
78
- @db.transaction do
79
- @db.execute "create table all_types ( a integer primary key, b float, c string, d integer )"
80
- @db.execute "insert into all_types ( b, c, d ) values ( 1.4, 'hello', 68719476735 )"
81
- end
82
-
83
- assert_equal 1, @db.execute( "select * from all_types where b = ?", 1.4 ).length
84
- assert_equal 1, @db.execute( "select * from all_types where c = ?", 'hello').length
85
- assert_equal 1, @db.execute( "select * from all_types where d = ?", 68719476735).length
86
- end
87
-
88
- def test_execute_no_bind_no_block
89
- assert_instance_of SQLite3::ResultSet, @stmt.execute
90
- end
91
-
92
- def test_execute_with_bind_no_block
93
- assert_instance_of SQLite3::ResultSet, @stmt.execute( 1, 2 )
94
- end
95
-
96
- def test_execute_no_bind_with_block
97
- called = false
98
- @stmt.execute { |row| called = true }
99
- assert called
100
- end
101
-
102
- def test_execute_with_bind_with_block
103
- called = 0
104
- @stmt.execute( 1, 2 ) { |row| called += 1 }
105
- assert_equal 1, called
106
- end
107
-
108
- def test_reexecute
109
- r = @stmt.execute( 1, 2 )
110
- assert_equal 2, r.to_a.length
111
- assert_nothing_raised { r = @stmt.execute( 1, 2 ) }
112
- assert_equal 2, r.to_a.length
113
- end
114
-
115
- def test_execute_bang_no_bind_no_block
116
- assert @stmt.execute!.empty?
117
- end
118
-
119
- def test_execute_bang_with_bind_no_block
120
- assert_equal 2, @stmt.execute!( 1, 2 ).length
121
- end
122
-
123
- def test_execute_bang_no_bind_with_block
124
- called = 0
125
- @stmt.execute! { |row| called += 1 }
126
- assert_equal 0, called
127
- end
128
-
129
- def test_execute_bang_with_bind_with_block
130
- called = 0
131
- @stmt.execute!( 1, 2 ) { |row| called += 1 }
132
- assert_equal 2, called
133
- end
134
-
135
- def test_columns
136
- c1 = @stmt.columns
137
- c2 = @stmt.columns
138
- assert_same c1, c2
139
- assert_equal 2, c1.length
140
- end
141
-
142
- def test_columns_computed
143
- called = false
144
- @db.prepare( "select count(*) from foo" ) do |stmt|
145
- called = true
146
- assert_equal [ "count(*)" ], stmt.columns
147
- end
148
- assert called
149
- end
150
-
151
- def test_types
152
- t1 = @stmt.types
153
- t2 = @stmt.types
154
- assert_same t1, t2
155
- assert_equal 2, t1.length
156
- end
157
-
158
- def test_types_computed
159
- called = false
160
- @db.prepare( "select count(*) from foo" ) do |stmt|
161
- called = true
162
- assert_equal [ nil ], stmt.types
163
- end
164
- assert called
165
- end
166
-
167
- def test_close
168
- stmt = @db.prepare( "select * from foo" )
169
- assert !stmt.closed?
170
- stmt.close
171
- assert stmt.closed?
172
- assert_raise( SQLite3::Exception ) { stmt.execute }
173
- assert_raise( SQLite3::Exception ) { stmt.execute! }
174
- assert_raise( SQLite3::Exception ) { stmt.close }
175
- assert_raise( SQLite3::Exception ) { stmt.bind_params 5 }
176
- assert_raise( SQLite3::Exception ) { stmt.bind_param 1, 5 }
177
- assert_raise( SQLite3::Exception ) { stmt.columns }
178
- assert_raise( SQLite3::Exception ) { stmt.types }
179
- end
180
-
181
- def test_committing_tx_with_statement_active
182
- called = false
183
- @db.prepare( "select count(*) from foo" ) do |stmt|
184
- called = true
185
- count = stmt.execute!.first.first.to_i
186
- @db.transaction do
187
- @db.execute "insert into foo ( b ) values ( 'hello' )"
188
- end
189
- new_count = stmt.execute!.first.first.to_i
190
- assert_equal new_count, count+1
191
- end
192
- assert called
193
- end
194
- end
@@ -1,37 +0,0 @@
1
- require 'helper'
2
-
3
- module SQLite3
4
- class TestResultSet < SQLite3::TestCase
5
- def test_each_hash
6
- db = SQLite3::Database.new ':memory:'
7
- db.execute "create table foo ( a integer primary key, b text )"
8
- list = ('a'..'z').to_a
9
- list.each do |t|
10
- db.execute "insert into foo (b) values (\"#{t}\")"
11
- end
12
-
13
- rs = db.prepare('select * from foo').execute
14
- rs.each_hash do |hash|
15
- assert_equal list[hash['a'] - 1], hash['b']
16
- end
17
- end
18
-
19
- def test_next_hash
20
- db = SQLite3::Database.new ':memory:'
21
- db.execute "create table foo ( a integer primary key, b text )"
22
- list = ('a'..'z').to_a
23
- list.each do |t|
24
- db.execute "insert into foo (b) values (\"#{t}\")"
25
- end
26
-
27
- rs = db.prepare('select * from foo').execute
28
- rows = []
29
- while row = rs.next_hash
30
- rows << row
31
- end
32
- rows.each do |hash|
33
- assert_equal list[hash['a'] - 1], hash['b']
34
- end
35
- end
36
- end
37
- end
@@ -1,21 +0,0 @@
1
- require 'helper'
2
-
3
- module SQLite3
4
- class TestSQLite3 < SQLite3::TestCase
5
- def test_libversion
6
- assert_not_nil SQLite3.libversion
7
- end
8
-
9
- def test_threadsafe
10
- assert_not_nil SQLite3.threadsafe
11
- end
12
-
13
- def test_threadsafe?
14
- if SQLite3.threadsafe > 0
15
- assert SQLite3.threadsafe?
16
- else
17
- refute SQLite3.threadsafe?
18
- end
19
- end
20
- end
21
- end
@@ -1,260 +0,0 @@
1
- require 'helper'
2
-
3
- module SQLite3
4
- class TestStatement < SQLite3::TestCase
5
- def setup
6
- @db = SQLite3::Database.new(':memory:')
7
- @stmt = SQLite3::Statement.new(@db, "select 'foo'")
8
- end
9
-
10
- def test_double_close_does_not_segv
11
- @db.execute 'CREATE TABLE "things" ("number" float NOT NULL)'
12
-
13
- stmt = @db.prepare 'INSERT INTO things (number) VALUES (?)'
14
- assert_raises(SQLite3::ConstraintException) { stmt.execute(nil) }
15
-
16
- stmt.close
17
-
18
- assert_raises(SQLite3::Exception) { stmt.close }
19
- end
20
-
21
- def test_raises_type_error
22
- assert_raises(TypeError) do
23
- SQLite3::Statement.new( @db, nil )
24
- end
25
- end
26
-
27
- def test_insert_duplicate_records
28
- @db.execute 'CREATE TABLE "things" ("name" varchar(20) CONSTRAINT "index_things_on_name" UNIQUE)'
29
- stmt = @db.prepare("INSERT INTO things(name) VALUES(?)")
30
- stmt.execute('ruby')
31
-
32
- exception = assert_raises(SQLite3::ConstraintException) { stmt.execute('ruby') }
33
- # SQLite 3.8.2 returns new error message:
34
- # UNIQUE constraint failed: *table_name*.*column_name*
35
- # Older versions of SQLite return:
36
- # column *column_name* is not unique
37
- assert_match(/(column(s)? .* (is|are) not unique|UNIQUE constraint failed: .*)/, exception.message)
38
- end
39
-
40
- ###
41
- # This method may not exist depending on how sqlite3 was compiled
42
- def test_database_name
43
- @db.execute('create table foo(text BLOB)')
44
- @db.execute('insert into foo(text) values (?)',SQLite3::Blob.new('hello'))
45
- stmt = @db.prepare('select text from foo')
46
- if stmt.respond_to?(:database_name)
47
- assert_equal 'main', stmt.database_name(0)
48
- end
49
- end
50
-
51
- def test_prepare_blob
52
- @db.execute('create table foo(text BLOB)')
53
- stmt = @db.prepare('insert into foo(text) values (?)')
54
- stmt.bind_param(1, SQLite3::Blob.new('hello'))
55
- stmt.step
56
- stmt.close
57
- end
58
-
59
- def test_select_blob
60
- @db.execute('create table foo(text BLOB)')
61
- @db.execute('insert into foo(text) values (?)',SQLite3::Blob.new('hello'))
62
- assert_equal 'hello', @db.execute('select * from foo').first.first
63
- end
64
-
65
- def test_new
66
- assert @stmt
67
- end
68
-
69
- def test_new_closed_handle
70
- @db = SQLite3::Database.new(':memory:')
71
- @db.close
72
- assert_raises(ArgumentError) do
73
- SQLite3::Statement.new(@db, 'select "foo"')
74
- end
75
- end
76
-
77
- def test_new_with_remainder
78
- stmt = SQLite3::Statement.new(@db, "select 'foo';bar")
79
- assert_equal 'bar', stmt.remainder
80
- end
81
-
82
- def test_empty_remainder
83
- assert_equal '', @stmt.remainder
84
- end
85
-
86
- def test_close
87
- @stmt.close
88
- assert @stmt.closed?
89
- end
90
-
91
- def test_double_close
92
- @stmt.close
93
- assert_raises(SQLite3::Exception) do
94
- @stmt.close
95
- end
96
- end
97
-
98
- def test_bind_param_string
99
- stmt = SQLite3::Statement.new(@db, "select ?")
100
- stmt.bind_param(1, "hello")
101
- result = nil
102
- stmt.each { |x| result = x }
103
- assert_equal ['hello'], result
104
- end
105
-
106
- def test_bind_param_int
107
- stmt = SQLite3::Statement.new(@db, "select ?")
108
- stmt.bind_param(1, 10)
109
- result = nil
110
- stmt.each { |x| result = x }
111
- assert_equal [10], result
112
- end
113
-
114
- def test_bind_nil
115
- stmt = SQLite3::Statement.new(@db, "select ?")
116
- stmt.bind_param(1, nil)
117
- result = nil
118
- stmt.each { |x| result = x }
119
- assert_equal [nil], result
120
- end
121
-
122
- def test_bind_blobs
123
- end
124
-
125
- def test_bind_64
126
- stmt = SQLite3::Statement.new(@db, "select ?")
127
- stmt.bind_param(1, 2 ** 31)
128
- result = nil
129
- stmt.each { |x| result = x }
130
- assert_equal [2 ** 31], result
131
- end
132
-
133
- def test_bind_double
134
- stmt = SQLite3::Statement.new(@db, "select ?")
135
- stmt.bind_param(1, 2.2)
136
- result = nil
137
- stmt.each { |x| result = x }
138
- assert_equal [2.2], result
139
- end
140
-
141
- def test_named_bind
142
- stmt = SQLite3::Statement.new(@db, "select :foo")
143
- stmt.bind_param(':foo', 'hello')
144
- result = nil
145
- stmt.each { |x| result = x }
146
- assert_equal ['hello'], result
147
- end
148
-
149
- def test_named_bind_no_colon
150
- stmt = SQLite3::Statement.new(@db, "select :foo")
151
- stmt.bind_param('foo', 'hello')
152
- result = nil
153
- stmt.each { |x| result = x }
154
- assert_equal ['hello'], result
155
- end
156
-
157
- def test_named_bind_symbol
158
- stmt = SQLite3::Statement.new(@db, "select :foo")
159
- stmt.bind_param(:foo, 'hello')
160
- result = nil
161
- stmt.each { |x| result = x }
162
- assert_equal ['hello'], result
163
- end
164
-
165
- def test_named_bind_not_found
166
- stmt = SQLite3::Statement.new(@db, "select :foo")
167
- assert_raises(SQLite3::Exception) do
168
- stmt.bind_param('bar', 'hello')
169
- end
170
- end
171
-
172
- def test_each
173
- r = nil
174
- @stmt.each do |row|
175
- r = row
176
- end
177
- assert_equal(['foo'], r)
178
- end
179
-
180
- def test_reset!
181
- r = []
182
- @stmt.each { |row| r << row }
183
- @stmt.reset!
184
- @stmt.each { |row| r << row }
185
- assert_equal [['foo'], ['foo']], r
186
- end
187
-
188
- def test_step
189
- r = @stmt.step
190
- assert_equal ['foo'], r
191
- end
192
-
193
- def test_tainted
194
- r = @stmt.step
195
- assert r.first.tainted?
196
- end
197
-
198
- def test_step_twice
199
- assert_not_nil @stmt.step
200
- assert !@stmt.done?
201
- assert_nil @stmt.step
202
- assert @stmt.done?
203
-
204
- @stmt.reset!
205
- assert !@stmt.done?
206
- end
207
-
208
- def test_step_never_moves_past_done
209
- 10.times { @stmt.step }
210
- @stmt.done?
211
- end
212
-
213
- def test_column_count
214
- assert_equal 1, @stmt.column_count
215
- end
216
-
217
- def test_column_name
218
- assert_equal "'foo'", @stmt.column_name(0)
219
- assert_equal nil, @stmt.column_name(10)
220
- end
221
-
222
- def test_bind_parameter_count
223
- stmt = SQLite3::Statement.new(@db, "select ?, ?, ?")
224
- assert_equal 3, stmt.bind_parameter_count
225
- end
226
-
227
- def test_execute_with_varargs
228
- stmt = @db.prepare('select ?, ?')
229
- assert_equal [[nil, nil]], stmt.execute(nil, nil).to_a
230
- end
231
-
232
- def test_execute_with_hash
233
- stmt = @db.prepare('select :n, :h')
234
- assert_equal [[10, nil]], stmt.execute('n' => 10, 'h' => nil).to_a
235
- end
236
-
237
- def test_with_error
238
- @db.execute('CREATE TABLE "employees" ("name" varchar(20) NOT NULL CONSTRAINT "index_employees_on_name" UNIQUE)')
239
- stmt = @db.prepare("INSERT INTO Employees(name) VALUES(?)")
240
- stmt.execute('employee-1')
241
- stmt.execute('employee-1') rescue SQLite3::ConstraintException
242
- stmt.reset!
243
- assert stmt.execute('employee-2')
244
- end
245
-
246
- def test_clear_bindings
247
- stmt = @db.prepare('select ?, ?')
248
- stmt.bind_param 1, "foo"
249
- stmt.bind_param 2, "bar"
250
-
251
- # We can't fetch bound parameters back out of sqlite3, so just call
252
- # the clear_bindings! method and assert that nil is returned
253
- stmt.clear_bindings!
254
-
255
- while x = stmt.step
256
- assert_equal [nil, nil], x
257
- end
258
- end
259
- end
260
- end
@@ -1,35 +0,0 @@
1
- require 'helper'
2
-
3
- module SQLite3
4
- class TestStatementExecute < SQLite3::TestCase
5
- def setup
6
- @db = SQLite3::Database.new(':memory:')
7
- @db.execute_batch(
8
- "CREATE TABLE items (id integer PRIMARY KEY, number integer)")
9
- end
10
-
11
- def test_execute_insert
12
- ps = @db.prepare("INSERT INTO items (number) VALUES (:n)")
13
- ps.execute('n'=>10)
14
- assert_equal 1, @db.get_first_value("SELECT count(*) FROM items")
15
- ps.close
16
- end
17
-
18
- def test_execute_update
19
- @db.execute("INSERT INTO items (number) VALUES (?)", [10])
20
-
21
- ps = @db.prepare("UPDATE items SET number = :new WHERE number = :old")
22
- ps.execute('old'=>10, 'new'=>20)
23
- assert_equal 20, @db.get_first_value("SELECT number FROM items")
24
- ps.close
25
- end
26
-
27
- def test_execute_delete
28
- @db.execute("INSERT INTO items (number) VALUES (?)", [20])
29
- ps = @db.prepare("DELETE FROM items WHERE number = :n")
30
- ps.execute('n' => 20)
31
- assert_equal 0, @db.get_first_value("SELECT count(*) FROM items")
32
- ps.close
33
- end
34
- end
35
- end