fireruby 0.2.2-i586-linux

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.
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'TestSetup'
4
+ require 'test/unit'
5
+ require 'rubygems'
6
+ require_gem 'fireruby'
7
+
8
+ include FireRuby
9
+
10
+ class StatementTest < Test::Unit::TestCase
11
+ CURDIR = "#{Dir.getwd}"
12
+ DB_FILE = "#{CURDIR}#{File::SEPARATOR}stmt_unit_test.fdb"
13
+
14
+ def setup
15
+ if File::exist?(DB_FILE)
16
+ Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
17
+ end
18
+ @database = Database::create(DB_FILE, DB_USER_NAME, DB_PASSWORD, 1024, nil)
19
+ @connections = []
20
+ @transactions = []
21
+ end
22
+
23
+ def teardown
24
+ @transactions.each do |tx|
25
+ tx.rollback if tx.active?
26
+ end
27
+ @transactions.clear
28
+ @connections.each do |cxn|
29
+ cxn.close if cxn.open?
30
+ end
31
+ @connections.clear
32
+ if File::exist?(DB_FILE)
33
+ Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
34
+ end
35
+ end
36
+
37
+ def test01
38
+ @connections.push(@database.connect(DB_USER_NAME, DB_PASSWORD))
39
+ @transactions.push(@connections.last.start_transaction)
40
+
41
+ s1 = Statement.new(@connections[0],
42
+ @transactions[0],
43
+ "SELECT RDB$FIELD_NAME FROM RDB$FIELDS", 3)
44
+ assert(s1 != nil)
45
+ assert(s1.sql == "SELECT RDB$FIELD_NAME FROM RDB$FIELDS")
46
+ assert(s1.connection == @connections[0])
47
+ assert(s1.transaction == @transactions[0])
48
+ assert(s1.dialect == 3)
49
+ assert(s1.is_query? == true)
50
+
51
+ s2 = Statement.new(@connections[0],
52
+ @transactions[0],
53
+ "DELETE FROM RDB$EXCEPTIONS", 1)
54
+ assert(s2 != nil)
55
+ assert(s2.sql == "DELETE FROM RDB$EXCEPTIONS")
56
+ assert(s2.connection == @connections[0])
57
+ assert(s2.transaction == @transactions[0])
58
+ assert(s2.dialect == 1)
59
+ assert(s2.is_query? == false)
60
+ end
61
+
62
+ def test02
63
+ @connections.push(@database.connect(DB_USER_NAME, DB_PASSWORD))
64
+ @transactions.push(@connections[0].start_transaction)
65
+
66
+ s = Statement.new(@connections[0], @transactions[0],
67
+ "SELECT RDB$FIELD_NAME FROM RDB$FIELDS "\
68
+ "WHERE RDB$FIELD_NAME LIKE ?", 3)
69
+
70
+ begin
71
+ s.execute
72
+ assert(false,
73
+ "Executed statement that required parameter without the "\
74
+ "parameter being specified.")
75
+ rescue Exception => error
76
+ end
77
+
78
+ begin
79
+ s.execute_for([])
80
+ assert(false,
81
+ "Executed statement that required a parameter with an empty "\
82
+ "parameter set.")
83
+ rescue Exception => error
84
+ end
85
+
86
+ begin
87
+ s.execute_for(['LALALA', 25])
88
+ assert(false,
89
+ "Executed statement that required a parameter with too many "\
90
+ "parameters.")
91
+ rescue Exception => error
92
+ end
93
+
94
+ assert(s.execute_for(['LALALA']) != nil)
95
+ assert(s.execute_for(['LALALA']).class == ResultSet)
96
+ total = 0
97
+ s.execute_for(["%"]) do |row|
98
+ total = total + 1
99
+ end
100
+ assert(total = 88)
101
+ end
102
+
103
+ def test03
104
+ d = nil
105
+ @database.connect(DB_USER_NAME, DB_PASSWORD) do |cxn|
106
+ cxn.execute_immediate('CREATE TABLE STRING_TEST(TEXT VARCHAR(10))')
107
+ cxn.start_transaction do |tx|
108
+ # Perform an trancated insert.
109
+ s = Statement.new(cxn, tx, 'INSERT INTO STRING_TEST VALUES(?)', 3)
110
+ s.execute_for(['012345678901234'])
111
+
112
+ # Perform a select of the value inserted.
113
+ r = cxn.execute('SELECT * FROM STRING_TEST', tx)
114
+ d = r.fetch
115
+
116
+ # Clean up.
117
+ s.close
118
+ r.close
119
+ end
120
+ assert(d[0] == '0123456789')
121
+ cxn.execute_immediate('DROP TABLE STRING_TEST')
122
+ end
123
+ end
124
+ end
data/test/TestSetup.rb ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Add extra search paths.
4
+ basedir = File::dirname(Dir.getwd)
5
+ $:.push(basedir)
6
+ $:.push("#{basedir}#{File::SEPARATOR}test")
7
+ $:.push("#{basedir}#{File::SEPARATOR}lib")
8
+
9
+ DB_USER_NAME = 'sysdba'
10
+ DB_PASSWORD = 'masterkey'
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'TestSetup'
4
+ require 'test/unit'
5
+ require 'rubygems'
6
+ require_gem 'fireruby'
7
+
8
+ include FireRuby
9
+
10
+ class TransactionTest < Test::Unit::TestCase
11
+ CURDIR = "#{Dir.getwd}"
12
+ DB_FILE = "#{CURDIR}#{File::SEPARATOR}tx_unit_test.fdb"
13
+
14
+ def setup
15
+ if File::exist?(DB_FILE)
16
+ Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
17
+ end
18
+
19
+ @database = Database.create(DB_FILE, DB_USER_NAME, DB_PASSWORD, 1024, nil)
20
+ @connections = []
21
+ @transactions = []
22
+
23
+ @connections.push(@database.connect(DB_USER_NAME, DB_PASSWORD))
24
+ @connections.push(@database.connect(DB_USER_NAME, DB_PASSWORD))
25
+ @connections.push(@database.connect(DB_USER_NAME, DB_PASSWORD))
26
+ end
27
+
28
+ def teardown
29
+ @transactions.each do |tx|
30
+ tx.rollback if tx.active?
31
+ end
32
+ @transactions.clear
33
+ @connections.each do |cxn|
34
+ cxn.close if cxn.open?
35
+ end
36
+ if File::exist?(DB_FILE)
37
+ Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
38
+ end
39
+ end
40
+
41
+ def test01
42
+ @transactions.push(@connections[0].start_transaction)
43
+ assert(@transactions[0].active?)
44
+
45
+ @transactions.push(Transaction.new(@connections[1]))
46
+ assert(@transactions[1].active?)
47
+
48
+ assert(@transactions[0].connections == [@connections[0]])
49
+ assert(@transactions[1].connections == [@connections[1]])
50
+
51
+ assert(@transactions[0].for_connection?(@connections[1]) == false)
52
+ assert(@transactions[1].for_connection?(@connections[0]) == false)
53
+ assert(@transactions[0].for_connection?(@connections[0]))
54
+ assert(@transactions[1].for_connection?(@connections[1]))
55
+
56
+ @transactions[0].commit
57
+ assert(@transactions[0].active? == false)
58
+ assert(@transactions[0].connections == [])
59
+ assert(@transactions[0].for_connection?(@connections[0]) == false)
60
+ assert(@transactions[0].for_connection?(@connections[1]) == false)
61
+
62
+ @transactions[1].rollback
63
+ assert(@transactions[1].active? == false)
64
+ assert(@transactions[1].connections == [])
65
+ assert(@transactions[1].for_connection?(@connections[0]) == false)
66
+ assert(@transactions[1].for_connection?(@connections[1]) == false)
67
+
68
+ @transactions[0] = Transaction.new([@connections[0], @connections[1]])
69
+ assert(@transactions[0].active? == true)
70
+ assert(@transactions[0].for_connection?(@connections[0]))
71
+ assert(@transactions[0].for_connection?(@connections[1]))
72
+ assert(@transactions[0].for_connection?(@connections[2]) == false)
73
+
74
+ @transactions[0].commit
75
+ assert(@transactions[0].active? == false)
76
+ assert(@transactions[0].connections == [])
77
+ assert(@transactions[0].for_connection?(@connections[0]) == false)
78
+ assert(@transactions[0].for_connection?(@connections[1]) == false)
79
+ assert(@transactions[0].for_connection?(@connections[2]) == false)
80
+
81
+ @transactions[0] = Transaction.new([@connections[0], @connections[2]])
82
+ assert(@transactions[0].active?)
83
+ @transactions[0].rollback
84
+ assert(@transactions[0].active? == false)
85
+ assert(@transactions[0].connections == [])
86
+ assert(@transactions[0].for_connection?(@connections[0]) == false)
87
+ assert(@transactions[0].for_connection?(@connections[1]) == false)
88
+ assert(@transactions[0].for_connection?(@connections[2]) == false)
89
+ end
90
+
91
+ def test02
92
+ sql = []
93
+ sql.push("UPDATE RDB$EXCEPTIONS SET RDB$MESSAGE = 'WoooHooo'"\
94
+ "WHERE RDB$EXCEPTION_NAME = 'Lalala'")
95
+ sql.push("SELECT RDB$FIELD_NAME FROM RDB$FIELDS")
96
+ @transactions.push(Transaction.new(@connections[0]))
97
+
98
+ assert(@transactions[0].execute(sql[0]) == nil)
99
+ assert(@transactions[0].execute(sql[1]) != nil)
100
+ assert(@transactions[0].execute(sql[1]).class == ResultSet)
101
+
102
+ total = 0
103
+ @transactions[0].execute(sql[1]) do |row|
104
+ total += 1
105
+ end
106
+ assert(total = 88)
107
+ end
108
+ end
data/test/UnitTest.rb ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'DatabaseTest'
4
+ require 'ConnectionTest'
5
+ require 'TransactionTest'
6
+ require 'StatementTest'
7
+ require 'ResultSetTest'
8
+ require 'RowTest'
9
+ require 'GeneratorTest'
10
+ require 'DDLTest'
11
+ require 'SQLTest'
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.10
3
+ specification_version: 1
4
+ name: fireruby
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.2.2
7
+ date: 2005-04-12
8
+ summary: Ruby interface library for the Firebird database.
9
+ require_paths:
10
+ - lib
11
+ email: paw220470@yahoo.ie
12
+ homepage: http://rubyforge.org/projects/fireruby/
13
+ rubyforge_project:
14
+ description: FireRuby is an extension to the Ruby programming language that provides access to the Firebird open source RDBMS. FireRuby is based in the Firebird C API and has no additional dependencies. The FireRuby library wraps the API calls in a Ruby OO interface.
15
+ autorequire: fireruby
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ -
22
+ - ">"
23
+ - !ruby/object:Gem::Version
24
+ version: 0.0.0
25
+ version:
26
+ platform: i586-linux
27
+ authors:
28
+ - Peter Wood
29
+ files:
30
+ - lib/mkdoc
31
+ - lib/fireruby.bundle
32
+ - lib/fireruby.so
33
+ - lib/src.rb
34
+ - test/SQLTest.rb
35
+ - test/DatabaseTest.rb
36
+ - test/StatementTest.rb
37
+ - test/ConnectionTest.rb
38
+ - test/TransactionTest.rb
39
+ - test/TestSetup.rb
40
+ - test/UnitTest.rb
41
+ - test/DDLTest.rb
42
+ - test/ResultSetTest.rb
43
+ - test/RowTest.rb
44
+ - test/GeneratorTest.rb
45
+ - doc/README
46
+ - doc/license.txt
47
+ - examples/example01.rb
48
+ test_files:
49
+ - test/UnitTest.rb
50
+ rdoc_options:
51
+ - "--main"
52
+ - doc/README
53
+ extra_rdoc_files:
54
+ - doc/README
55
+ executables: []
56
+ extensions: []
57
+ requirements: []
58
+ dependencies: []