rubyfb 0.5.7 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +11 -0
- data/Manifest +3 -0
- data/Rakefile +1 -1
- data/ext/Blob.c +10 -7
- data/ext/Blob.h +4 -2
- data/ext/Connection.c +4 -23
- data/ext/ResultSet.c +1 -1
- data/ext/Statement.c +34 -0
- data/ext/Statement.h +1 -0
- data/ext/Transaction.c +1 -19
- data/ext/TypeMap.c +35 -29
- data/ext/TypeMap.h +0 -1
- data/ext/uncrustify.cfg +1298 -0
- data/lib/Connection.rb +25 -0
- data/lib/active_record/connection_adapters/rubyfb_adapter.rb +5 -1
- data/lib/arel/visitors/rubyfb_15compat.rb +25 -0
- data/lib/rubyfb.rb +1 -0
- data/lib/rubyfb_lib.so +0 -0
- data/lib/rubyfb_options.rb +51 -0
- data/rubyfb.gemspec +4 -4
- data/test/AddRemoveUserTest.rb +1 -2
- data/test/BackupRestoreTest.rb +22 -22
- data/test/BlobTest.rb +2 -3
- data/test/CharacterSetTest.rb +46 -51
- data/test/ConnectionTest.rb +1 -2
- data/test/DDLTest.rb +1 -2
- data/test/DatabaseTest.rb +2 -3
- data/test/GeneratorTest.rb +1 -2
- data/test/KeyTest.rb +1 -2
- data/test/ResultSetTest.rb +14 -2
- data/test/RoleTest.rb +1 -2
- data/test/RowCountTest.rb +1 -2
- data/test/RowTest.rb +1 -2
- data/test/SQLTest.rb +1 -2
- data/test/SQLTypeTest.rb +1 -2
- data/test/StatementTest.rb +1 -2
- data/test/TestSetup.rb +2 -0
- data/test/TransactionTest.rb +1 -2
- data/test/TypeTest.rb +1 -2
- metadata +8 -4
data/lib/Connection.rb
CHANGED
@@ -4,5 +4,30 @@ module Rubyfb
|
|
4
4
|
def prepare_call(procedure_name)
|
5
5
|
Rubyfb::ProcedureCall.new(self, procedure_name)
|
6
6
|
end
|
7
|
+
|
8
|
+
def force_encoding(fb_str, sqlsubtype)
|
9
|
+
fb_str
|
10
|
+
end
|
11
|
+
private
|
12
|
+
def init_m17n
|
13
|
+
return unless String.method_defined?(:force_encoding)
|
14
|
+
|
15
|
+
@charset_map= Hash.new(Rubyfb::Options.charset_name_map.default)
|
16
|
+
start_transaction do |tr|
|
17
|
+
execute("SELECT RDB$CHARACTER_SET_NAME, RDB$CHARACTER_SET_ID FROM RDB$CHARACTER_SETS", tr) do |row|
|
18
|
+
@charset_map[row['RDB$CHARACTER_SET_ID']]=Rubyfb::Options.charset_name_map[row['RDB$CHARACTER_SET_NAME'].strip]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
instance_eval do
|
22
|
+
def force_encoding(fb_str, sqlsubtype)
|
23
|
+
fb_str.tap do |s|
|
24
|
+
s.force_encoding(@charset_map[sqlsubtype])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
7
29
|
end
|
8
30
|
end
|
31
|
+
|
32
|
+
|
33
|
+
|
@@ -3,7 +3,11 @@ require 'active_record/connection_adapters/abstract_adapter'
|
|
3
3
|
require 'active_support/core_ext/kernel/requires'
|
4
4
|
|
5
5
|
if defined?(Arel) then
|
6
|
-
|
6
|
+
if Rubyfb::Options.fb15_compat
|
7
|
+
require 'arel/visitors/rubyfb_15compat'
|
8
|
+
else
|
9
|
+
require 'arel/visitors/rubyfb'
|
10
|
+
end
|
7
11
|
end
|
8
12
|
|
9
13
|
module Rubyfb # :nodoc: all
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Arel
|
2
|
+
module Visitors
|
3
|
+
class RubyFB_15Compat < Arel::Visitors::ToSql
|
4
|
+
Arel::Visitors::VISITORS['rubyfb'] = Arel::Visitors::RubyFB_15Compat
|
5
|
+
private
|
6
|
+
def visit_Arel_Nodes_SelectStatement o
|
7
|
+
limit = o.limit; o.limit = nil;
|
8
|
+
offset = o.offset; o.offset = nil;
|
9
|
+
super.tap do |s|
|
10
|
+
if limit || offset
|
11
|
+
s.gsub!(/^\s*select/i, "SELECT #{fb_limit(limit)} #{fb_offset(offset)} ")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def fb_limit limit
|
17
|
+
"first #{limit.expr}" if limit
|
18
|
+
end
|
19
|
+
|
20
|
+
def fb_offset offset
|
21
|
+
"skip #{offset.expr}" if offset
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/rubyfb.rb
CHANGED
data/lib/rubyfb_lib.so
CHANGED
Binary file
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Rubyfb
|
2
|
+
class Options
|
3
|
+
@@fb15_compat = false
|
4
|
+
def self.fb15_compat
|
5
|
+
@@fb15_compat
|
6
|
+
end
|
7
|
+
def self.fb15_compat=(value)
|
8
|
+
@@fb15_compat = value
|
9
|
+
end
|
10
|
+
@@charset_name_map = {
|
11
|
+
'BIG_5' => 'Big5',
|
12
|
+
'GB_2312' => 'GB2312',
|
13
|
+
'GBK' => 'GBK',
|
14
|
+
'KOI8U' => 'KOI8-U',
|
15
|
+
'ISO8859_1' => 'ISO-8859-1',
|
16
|
+
'ISO8859_2' => 'ISO-8859-2',
|
17
|
+
'ISO8859_3' => 'ISO-8859-3',
|
18
|
+
'ISO8859_4' => 'ISO-8859-4',
|
19
|
+
'ISO8859_5' => 'ISO-8859-5',
|
20
|
+
'ISO8859_6' => 'ISO-8859-6',
|
21
|
+
'ISO8859_7' => 'ISO-8859-7',
|
22
|
+
'ISO8859_8' => 'ISO-8859-8',
|
23
|
+
'ISO8859_9' => 'ISO-8859-9',
|
24
|
+
'ISO8859_10' => 'ISO-8859-10',
|
25
|
+
'ISO8859_11' => 'ISO-8859-11',
|
26
|
+
'ISO8859_12' => 'ISO-8859-12',
|
27
|
+
'ISO8859_13' => 'ISO-8859-13',
|
28
|
+
'SJIS' => 'Windows-31J',
|
29
|
+
'UTF8' => 'UTF-8',
|
30
|
+
'UNICODE_FSS' => 'UTF-8',
|
31
|
+
'DOS866' => 'IBM866',
|
32
|
+
'WIN874' => 'Windows-874',
|
33
|
+
'WIN1250' => 'Windows-1250',
|
34
|
+
'WIN1251' => 'Windows-1251',
|
35
|
+
'WIN1252' => 'Windows-1252',
|
36
|
+
'WIN1253' => 'Windows-1253',
|
37
|
+
'WIN1254' => 'Windows-1254',
|
38
|
+
'WIN1255' => 'Windows-1255',
|
39
|
+
'WIN1256' => 'Windows-1256',
|
40
|
+
'WIN1257' => 'Windows-1257',
|
41
|
+
'WIN1258' => 'Windows-1258'
|
42
|
+
}.tap do |h|
|
43
|
+
h.default = 'ASCII-8BIT'
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.charset_name_map
|
47
|
+
@@charset_name_map
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
data/rubyfb.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rubyfb}
|
5
|
-
s.version = "0.5.
|
5
|
+
s.version = "0.5.8"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["George Georgiev"]
|
9
|
-
s.date = %q{2011-
|
9
|
+
s.date = %q{2011-04-03}
|
10
10
|
s.description = %q{Firebird SQL access library}
|
11
11
|
s.email = %q{georgiev@heatbs.com}
|
12
12
|
s.extensions = ["ext/extconf.rb"]
|
13
|
-
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "examples/example01.rb", "ext/extconf.rb", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/rubyfb.rb", "lib/src.rb"]
|
14
|
-
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "examples/example01.rb", "ext/AddUser.c", "ext/AddUser.h", "ext/Backup.c", "ext/Backup.h", "ext/Blob.c", "ext/Blob.h", "ext/Common.c", "ext/Common.h", "ext/Connection.c", "ext/Connection.h", "ext/DataArea.c", "ext/DataArea.h", "ext/Database.c", "ext/Database.h", "ext/FireRuby.c", "ext/FireRuby.h", "ext/FireRubyException.c", "ext/FireRubyException.h", "ext/Generator.c", "ext/Generator.h", "ext/RemoveUser.c", "ext/RemoveUser.h", "ext/Restore.c", "ext/Restore.h", "ext/ResultSet.c", "ext/ResultSet.h", "ext/Row.c", "ext/Row.h", "ext/ServiceManager.c", "ext/ServiceManager.h", "ext/Services.c", "ext/Services.h", "ext/Statement.c", "ext/Statement.h", "ext/Transaction.c", "ext/Transaction.h", "ext/TypeMap.c", "ext/TypeMap.h", "ext/extconf.rb", "ext/rfbint.h", "ext/rfbsleep.h", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/active_record/connection_adapters/rubyfb_adapter.rb", "lib/arel/visitors/rubyfb.rb", "lib/mkdoc", "lib/rubyfb.rb", "lib/rubyfb_lib.so", "lib/src.rb", "mswin32fb/fbclient_mingw.def", "mswin32fb/fbclient_mingw.lib", "mswin32fb/fbclient_ms.lib", "mswin32fb/ibase.h", "mswin32fb/iberror.h", "test/AddRemoveUserTest.rb", "test/BackupRestoreTest.rb", "test/BlobTest.rb", "test/CharacterSetTest.rb", "test/ConnectionTest.rb", "test/DDLTest.rb", "test/DatabaseTest.rb", "test/GeneratorTest.rb", "test/KeyTest.rb", "test/ResultSetTest.rb", "test/RoleTest.rb", "test/RowCountTest.rb", "test/RowTest.rb", "test/SQLTest.rb", "test/SQLTypeTest.rb", "test/ServiceManagerTest.rb", "test/StatementTest.rb", "test/TestSetup.rb", "test/TransactionTest.rb", "test/TypeTest.rb", "rubyfb.gemspec"]
|
13
|
+
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "examples/example01.rb", "ext/extconf.rb", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/rubyfb.rb", "lib/rubyfb_options.rb", "lib/src.rb"]
|
14
|
+
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "examples/example01.rb", "ext/AddUser.c", "ext/AddUser.h", "ext/Backup.c", "ext/Backup.h", "ext/Blob.c", "ext/Blob.h", "ext/Common.c", "ext/Common.h", "ext/Connection.c", "ext/Connection.h", "ext/DataArea.c", "ext/DataArea.h", "ext/Database.c", "ext/Database.h", "ext/FireRuby.c", "ext/FireRuby.h", "ext/FireRubyException.c", "ext/FireRubyException.h", "ext/Generator.c", "ext/Generator.h", "ext/RemoveUser.c", "ext/RemoveUser.h", "ext/Restore.c", "ext/Restore.h", "ext/ResultSet.c", "ext/ResultSet.h", "ext/Row.c", "ext/Row.h", "ext/ServiceManager.c", "ext/ServiceManager.h", "ext/Services.c", "ext/Services.h", "ext/Statement.c", "ext/Statement.h", "ext/Transaction.c", "ext/Transaction.h", "ext/TypeMap.c", "ext/TypeMap.h", "ext/extconf.rb", "ext/rfbint.h", "ext/rfbsleep.h", "ext/uncrustify.cfg", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/active_record/connection_adapters/rubyfb_adapter.rb", "lib/arel/visitors/rubyfb.rb", "lib/arel/visitors/rubyfb_15compat.rb", "lib/mkdoc", "lib/rubyfb.rb", "lib/rubyfb_lib.so", "lib/rubyfb_options.rb", "lib/src.rb", "mswin32fb/fbclient_mingw.def", "mswin32fb/fbclient_mingw.lib", "mswin32fb/fbclient_ms.lib", "mswin32fb/ibase.h", "mswin32fb/iberror.h", "test/AddRemoveUserTest.rb", "test/BackupRestoreTest.rb", "test/BlobTest.rb", "test/CharacterSetTest.rb", "test/ConnectionTest.rb", "test/DDLTest.rb", "test/DatabaseTest.rb", "test/GeneratorTest.rb", "test/KeyTest.rb", "test/ResultSetTest.rb", "test/RoleTest.rb", "test/RowCountTest.rb", "test/RowTest.rb", "test/SQLTest.rb", "test/SQLTypeTest.rb", "test/ServiceManagerTest.rb", "test/StatementTest.rb", "test/TestSetup.rb", "test/TransactionTest.rb", "test/TypeTest.rb", "rubyfb.gemspec"]
|
15
15
|
s.homepage = %q{http://rubyforge.org/projects/rubyfb}
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rubyfb", "--main", "README"]
|
17
17
|
s.require_paths = ["lib", "ext"]
|
data/test/AddRemoveUserTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class AddRemoveUserTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}add_remove_user_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "add_remove_user_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/BackupRestoreTest.rb
CHANGED
@@ -8,20 +8,27 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class BackupRestoreTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
DB_FILE = File.join(DB_DIR, "backup_restore_unit_test.fdb")
|
12
|
+
BACKUP_FILE = File.join(DB_DIR, "database.bak")
|
13
|
+
|
14
|
+
def cleanup
|
15
|
+
# Remove existing database files.
|
16
|
+
if File.exist?(DB_FILE)
|
17
|
+
db = Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
18
|
+
end
|
19
|
+
|
20
|
+
if File.exist?(BACKUP_FILE)
|
21
|
+
begin
|
22
|
+
File.delete(BACKUP_FILE)
|
23
|
+
rescue
|
24
|
+
# ignore file permissions may cause this
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
14
28
|
|
15
29
|
def setup
|
16
30
|
puts "#{self.class.name} started." if TEST_LOGGING
|
17
|
-
|
18
|
-
if File.exist?(DB_FILE)
|
19
|
-
db = Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
20
|
-
end
|
21
|
-
|
22
|
-
if File.exist?(BACKUP_FILE)
|
23
|
-
File.delete(BACKUP_FILE)
|
24
|
-
end
|
31
|
+
cleanup
|
25
32
|
|
26
33
|
# Create and populate the database files.
|
27
34
|
@database = Database.create(DB_FILE, DB_USER_NAME, DB_PASSWORD)
|
@@ -35,17 +42,10 @@ class BackupRestoreTest < Test::Unit::TestCase
|
|
35
42
|
end
|
36
43
|
end
|
37
44
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
if File.exist?(BACKUP_FILE)
|
45
|
-
File.delete(BACKUP_FILE)
|
46
|
-
end
|
47
|
-
puts "#{self.class.name} finished." if TEST_LOGGING
|
48
|
-
end
|
45
|
+
def teardown
|
46
|
+
cleanup
|
47
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
48
|
+
end
|
49
49
|
|
50
50
|
def test01
|
51
51
|
sm = ServiceManager.new('localhost')
|
data/test/BlobTest.rb
CHANGED
@@ -8,9 +8,8 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class BlobTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
|
13
|
-
TXT_FILE = "#{CURDIR}#{File::SEPARATOR}data.txt"
|
11
|
+
DB_FILE = File.join(DB_DIR, "blob_unit_test.fdb")
|
12
|
+
TXT_FILE = File.join(DB_DIR, "data.txt")
|
14
13
|
DATA = "aasdfjakhdsfljkashdfslfhaslhasyhfawyufalwuhlhsdlkfhasljlkshflalksjhasjhalsjhdf\nasdflkajshdfjkahsdfjajdfalsdfasdf\nasdfasdfasdkljfhajdfhkjasdfagdsflalkjfgagsdflasdf\nasdfasdfasdf"
|
15
14
|
|
16
15
|
def setup
|
data/test/CharacterSetTest.rb
CHANGED
@@ -9,56 +9,51 @@ require 'rubyfb'
|
|
9
9
|
include Rubyfb
|
10
10
|
|
11
11
|
class CharacterSetTest < Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
DB_FILE = File.join(DB_DIR, "cxnarset_unit_test.fdb")
|
13
|
+
CHAR_SET = 'WIN1251'
|
14
|
+
|
15
|
+
def setup
|
16
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
17
|
+
if File::exist?(DB_FILE)
|
18
|
+
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
19
|
+
end
|
20
|
+
@database = Database.create(DB_FILE, DB_USER_NAME, DB_PASSWORD, 1024, CHAR_SET)
|
21
|
+
end
|
22
|
+
|
23
|
+
def teardown
|
24
|
+
if File::exist?(DB_FILE)
|
25
|
+
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
26
|
+
end
|
27
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
28
|
+
end
|
29
|
+
|
30
|
+
def test01
|
31
|
+
db = Database.new(DB_FILE, CHAR_SET)
|
32
|
+
|
33
|
+
assert(db.character_set = CHAR_SET)
|
34
|
+
|
35
|
+
db.character_set = 'ASCII'
|
36
|
+
assert(db.character_set == 'ASCII')
|
37
|
+
end
|
38
|
+
|
39
|
+
def test02
|
40
|
+
db = Database.new(DB_FILE, CHAR_SET)
|
41
|
+
|
42
|
+
win1251_str = '���������'
|
43
|
+
db.connect("SYSDBA", "masterkey") do |cxn|
|
44
|
+
cxn.start_transaction do |tr|
|
45
|
+
cxn.execute("CREATE TABLE SAMPLE_TABLE(SAMPLE_FIELD VARCHAR(100) CHARACTER SET UTF8)", tr)
|
46
|
+
end
|
47
|
+
cxn.start_transaction do |tr|
|
48
|
+
cxn.execute("INSERT INTO SAMPLE_TABLE VALUES ('#{win1251_str}')", tr)
|
49
|
+
row_count = 0
|
50
|
+
cxn.execute("SELECT * FROM SAMPLE_TABLE WHERE SAMPLE_FIELD = '#{win1251_str}'", tr) do |row|
|
51
|
+
assert(row['SAMPLE_FIELD']==win1251_str, "Database encoding failed")
|
52
|
+
row_count += 1
|
53
|
+
end
|
54
|
+
assert(1==row_count)
|
20
55
|
end
|
21
|
-
|
22
|
-
|
23
|
-
CHAR_SET)
|
24
|
-
end
|
25
|
-
|
26
|
-
def teardown
|
27
|
-
if File::exist?(DB_FILE)
|
28
|
-
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
29
|
-
end
|
30
|
-
puts "#{self.class.name} finished." if TEST_LOGGING
|
31
|
-
end
|
32
|
-
|
33
|
-
def test01
|
34
|
-
db = Database.new(DB_FILE, CHAR_SET)
|
35
|
-
|
36
|
-
assert(db.character_set = CHAR_SET)
|
37
|
-
|
38
|
-
db.character_set = 'ASCII'
|
39
|
-
assert(db.character_set == 'ASCII')
|
40
|
-
end
|
41
|
-
|
42
|
-
def test02
|
43
|
-
db = Database.new(DB_FILE, CHAR_SET)
|
44
|
-
|
45
|
-
begin
|
46
|
-
win1251_str = '���������'
|
47
|
-
db.connect("SYSDBA", "masterkey") do |cxn|
|
48
|
-
cxn.start_transaction do |tr|
|
49
|
-
cxn.execute("CREATE TABLE SAMPLE_TABLE(SAMPLE_FIELD VARCHAR(100))",tr)
|
50
|
-
end
|
51
|
-
cxn.start_transaction do |tr|
|
52
|
-
cxn.execute("INSERT INTO SAMPLE_TABLE VALUES ('#{win1251_str}')",tr)
|
53
|
-
cxn.execute("SELECT * FROM SAMPLE_TABLE WHERE SAMPLE_FIELD = "\
|
54
|
-
"'#{win1251_str}'",tr) do |row|
|
55
|
-
# here we have an exception:
|
56
|
-
some_var = row['SAMPLE_FIELD']
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
# rescue => error
|
61
|
-
# assert("Character set unit test failure.", false)
|
62
|
-
end
|
63
|
-
end
|
56
|
+
end
|
57
|
+
end
|
64
58
|
end
|
59
|
+
|
data/test/ConnectionTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class ConnectionTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}con_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "con_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/DDLTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class DDLTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}ddl_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "ddl_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/DatabaseTest.rb
CHANGED
@@ -8,9 +8,8 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class DatabaseTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
|
13
|
-
CREATE_FILE = "#{CURDIR}#{File::SEPARATOR}db_create_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "db_unit_test.fdb")
|
12
|
+
CREATE_FILE = File.join(DB_DIR, "db_create_test.fdb")
|
14
13
|
|
15
14
|
def setup
|
16
15
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/GeneratorTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class GeneratorTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}generator_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "generator_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/KeyTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class KeyTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}key_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "key_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/ResultSetTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class ResultSetTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}result_set_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "result_set_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
@@ -172,4 +171,17 @@ class ResultSetTest < Test::Unit::TestCase
|
|
172
171
|
ensure
|
173
172
|
results.close if results
|
174
173
|
end
|
174
|
+
|
175
|
+
def test06
|
176
|
+
results = @transactions.first.execute(<<-EOSQL)
|
177
|
+
SELECT * FROM RDB$DATABASE WHERE 1=0
|
178
|
+
EOSQL
|
179
|
+
|
180
|
+
assert_nil(results.fetch,
|
181
|
+
'Initial #fetch of empty result set was not nil')
|
182
|
+
assert(results.exhausted?,
|
183
|
+
'Completely fetched ResultSet was not #exhausted?')
|
184
|
+
assert_nil(results.fetch,
|
185
|
+
'#fetch after exhaustion was not nil')
|
186
|
+
end
|
175
187
|
end
|
data/test/RoleTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class RoleTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}role_unit_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "role_unit_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/RowCountTest.rb
CHANGED
@@ -8,8 +8,7 @@ require 'rubyfb'
|
|
8
8
|
include Rubyfb
|
9
9
|
|
10
10
|
class RowCountTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}row_count_test.fdb"
|
11
|
+
DB_FILE = File.join(DB_DIR, "row_count_test.fdb")
|
13
12
|
|
14
13
|
def setup
|
15
14
|
puts "#{self.class.name} started." if TEST_LOGGING
|