fireruby 0.3.2-mswin32 → 0.4.0-mswin32
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/doc/CVS/Entries +3 -2
- data/doc/CVS/Repository +1 -1
- data/doc/README +86 -34
- data/doc/classes/CVS/Entries +1 -1
- data/doc/classes/CVS/Repository +1 -1
- data/doc/classes/FireRuby/CVS/Entries +7 -1
- data/doc/classes/FireRuby/CVS/Repository +1 -1
- data/doc/classes/FireRuby/Connection.src/CVS/Repository +1 -1
- data/doc/classes/FireRuby/Database.src/CVS/Repository +1 -1
- data/doc/classes/FireRuby/FireRubyError.src/CVS/Repository +1 -1
- data/doc/classes/FireRuby/Generator.src/CVS/Repository +1 -1
- data/doc/classes/FireRuby/ResultSet.src/CVS/Repository +1 -1
- data/doc/classes/FireRuby/Statement.src/CVS/Repository +1 -1
- data/doc/classes/FireRuby/Transaction.src/CVS/Repository +1 -1
- data/doc/files/CVS/Repository +1 -1
- data/examples/CVS/Entries +1 -1
- data/examples/CVS/Repository +1 -1
- data/examples/example01.rb +9 -4
- data/lib/CVS/Entries +3 -1
- data/lib/CVS/Repository +1 -1
- data/lib/SQLType.rb +228 -0
- data/lib/fireruby.rb +22 -0
- data/lib/fr_lib.so +0 -0
- data/lib/src.rb +53 -7
- data/test/AddRemoveUserTest.rb +7 -2
- data/test/BackupRestoreTest.rb +3 -1
- data/test/CVS/Entries +19 -16
- data/test/CVS/Repository +1 -1
- data/test/CharacterSetTest.rb +5 -2
- data/test/ConnectionTest.rb +3 -1
- data/test/DDLTest.rb +3 -1
- data/test/DatabaseTest.rb +3 -1
- data/test/GeneratorTest.rb +3 -1
- data/test/KeyTest.rb +140 -0
- data/test/ResultSetTest.rb +34 -3
- data/test/RowCountTest.rb +3 -1
- data/test/RowTest.rb +90 -24
- data/test/SQLTest.rb +4 -1
- data/test/SQLTypeTest.rb +101 -0
- data/test/ServiceManagerTest.rb +10 -2
- data/test/StatementTest.rb +18 -7
- data/test/TestSetup.rb +1 -0
- data/test/TransactionTest.rb +4 -1
- data/test/TypeTest.rb +92 -0
- data/test/UnitTest.rb +61 -15
- metadata +59 -57
- data/doc/CVS/Entries.Log +0 -2
- data/doc/classes/CVS/Entries.Log +0 -1
- data/doc/classes/FireRuby/CVS/Entries.Log +0 -7
- data/lib/fireruby.so +0 -0
data/lib/src.rb
CHANGED
@@ -241,7 +241,7 @@ module FireRuby
|
|
241
241
|
# the method or an issue occurs establishing the database
|
242
242
|
# connection.
|
243
243
|
#
|
244
|
-
def initialize(database, user
|
244
|
+
def initialize(database, user, password, options)
|
245
245
|
end
|
246
246
|
|
247
247
|
|
@@ -682,6 +682,8 @@ module FireRuby
|
|
682
682
|
# and can no longer be used.
|
683
683
|
#
|
684
684
|
class ResultSet
|
685
|
+
include Enumerable
|
686
|
+
|
685
687
|
#
|
686
688
|
# This is the constructor for the ResultSet object.
|
687
689
|
#
|
@@ -833,6 +835,18 @@ module FireRuby
|
|
833
835
|
#
|
834
836
|
def close
|
835
837
|
end
|
838
|
+
|
839
|
+
#
|
840
|
+
# This method retrieves the base SQL type for a column of data within a
|
841
|
+
# ResultSet object. The method returns one of the base types defined in
|
842
|
+
# the SQLType class but does not return an actual SQLType object.
|
843
|
+
#
|
844
|
+
# ==== Parameters
|
845
|
+
# index:: The offset from the ResultSet first column of the column to
|
846
|
+
# return the type information for.
|
847
|
+
#
|
848
|
+
def get_base_type(index)
|
849
|
+
end
|
836
850
|
end
|
837
851
|
|
838
852
|
|
@@ -840,6 +854,8 @@ module FireRuby
|
|
840
854
|
# This class models a row of data fetched as part of a SQL query.
|
841
855
|
#
|
842
856
|
class Row
|
857
|
+
include Enumerable
|
858
|
+
|
843
859
|
#
|
844
860
|
# This is the constructor for the Row class. This method shouldn't really
|
845
861
|
# be used as Row objects are automatically created by ResultSets.
|
@@ -897,7 +913,7 @@ module FireRuby
|
|
897
913
|
#
|
898
914
|
# ==== Parameters
|
899
915
|
# index:: Either the offset of the column to retrieve the value of or
|
900
|
-
# the
|
916
|
+
# the alias of the column to retrieve the value of (column alias
|
901
917
|
# comparisons are case sensitive).
|
902
918
|
#
|
903
919
|
def [](index)
|
@@ -907,7 +923,7 @@ module FireRuby
|
|
907
923
|
#
|
908
924
|
# This method iterates over the contents of a Row object. The block
|
909
925
|
# specified for the method should accept two parameters; one for the
|
910
|
-
# column
|
926
|
+
# column alias and one for the column value.
|
911
927
|
#
|
912
928
|
def each
|
913
929
|
yield column, vlaue
|
@@ -936,7 +952,7 @@ module FireRuby
|
|
936
952
|
# for the alternative parameter is specified.
|
937
953
|
#
|
938
954
|
# ==== Parameters
|
939
|
-
# key:: A string containing the column
|
955
|
+
# key:: A string containing the column alias to retrieve.
|
940
956
|
# alternative:: A reference to the alternative value to be returned if
|
941
957
|
# the keyed value is not found. Defaults to nil.
|
942
958
|
#
|
@@ -947,7 +963,7 @@ module FireRuby
|
|
947
963
|
|
948
964
|
#
|
949
965
|
# This method is used to determine whether a Row object contains a given
|
950
|
-
# column
|
966
|
+
# column alias.
|
951
967
|
#
|
952
968
|
# ==== Parameters
|
953
969
|
# name:: A String containing the column name to check for.
|
@@ -956,6 +972,17 @@ module FireRuby
|
|
956
972
|
end
|
957
973
|
|
958
974
|
|
975
|
+
#
|
976
|
+
# This method is used to determine whether a Row object contains a given
|
977
|
+
# column name.
|
978
|
+
#
|
979
|
+
# ==== Parameters
|
980
|
+
# name:: A String containing the column name to check for.
|
981
|
+
#
|
982
|
+
def has_column?(name)
|
983
|
+
end
|
984
|
+
|
985
|
+
|
959
986
|
#
|
960
987
|
# This method is used to determine whether a Row object contains a given
|
961
988
|
# column alias.
|
@@ -979,12 +1006,19 @@ module FireRuby
|
|
979
1006
|
|
980
1007
|
|
981
1008
|
#
|
982
|
-
# This method retrieves an array of column
|
1009
|
+
# This method retrieves an array of column aliases for a Row object.
|
983
1010
|
#
|
984
1011
|
def keys
|
985
1012
|
end
|
986
1013
|
|
987
1014
|
|
1015
|
+
#
|
1016
|
+
# This method retrieves an array of column names for a Row object.
|
1017
|
+
#
|
1018
|
+
def names
|
1019
|
+
end
|
1020
|
+
|
1021
|
+
|
988
1022
|
#
|
989
1023
|
# This method retrieves an array of column aliases for a Row object.
|
990
1024
|
#
|
@@ -1027,7 +1061,7 @@ module FireRuby
|
|
1027
1061
|
|
1028
1062
|
#
|
1029
1063
|
# This method returns an array of column values based on a list of column
|
1030
|
-
#
|
1064
|
+
# aliases.
|
1031
1065
|
#
|
1032
1066
|
# ==== Parameters
|
1033
1067
|
# names:: One or more Strings containing the names of the columns to
|
@@ -1035,6 +1069,18 @@ module FireRuby
|
|
1035
1069
|
#
|
1036
1070
|
def values_at(*names)
|
1037
1071
|
end
|
1072
|
+
|
1073
|
+
#
|
1074
|
+
# This method retrieves the base SQL type for a column of data within a
|
1075
|
+
# Row object. The method returns one of the base types defined in the
|
1076
|
+
# SQLType class but does not return an actual SQLType object.
|
1077
|
+
#
|
1078
|
+
# ==== Parameters
|
1079
|
+
# index:: The offset from the Row first column of the column to return
|
1080
|
+
# the type information for.
|
1081
|
+
#
|
1082
|
+
def get_base_type(index)
|
1083
|
+
end
|
1038
1084
|
end
|
1039
1085
|
|
1040
1086
|
#
|
data/test/AddRemoveUserTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -12,6 +12,7 @@ class AddRemoveUserTest < Test::Unit::TestCase
|
|
12
12
|
DB_FILE = "#{CURDIR}#{File::SEPARATOR}add_remove_user_unit_test.fdb"
|
13
13
|
|
14
14
|
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
15
16
|
# Remove existing database files.
|
16
17
|
@database = Database.new(DB_FILE)
|
17
18
|
if File.exist?(DB_FILE)
|
@@ -25,6 +26,7 @@ class AddRemoveUserTest < Test::Unit::TestCase
|
|
25
26
|
if File.exist?(DB_FILE)
|
26
27
|
@database.drop(DB_USER_NAME, DB_PASSWORD)
|
27
28
|
end
|
29
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
28
30
|
end
|
29
31
|
|
30
32
|
def test01
|
@@ -33,12 +35,15 @@ class AddRemoveUserTest < Test::Unit::TestCase
|
|
33
35
|
|
34
36
|
au = AddUser.new('newuser', 'password', 'first', 'middle', 'last')
|
35
37
|
au.execute(sm)
|
38
|
+
sleep(3)
|
36
39
|
|
37
40
|
cxn = @database.connect('newuser', 'password')
|
38
41
|
cxn.close
|
39
42
|
|
40
43
|
ru = RemoveUser.new('newuser')
|
41
44
|
ru.execute(sm)
|
45
|
+
|
46
|
+
sm.disconnect
|
42
47
|
|
43
48
|
begin
|
44
49
|
cxn = @database.connect('newuser', 'password')
|
@@ -47,4 +52,4 @@ class AddRemoveUserTest < Test::Unit::TestCase
|
|
47
52
|
rescue FireRubyException
|
48
53
|
end
|
49
54
|
end
|
50
|
-
end
|
55
|
+
end
|
data/test/BackupRestoreTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -13,6 +13,7 @@ class BackupRestoreTest < Test::Unit::TestCase
|
|
13
13
|
BACKUP_FILE = "#{CURDIR}#{File::SEPARATOR}database.bak"
|
14
14
|
|
15
15
|
def setup
|
16
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
16
17
|
# Remove existing database files.
|
17
18
|
if File.exist?(DB_FILE)
|
18
19
|
db = Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
@@ -43,6 +44,7 @@ class BackupRestoreTest < Test::Unit::TestCase
|
|
43
44
|
if File.exist?(BACKUP_FILE)
|
44
45
|
File.delete(BACKUP_FILE)
|
45
46
|
end
|
47
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
46
48
|
end
|
47
49
|
|
48
50
|
def test01
|
data/test/CVS/Entries
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
/AddRemoveUserTest.rb/1.
|
2
|
-
/BackupRestoreTest.rb/1.
|
3
|
-
/CharacterSetTest.rb/1.
|
4
|
-
/ConnectionTest.rb/1.
|
5
|
-
/DDLTest.rb/1.
|
6
|
-
/DatabaseTest.rb/1.
|
7
|
-
/GeneratorTest.rb/1.
|
8
|
-
/ResultSetTest.rb/1.
|
9
|
-
/RowCountTest.rb/1.
|
10
|
-
/RowTest.rb/1.
|
11
|
-
/SQLTest.rb/1.
|
12
|
-
/ServiceManagerTest.rb/1.
|
13
|
-
/StatementTest.rb/1.
|
14
|
-
/TestSetup.rb/1.
|
15
|
-
/TransactionTest.rb/1.
|
16
|
-
/UnitTest.rb/1.
|
1
|
+
/AddRemoveUserTest.rb/1.2/Sat Oct 22 09:32:00 2005//
|
2
|
+
/BackupRestoreTest.rb/1.2/Sat Oct 22 08:23:48 2005//
|
3
|
+
/CharacterSetTest.rb/1.2/Sat Oct 22 08:07:40 2005//
|
4
|
+
/ConnectionTest.rb/1.6/Sat Oct 22 08:09:00 2005//
|
5
|
+
/DDLTest.rb/1.6/Sat Oct 22 08:09:42 2005//
|
6
|
+
/DatabaseTest.rb/1.4/Sat Oct 22 08:21:18 2005//
|
7
|
+
/GeneratorTest.rb/1.4/Sat Oct 22 08:21:10 2005//
|
8
|
+
/ResultSetTest.rb/1.4/Sat Oct 29 17:00:15 2005//
|
9
|
+
/RowCountTest.rb/1.3/Sat Oct 22 08:20:44 2005//
|
10
|
+
/RowTest.rb/1.3/Sat Oct 29 14:49:15 2005//
|
11
|
+
/SQLTest.rb/1.5/Sat Oct 22 08:27:06 2005//
|
12
|
+
/ServiceManagerTest.rb/1.2/Sat Oct 22 08:23:22 2005//
|
13
|
+
/StatementTest.rb/1.5/Sat Oct 22 08:22:58 2005//
|
14
|
+
/TestSetup.rb/1.2/Sat Oct 22 08:16:26 2005//
|
15
|
+
/TransactionTest.rb/1.6/Sat Oct 22 08:22:38 2005//
|
16
|
+
/UnitTest.rb/1.7/Sat Oct 29 15:03:24 2005//
|
17
|
+
/KeyTest.rb/1.1/Sat Oct 22 09:26:20 2005//
|
18
|
+
/SQLTypeTest.rb/1.1/Thu Oct 27 19:22:34 2005//
|
19
|
+
/TypeTest.rb/1.1/Sat Oct 29 16:58:35 2005//
|
17
20
|
D
|
data/test/CVS/Repository
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
fireruby/test
|
data/test/CharacterSetTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -13,6 +13,7 @@ class CharacterSetTest < Test::Unit::TestCase
|
|
13
13
|
CHAR_SET = 'WIN1251'
|
14
14
|
|
15
15
|
def setup
|
16
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
16
17
|
if File::exist?(DB_FILE)
|
17
18
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
18
19
|
end
|
@@ -25,6 +26,7 @@ class CharacterSetTest < Test::Unit::TestCase
|
|
25
26
|
if File::exist?(DB_FILE)
|
26
27
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
27
28
|
end
|
29
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
28
30
|
end
|
29
31
|
|
30
32
|
def test01
|
@@ -47,7 +49,8 @@ class CharacterSetTest < Test::Unit::TestCase
|
|
47
49
|
end
|
48
50
|
cxn.start_transaction do |tr|
|
49
51
|
cxn.execute("INSERT INTO SAMPLE_TABLE VALUES ('#{win1251_str}')",tr)
|
50
|
-
cxn.execute("SELECT * FROM SAMPLE_TABLE WHERE SAMPLE_FIELD =
|
52
|
+
cxn.execute("SELECT * FROM SAMPLE_TABLE WHERE SAMPLE_FIELD = "\
|
53
|
+
"'#{win1251_str}'",tr) do |row|
|
51
54
|
# here we have an exception:
|
52
55
|
some_var = row['SAMPLE_FIELD']
|
53
56
|
end
|
data/test/ConnectionTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -12,6 +12,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
12
12
|
DB_FILE = "#{CURDIR}#{File::SEPARATOR}con_unit_test.fdb"
|
13
13
|
|
14
14
|
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
15
16
|
if File::exist?(DB_FILE)
|
16
17
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
17
18
|
end
|
@@ -27,6 +28,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
27
28
|
if File::exist?(DB_FILE)
|
28
29
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
29
30
|
end
|
31
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
30
32
|
end
|
31
33
|
|
32
34
|
def test01
|
data/test/DDLTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -12,6 +12,7 @@ class DDLTest < Test::Unit::TestCase
|
|
12
12
|
DB_FILE = "#{CURDIR}#{File::SEPARATOR}ddl_unit_test.fdb"
|
13
13
|
|
14
14
|
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
15
16
|
if File::exist?(DB_FILE)
|
16
17
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
17
18
|
end
|
@@ -22,6 +23,7 @@ class DDLTest < Test::Unit::TestCase
|
|
22
23
|
if File::exist?(DB_FILE)
|
23
24
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
24
25
|
end
|
26
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
25
27
|
end
|
26
28
|
|
27
29
|
def test01
|
data/test/DatabaseTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -13,6 +13,7 @@ class DatabaseTest < Test::Unit::TestCase
|
|
13
13
|
CREATE_FILE = "#{CURDIR}#{File::SEPARATOR}db_create_test.fdb"
|
14
14
|
|
15
15
|
def setup
|
16
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
16
17
|
if File.exist?(DB_FILE)
|
17
18
|
db = Database.new(DB_FILE)
|
18
19
|
db.drop
|
@@ -34,6 +35,7 @@ class DatabaseTest < Test::Unit::TestCase
|
|
34
35
|
db = Database.new(CREATE_FILE)
|
35
36
|
db.drop(DB_USER_NAME, DB_PASSWORD)
|
36
37
|
end
|
38
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
37
39
|
end
|
38
40
|
|
39
41
|
|
data/test/GeneratorTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -12,6 +12,7 @@ class GeneratorTest < Test::Unit::TestCase
|
|
12
12
|
DB_FILE = "#{CURDIR}#{File::SEPARATOR}generator_unit_test.fdb"
|
13
13
|
|
14
14
|
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
15
16
|
if File::exist?(DB_FILE)
|
16
17
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
17
18
|
end
|
@@ -29,6 +30,7 @@ class GeneratorTest < Test::Unit::TestCase
|
|
29
30
|
if File::exist?(DB_FILE)
|
30
31
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
31
32
|
end
|
33
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
32
34
|
end
|
33
35
|
|
34
36
|
def test01
|
data/test/KeyTest.rb
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'TestSetup'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'rubygems'
|
6
|
+
require 'fireruby'
|
7
|
+
|
8
|
+
include FireRuby
|
9
|
+
|
10
|
+
class KeyTest < Test::Unit::TestCase
|
11
|
+
CURDIR = "#{Dir.getwd}"
|
12
|
+
DB_FILE = "#{CURDIR}#{File::SEPARATOR}key_unit_test.fdb"
|
13
|
+
|
14
|
+
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
16
|
+
if File::exist?(DB_FILE)
|
17
|
+
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Switch to the old way of keying.
|
21
|
+
$FireRubySettings[:ALIAS_KEYS] = false
|
22
|
+
|
23
|
+
database = Database::create(DB_FILE, DB_USER_NAME, DB_PASSWORD)
|
24
|
+
@connection = database.connect(DB_USER_NAME, DB_PASSWORD)
|
25
|
+
@transaction = @connection.start_transaction
|
26
|
+
@results = ResultSet.new(@connection, @transaction,
|
27
|
+
'SELECT * FROM RDB$FIELDS', 3, nil)
|
28
|
+
@empty = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
29
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0]
|
30
|
+
|
31
|
+
@connection.execute_immediate('create table keytest (COL01 integer, '\
|
32
|
+
'COL02 varchar(10), COL03 integer)')
|
33
|
+
@connection.execute_immediate("insert into keytest values (1, 'Two', 3)")
|
34
|
+
end
|
35
|
+
|
36
|
+
def teardown
|
37
|
+
@results.close
|
38
|
+
@transaction.rollback
|
39
|
+
@connection.close
|
40
|
+
if File::exist?(DB_FILE)
|
41
|
+
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
42
|
+
end
|
43
|
+
$FireRubySettings[:ALIAS_KEYS] = true
|
44
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_01
|
48
|
+
sql = 'select COL01 one, COL02 two, COL03 three from keytest'
|
49
|
+
rows = @connection.execute_immediate(sql)
|
50
|
+
data = rows.fetch
|
51
|
+
|
52
|
+
count = 0
|
53
|
+
data.each do |name, value|
|
54
|
+
assert(['COL01', 'COL02', 'COL03'].include?(name))
|
55
|
+
assert([1, 'Two', 3].include?(value))
|
56
|
+
count += 1
|
57
|
+
end
|
58
|
+
assert(count == 3)
|
59
|
+
|
60
|
+
count = 0
|
61
|
+
data.each_key do |name|
|
62
|
+
assert(['COL01', 'COL02', 'COL03'].include?(name))
|
63
|
+
count += 1
|
64
|
+
end
|
65
|
+
assert(count == 3)
|
66
|
+
|
67
|
+
count = 0
|
68
|
+
data.each_value do |value|
|
69
|
+
assert([1, 'Two', 3].include?(value))
|
70
|
+
count += 1
|
71
|
+
end
|
72
|
+
assert(count == 3)
|
73
|
+
|
74
|
+
assert(data.fetch('COL02') == 'Two')
|
75
|
+
assert(data.fetch('COL04', 'LALALA') == 'LALALA')
|
76
|
+
assert(data.fetch('COL00') {'NOT FOUND'} == 'NOT FOUND')
|
77
|
+
begin
|
78
|
+
data.fetch('COL05')
|
79
|
+
assert(false, 'Row#fetch succeeded for non-existent column name.')
|
80
|
+
rescue IndexError
|
81
|
+
end
|
82
|
+
|
83
|
+
assert(data.has_key?('COL01'))
|
84
|
+
assert(data.has_key?('COL10') == false)
|
85
|
+
|
86
|
+
assert(data.has_column?('COL02'))
|
87
|
+
assert(data.has_column?('COL22') == false)
|
88
|
+
|
89
|
+
assert(data.has_alias?('TWO'))
|
90
|
+
assert(data.has_alias?('FOUR') == false)
|
91
|
+
|
92
|
+
assert(data.has_value?(3))
|
93
|
+
assert(data.has_value?('LALALA') == false)
|
94
|
+
|
95
|
+
assert(data.keys.size == 3)
|
96
|
+
data.keys.each do |name|
|
97
|
+
assert(['COL01', 'COL02', 'COL03'].include?(name))
|
98
|
+
end
|
99
|
+
|
100
|
+
assert(data.names.size == 3)
|
101
|
+
data.names.each do |name|
|
102
|
+
assert(['COL01', 'COL02', 'COL03'].include?(name))
|
103
|
+
end
|
104
|
+
|
105
|
+
assert(data.aliases.size == 3)
|
106
|
+
data.aliases.each do |name|
|
107
|
+
assert(['ONE', 'TWO', 'THREE'].include?(name))
|
108
|
+
end
|
109
|
+
|
110
|
+
assert(data.values.size == 3)
|
111
|
+
data.values.each do |value|
|
112
|
+
assert([1, 'Two', 3].include?(value))
|
113
|
+
end
|
114
|
+
|
115
|
+
array = data.select {|name, value| name == 'COL02'}
|
116
|
+
assert(array.size == 1)
|
117
|
+
assert(array[0][0] == 'COL02')
|
118
|
+
assert(array[0][1] == 'Two')
|
119
|
+
|
120
|
+
array = data.to_a
|
121
|
+
assert(array.size == 3)
|
122
|
+
assert(array.include?(['COL01', 1]))
|
123
|
+
assert(array.include?(['COL02', 'Two']))
|
124
|
+
assert(array.include?(['COL03', 3]))
|
125
|
+
|
126
|
+
hash = data.to_hash
|
127
|
+
assert(hash.length == 3)
|
128
|
+
assert(hash['COL01'] == 1)
|
129
|
+
assert(hash['COL02'] == 'Two')
|
130
|
+
assert(hash['COL03'] == 3)
|
131
|
+
|
132
|
+
array = data.values_at('COL10', 'COL02', 'COL03')
|
133
|
+
assert(array.size == 3)
|
134
|
+
assert(array.include?('Two'))
|
135
|
+
assert(array.include?(3))
|
136
|
+
assert(array.include?(nil))
|
137
|
+
|
138
|
+
rows.close
|
139
|
+
end
|
140
|
+
end
|
data/test/ResultSetTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -12,6 +12,7 @@ class ResultSetTest < Test::Unit::TestCase
|
|
12
12
|
DB_FILE = "#{CURDIR}#{File::SEPARATOR}result_set_unit_test.fdb"
|
13
13
|
|
14
14
|
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
15
16
|
if File::exist?(DB_FILE)
|
16
17
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
17
18
|
end
|
@@ -24,6 +25,11 @@ class ResultSetTest < Test::Unit::TestCase
|
|
24
25
|
@connections[0].start_transaction do |tx|
|
25
26
|
tx.execute("CREATE TABLE TEST_TABLE (TESTID INTEGER NOT NULL "\
|
26
27
|
"primary KEY, TESTINFO VARCHAR(100))")
|
28
|
+
tx.execute('create table all_types (col01 bigint, col02 blob, '\
|
29
|
+
'col03 char(100), col04 date, col05 decimal(5,2), '\
|
30
|
+
'col06 double precision, col07 float, col08 integer, '\
|
31
|
+
'col09 numeric(10,3), col10 smallint, col11 time, '\
|
32
|
+
'col12 timestamp, col13 varchar(23))')
|
27
33
|
end
|
28
34
|
|
29
35
|
@connections[0].start_transaction do |tx|
|
@@ -55,6 +61,7 @@ class ResultSetTest < Test::Unit::TestCase
|
|
55
61
|
if File::exist?(DB_FILE)
|
56
62
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
57
63
|
end
|
64
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
58
65
|
end
|
59
66
|
|
60
67
|
def test01
|
@@ -98,7 +105,7 @@ class ResultSetTest < Test::Unit::TestCase
|
|
98
105
|
total += 1
|
99
106
|
end
|
100
107
|
assert(total == 5)
|
101
|
-
r.
|
108
|
+
assert(r.exhausted?)
|
102
109
|
end
|
103
110
|
|
104
111
|
def test02
|
@@ -108,7 +115,8 @@ class ResultSetTest < Test::Unit::TestCase
|
|
108
115
|
assert(r.exhausted? == false)
|
109
116
|
total = 0
|
110
117
|
r.each {|row| total += 1}
|
111
|
-
assert(total ==3)
|
118
|
+
assert(total == 3)
|
119
|
+
assert(r.exhausted?)
|
112
120
|
end
|
113
121
|
|
114
122
|
def test03
|
@@ -128,4 +136,27 @@ class ResultSetTest < Test::Unit::TestCase
|
|
128
136
|
rescue FireRubyException
|
129
137
|
end
|
130
138
|
end
|
139
|
+
|
140
|
+
def test04
|
141
|
+
results = nil
|
142
|
+
begin
|
143
|
+
results = @transactions[0].execute('select * from all_types')
|
144
|
+
|
145
|
+
assert(results.get_base_type(0) == SQLType::BIGINT)
|
146
|
+
assert(results.get_base_type(1) == SQLType::BLOB)
|
147
|
+
assert(results.get_base_type(2) == SQLType::CHAR)
|
148
|
+
assert(results.get_base_type(3) == SQLType::DATE)
|
149
|
+
assert(results.get_base_type(4) == SQLType::DECIMAL)
|
150
|
+
assert(results.get_base_type(5) == SQLType::DOUBLE)
|
151
|
+
assert(results.get_base_type(6) == SQLType::FLOAT)
|
152
|
+
assert(results.get_base_type(7) == SQLType::INTEGER)
|
153
|
+
assert(results.get_base_type(8) == SQLType::NUMERIC)
|
154
|
+
assert(results.get_base_type(9) == SQLType::SMALLINT)
|
155
|
+
assert(results.get_base_type(10) == SQLType::TIME)
|
156
|
+
assert(results.get_base_type(11) == SQLType::TIMESTAMP)
|
157
|
+
assert(results.get_base_type(12) == SQLType::VARCHAR)
|
158
|
+
ensure
|
159
|
+
results.close if results != nil
|
160
|
+
end
|
161
|
+
end
|
131
162
|
end
|
data/test/RowCountTest.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'TestSetup'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rubygems'
|
6
|
-
|
6
|
+
require 'fireruby'
|
7
7
|
|
8
8
|
include FireRuby
|
9
9
|
|
@@ -12,6 +12,7 @@ class RowCountTest < Test::Unit::TestCase
|
|
12
12
|
DB_FILE = "#{CURDIR}#{File::SEPARATOR}row_count_test.fdb"
|
13
13
|
|
14
14
|
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
15
16
|
# Create the database for use in testing.
|
16
17
|
if File.exist?(DB_FILE)
|
17
18
|
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
@@ -29,6 +30,7 @@ class RowCountTest < Test::Unit::TestCase
|
|
29
30
|
if File.exist?(DB_FILE)
|
30
31
|
@database.drop(DB_USER_NAME, DB_PASSWORD)
|
31
32
|
end
|
33
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
32
34
|
end
|
33
35
|
|
34
36
|
def test01
|