rubeus 0.0.8-java → 0.0.9-java

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.
Files changed (81) hide show
  1. data/.document +5 -0
  2. data/.gitignore +8 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +17 -0
  5. data/Rakefile +55 -16
  6. data/VERSION +1 -0
  7. data/examples/.gitignore +1 -0
  8. data/examples/JavaSwingExample01.java +41 -0
  9. data/examples/jdbc_example.rb +1 -2
  10. data/examples/notepad.rb +15 -17
  11. data/examples/nyanco_viewer/nekobean_LICENSE.txt +22 -0
  12. data/examples/rubeus_swing_example01.rb +0 -2
  13. data/examples/rubeus_swing_example01_with_class.rb +1 -3
  14. data/examples/rubeus_swing_jdbc_example01.rb +5 -0
  15. data/java/.gitignore +3 -0
  16. data/java/mvn_plugins.yml +57 -0
  17. data/java/pom.xml +30 -0
  18. data/java/src/main/java/jp/rubybizcommons/rubeus/extensions/javax/swing/table/DelegatableTableModel.java +54 -0
  19. data/java/src/main/java/jp/rubybizcommons/rubeus/extensions/javax/swing/table/ReadonlyableTableModel.java +24 -0
  20. data/lib/rubeus.rb +6 -4
  21. data/lib/rubeus/awt/attributes.rb +5 -5
  22. data/lib/rubeus/awt/event.rb +8 -8
  23. data/lib/rubeus/awt/nestable.rb +4 -4
  24. data/lib/rubeus/awt/setters.rb +1 -1
  25. data/lib/rubeus/component_loader.rb +12 -11
  26. data/lib/rubeus/extensions.rb +6 -6
  27. data/lib/rubeus/extensions/java.rb +1 -0
  28. data/lib/rubeus/extensions/java/awt/dimension.rb +1 -1
  29. data/lib/rubeus/extensions/java/lang.rb +5 -0
  30. data/lib/rubeus/extensions/java/lang/reflect.rb +4 -0
  31. data/lib/rubeus/extensions/java/lang/reflect/method.rb +23 -0
  32. data/lib/rubeus/extensions/java/sql/connection.rb +2 -2
  33. data/lib/rubeus/extensions/java/sql/database_meta_data.rb +9 -9
  34. data/lib/rubeus/extensions/java/sql/driver_manager.rb +80 -79
  35. data/lib/rubeus/extensions/java/sql/result_set.rb +6 -6
  36. data/lib/rubeus/extensions/java/sql/result_set_meta_data.rb +4 -4
  37. data/lib/rubeus/extensions/javax/swing/box_layout.rb +4 -4
  38. data/lib/rubeus/extensions/javax/swing/j_component.rb +1 -1
  39. data/lib/rubeus/extensions/javax/swing/j_editor_pane.rb +5 -0
  40. data/lib/rubeus/extensions/javax/swing/j_frame.rb +1 -1
  41. data/lib/rubeus/extensions/javax/swing/j_list.rb +5 -0
  42. data/lib/rubeus/extensions/javax/swing/j_scroll_pane.rb +1 -1
  43. data/lib/rubeus/extensions/javax/swing/j_split_pane.rb +1 -1
  44. data/lib/rubeus/extensions/javax/swing/j_table.rb +2 -2
  45. data/lib/rubeus/extensions/javax/swing/j_text_pane.rb +7 -0
  46. data/lib/rubeus/extensions/javax/swing/table/default_table_model.rb +10 -10
  47. data/lib/rubeus/extensions/javax/swing/timer.rb +3 -3
  48. data/lib/rubeus/jdbc.rb +2 -2
  49. data/lib/rubeus/jdbc/closeable_resource.rb +1 -1
  50. data/lib/rubeus/jdbc/column.rb +19 -14
  51. data/lib/rubeus/jdbc/foreign_key.rb +14 -9
  52. data/lib/rubeus/jdbc/index.rb +15 -10
  53. data/lib/rubeus/jdbc/meta_element.rb +8 -8
  54. data/lib/rubeus/jdbc/primary_key.rb +26 -7
  55. data/lib/rubeus/jdbc/result_set_column.rb +3 -3
  56. data/lib/rubeus/jdbc/table.rb +47 -36
  57. data/lib/rubeus/reflection.rb +17 -0
  58. data/lib/rubeus/swing.rb +1 -1
  59. data/lib/rubeus/util.rb +3 -0
  60. data/lib/rubeus/util/java_method_name.rb +31 -0
  61. data/lib/rubeus/util/name_access_array.rb +6 -4
  62. data/lib/rubeus/verboseable.rb +3 -3
  63. data/rmaven.yml +5 -0
  64. data/rubeus.gemspec +202 -0
  65. data/test/rubeus/extensions/java/awt/test_dimension.rb +47 -47
  66. data/test/rubeus/extensions/java/sql/test_database_meta_data.rb +86 -40
  67. data/test/rubeus/extensions/java/sql/test_driver_manager.rb +9 -2
  68. data/test/rubeus/extensions/java/sql/test_sql_helper.rb +4 -4
  69. data/test/rubeus/reflection/test_method_modifier.rb +107 -0
  70. data/test/rubeus/test_extensions.rb +30 -30
  71. data/test/rubeus_test.jar +0 -0
  72. data/test_jar/.classpath +7 -0
  73. data/test_jar/.gitignore +1 -0
  74. data/test_jar/.project +17 -0
  75. data/test_jar/mvn_plugins.yml +57 -0
  76. data/test_jar/pom.xml +25 -0
  77. data/test_jar/src/main/java/jp/rubybizcommons/rubeus/test/reflection/VariousFields.java +13 -0
  78. data/test_jar/src/main/java/jp/rubybizcommons/rubeus/test/reflection/VariousMethods.java +14 -0
  79. data/test_jar/src/test/java/jp/rubybizcommons/rubeus/test/AppTest.java +38 -0
  80. metadata +137 -47
  81. data/test/test_all.rb +0 -2
@@ -4,64 +4,64 @@ require 'rubeus'
4
4
 
5
5
  # Test for Rubeus::Extensions::Java::Awt
6
6
  class TestDimension < Test::Unit::TestCase
7
- include Rubeus::Awt
7
+ include Rubeus::Awt
8
8
 
9
- # setup method
10
- def setup
11
- end
9
+ # setup method
10
+ def setup
11
+ end
12
12
 
13
- # create with array size 0
14
- def test_create_with_array_size_0
15
- d = Dimension.create([])
13
+ # create with array size 0
14
+ def test_create_with_array_size_0
15
+ d = Dimension.create([])
16
16
 
17
- assert_equal(0, d.width)
18
- assert_equal(0, d.height)
19
- end
17
+ assert_equal(0, d.width)
18
+ assert_equal(0, d.height)
19
+ end
20
20
 
21
- # create with array size 1
22
- def test_create_with_array_size_1
23
- assert_raise(ArgumentError) do
24
- d = Dimension.create([200])
25
- end
26
- end
21
+ # create with array size 1
22
+ def test_create_with_array_size_1
23
+ assert_raise(ArgumentError) do
24
+ d = Dimension.create([200])
25
+ end
26
+ end
27
27
 
28
- # create with array size 2
29
- def test_create_with_array_size_2
30
- d = Dimension.create([200, 300])
28
+ # create with array size 2
29
+ def test_create_with_array_size_2
30
+ d = Dimension.create([200, 300])
31
31
 
32
- assert_equal(200, d.width)
33
- assert_equal(300, d.height)
34
- end
32
+ assert_equal(200, d.width)
33
+ assert_equal(300, d.height)
34
+ end
35
35
 
36
- # create with array size 3
37
- def test_create_with_array_size_3
38
- assert_raise(ArgumentError) do
39
- d = Dimension.create([200, 300, 400])
40
- end
41
- end
36
+ # create with array size 3
37
+ def test_create_with_array_size_3
38
+ assert_raise(ArgumentError) do
39
+ d = Dimension.create([200, 300, 400])
40
+ end
41
+ end
42
42
 
43
- # create with dimension object
44
- def test_create_with_dimension
45
- d = Dimension.create([300, 400])
46
- d2 = Dimension.create(d)
43
+ # create with dimension object
44
+ def test_create_with_dimension
45
+ d = Dimension.create([300, 400])
46
+ d2 = Dimension.create(d)
47
47
 
48
- assert_equal(d.width, d2.width)
49
- assert_equal(d.height, d2.height)
50
- end
48
+ assert_equal(d.width, d2.width)
49
+ assert_equal(d.height, d2.height)
50
+ end
51
51
 
52
- # create with multiply expression
53
- def test_create_with_multiply expression
54
- d = Dimension.create("400 x 500")
52
+ # create with multiply expression
53
+ def test_create_with_multiply expression
54
+ d = Dimension.create("400 x 500")
55
55
 
56
- assert_equal(400, d.width)
57
- assert_equal(500, d.height)
58
- end
56
+ assert_equal(400, d.width)
57
+ assert_equal(500, d.height)
58
+ end
59
59
 
60
- # create with original constructor
61
- def test_create_with_original_constructor
62
- d = Dimension.create(600, 350)
60
+ # create with original constructor
61
+ def test_create_with_original_constructor
62
+ d = Dimension.create(600, 350)
63
63
 
64
- assert_equal(600, d.width)
65
- assert_equal(350, d.height)
66
- end
64
+ assert_equal(600, d.width)
65
+ assert_equal(350, d.height)
66
+ end
67
67
  end
@@ -1,10 +1,12 @@
1
1
  require 'test/unit'
2
2
  require 'rubygems'
3
3
  require 'rubeus'
4
+ # gem "activesupport"
5
+ # require 'active_support/test_case'
4
6
  require 'test/rubeus/extensions/java/sql/test_sql_helper'
5
7
 
6
8
  # Test for lib/rubeus/extensions/java/sql/database_meta_data.rb
7
- class TestDatabaseMetaData < Test::Unit::TestCase
9
+ class TestDatabaseMetaData < Test::Unit::TestCase # ActiveSupport::TestCase
8
10
  include TestSqlHelper
9
11
 
10
12
  def setup
@@ -21,18 +23,18 @@ class TestDatabaseMetaData < Test::Unit::TestCase
21
23
  DEPART_TIME TIME,
22
24
  DEST_AIRPORT CHAR(3),
23
25
  ARRIVE_TIME TIME,
24
- MEAL CHAR(1) CONSTRAINT MEAL_CONSTRAINT
26
+ MEAL CHAR(1) CONSTRAINT MEAL_CONSTRAINT
25
27
  CHECK (MEAL IN ('B', 'L', 'D', 'S')),
26
28
  PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER)
27
29
  );
28
30
  CREATE TABLE FLTAVAIL(
29
- FLIGHT_ID CHAR(6) NOT NULL,
30
- SEGMENT_NUMBER INT NOT NULL,
31
- FLIGHT_DATE DATE NOT NULL,
31
+ FLIGHT_ID CHAR(6) NOT NULL,
32
+ SEGMENT_NUMBER INT NOT NULL,
33
+ FLIGHT_DATE DATE NOT NULL,
32
34
  ECONOMY_SEATS_TAKEN INT,
33
35
  BUSINESS_SEATS_TAKEN INT,
34
- FIRSTCLASS_SEATS_TAKEN INT,
35
- CONSTRAINT FLTAVAIL_PK PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER),
36
+ FIRSTCLASS_SEATS_TAKEN INT,
37
+ CONSTRAINT FLTAVAIL_PK PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER),
36
38
  CONSTRAINT FLTS_FK
37
39
  FOREIGN KEY (FLIGHT_ID, SEGMENT_NUMBER)
38
40
  REFERENCES Flights (FLIGHT_ID, SEGMENT_NUMBER)
@@ -62,7 +64,7 @@ class TestDatabaseMetaData < Test::Unit::TestCase
62
64
  EOS
63
65
  end
64
66
  end
65
-
67
+
66
68
  def teardown
67
69
  teardown_connection
68
70
  end
@@ -79,24 +81,33 @@ class TestDatabaseMetaData < Test::Unit::TestCase
79
81
  rescue => e
80
82
  puts e.to_s
81
83
  puts e.backtrace.join("\n ")
82
- raise e
84
+ raise e
85
+ end
86
+
87
+ def test_table_inspect_with_downcase
88
+ tables = @con.meta_data.tables(:schema => "APP", :name_case => :downcase)
89
+ assert_equal "#<Rubeus::Jdbc::Table flights(flight_id,segment_number,orig_airport,depart_time,dest_airport,arrive_time,meal)>", tables['flights'].inspect
90
+ assert_equal "#<Rubeus::Jdbc::Table fltavail(flight_id,segment_number,flight_date,economy_seats_taken,business_seats_taken,firstclass_seats_taken)>", tables['fltavail'].inspect
91
+ assert_equal "#<Rubeus::Jdbc::Table cities(id,city_name)>", tables['cities'].inspect
92
+ assert_equal "#<Rubeus::Jdbc::Table metropolitan(hotel_id,hotel_name,city_id)>", tables['metropolitan'].inspect
93
+ assert_equal "#<Rubeus::Jdbc::Table test1(id,name)>", tables['test1'].inspect
83
94
  end
84
-
95
+
85
96
  def assert_column(table, name, type, size, nullable)
86
97
  column = table.columns[name]
87
98
  assert_not_nil column, "column '#{name}' not found"
88
- assert_equal(java.sql.Types.const_get(type.to_s.upcase), column.data_type,
99
+ assert_equal(java.sql.Types.const_get(type.to_s.upcase), column.data_type,
89
100
  "column '#{name}' type expected #{java.sql.Types.const_get(type.to_s.upcase).inspect} but #{column.data_type.inspect}")
90
- assert_equal(size, column.size,
101
+ assert_equal(size, column.size,
91
102
  "column '#{name}' size expected #{size.inspect} but #{column.size.inspect}")
92
- assert_equal(nullable, column.nullable?,
103
+ assert_equal(nullable, column.nullable?,
93
104
  "column '#{name}' nullable expected #{nullable.inspect} but #{column.nullable?.inspect}")
94
- assert_equal(nullable ?
95
- java.sql.DatabaseMetaData.columnNullable :
105
+ assert_equal(nullable ?
106
+ java.sql.DatabaseMetaData.columnNullable :
96
107
  java.sql.DatabaseMetaData.columnNoNulls, column.nullable)
97
108
  assert_equal column, table[name]
98
109
  end
99
-
110
+
100
111
  def test_table_object_columns
101
112
  tables = @con.meta_data.tables(:schema => "APP", :name_case => :downcase)
102
113
  #
@@ -109,6 +120,13 @@ class TestDatabaseMetaData < Test::Unit::TestCase
109
120
  assert_column(flights, 'dest_airport', :char, 3, true)
110
121
  assert_column(flights, 'arrive_time', :time, 8, true)
111
122
  assert_column(flights, 'meal', :char, 1, true)
123
+ assert_equal "#<Rubeus::Jdbc::Column flight_id CHAR(6) NOT NULL>", flights.columns["flight_id"].inspect
124
+ assert_equal "#<Rubeus::Jdbc::Column segment_number INTEGER(10) NOT NULL>", flights.columns["segment_number"].inspect
125
+ assert_equal "#<Rubeus::Jdbc::Column orig_airport CHAR(3) NULL>", flights.columns["orig_airport"].inspect
126
+ assert_equal "#<Rubeus::Jdbc::Column depart_time TIME(8) NULL>", flights.columns["depart_time"].inspect
127
+ assert_equal "#<Rubeus::Jdbc::Column dest_airport CHAR(3) NULL>", flights.columns["dest_airport"].inspect
128
+ assert_equal "#<Rubeus::Jdbc::Column arrive_time TIME(8) NULL>", flights.columns["arrive_time"].inspect
129
+ assert_equal "#<Rubeus::Jdbc::Column meal CHAR(1) NULL>", flights.columns["meal"].inspect
112
130
  #
113
131
  assert_not_nil fltavail = tables['fltavail']
114
132
  assert_equal 6, fltavail.columns.length
@@ -118,39 +136,52 @@ class TestDatabaseMetaData < Test::Unit::TestCase
118
136
  assert_column(fltavail, 'economy_seats_taken', :integer, 10, true)
119
137
  assert_column(fltavail, 'business_seats_taken', :integer, 10, true)
120
138
  assert_column(fltavail, 'firstclass_seats_taken', :integer, 10, true)
139
+ assert_equal "#<Rubeus::Jdbc::Column flight_id CHAR(6) NOT NULL>", fltavail.columns["flight_id"].inspect
140
+ assert_equal "#<Rubeus::Jdbc::Column segment_number INTEGER(10) NOT NULL>", fltavail.columns["segment_number"].inspect
141
+ assert_equal "#<Rubeus::Jdbc::Column flight_date DATE(10) NOT NULL>", fltavail.columns["flight_date"].inspect
142
+ assert_equal "#<Rubeus::Jdbc::Column economy_seats_taken INTEGER(10) NULL>", fltavail.columns["economy_seats_taken"].inspect
143
+ assert_equal "#<Rubeus::Jdbc::Column business_seats_taken INTEGER(10) NULL>", fltavail.columns["business_seats_taken"].inspect
144
+ assert_equal "#<Rubeus::Jdbc::Column firstclass_seats_taken INTEGER(10) NULL>", fltavail.columns["firstclass_seats_taken"].inspect
121
145
  #
122
146
  assert_not_nil ctiies = tables['cities']
123
147
  assert_equal 2, ctiies.columns.length
124
148
  assert_column(ctiies, 'id', :integer, 10, false)
125
149
  assert_column(ctiies, 'city_name', :varchar, 50, true)
150
+ assert_equal "#<Rubeus::Jdbc::Column id INTEGER(10) NOT NULL>", ctiies.columns["id"].inspect
151
+ assert_equal "#<Rubeus::Jdbc::Column city_name VARCHAR(50) NULL>", ctiies.columns["city_name"].inspect
126
152
  #
127
153
  assert_not_nil metropolitan = tables['metropolitan']
128
154
  assert_equal 3, metropolitan.columns.length
129
155
  assert_column(metropolitan, 'hotel_id', :integer, 10, false)
130
156
  assert_column(metropolitan, 'hotel_name', :varchar, 40, false)
131
157
  assert_column(metropolitan, 'city_id', :integer, 10, true)
158
+ assert_equal "#<Rubeus::Jdbc::Column hotel_id INTEGER(10) NOT NULL>", metropolitan.columns["hotel_id"].inspect
159
+ assert_equal "#<Rubeus::Jdbc::Column hotel_name VARCHAR(40) NOT NULL>", metropolitan.columns["hotel_name"].inspect
160
+ assert_equal "#<Rubeus::Jdbc::Column city_id INTEGER(10) NULL>", metropolitan.columns["city_id"].inspect
132
161
  #
133
162
  assert_not_nil test1 = tables['test1']
134
163
  assert_equal 2, test1.columns.length
135
164
  assert_column(test1, 'id', :integer, 10, false)
136
165
  assert_column(test1, 'name', :varchar, 60, true)
166
+ assert_equal "#<Rubeus::Jdbc::Column id INTEGER(10) NOT NULL>", test1.columns["id"].inspect
167
+ assert_equal "#<Rubeus::Jdbc::Column name VARCHAR(60) NULL>", test1.columns["name"].inspect
137
168
  rescue => e
138
169
  puts e.to_s
139
170
  puts e.backtrace.join("\n ")
140
171
  raise e
141
172
  end
142
-
173
+
143
174
  def assert_pk(table, names)
144
- assert_equal names.length, table.primary_keys.length
145
- assert_equal names, table.pks.map{|k| k.name}
146
- assert_equal names, table.primary_keys.map{|k| k.name}
147
175
  assert_equal names, table.pk_names
148
176
  assert_equal names, table.primary_key_names
149
177
  names.each_with_index do |name, index|
150
- assert_equal name, table.primary_keys[name].name
151
- assert_equal index + 1, table.primary_keys[name].seq
178
+ assert_equal table.columns[name], table.primary_key.columns[index]
179
+ assert_equal table.columns[name], table.primary_key.columns[name]
180
+ assert_equal table.columns[name], table.primary_key_columns[index]
152
181
  assert_equal table.columns[name], table.primary_key_columns[name]
182
+ assert_equal table.columns[name], table.pk_columns[index]
153
183
  assert_equal table.columns[name], table.pk_columns[name]
184
+ assert_equal name, table.primary_key[index]
154
185
  end
155
186
  case names.length
156
187
  when 0
@@ -161,20 +192,22 @@ class TestDatabaseMetaData < Test::Unit::TestCase
161
192
  assert_equal nil, table.pk_column
162
193
  assert_equal nil, table.primary_key_column
163
194
  when 1
164
- assert_equal table.pks.first, table.pk
165
- assert_equal table.pks.first, table.primary_key
166
195
  assert_equal table.pk_names.first, table.pk_name
167
196
  assert_equal table.pk_names.first, table.primary_key_name
168
197
  assert_equal table.pk_columns.first, table.pk_column
169
198
  assert_equal table.pk_columns.first, table.primary_key_column
170
199
  else
171
- assert_equal table.pks, table.pk
172
- assert_equal table.pks, table.primary_key
173
200
  assert_equal table.pk_names, table.pk_name
174
201
  assert_equal table.pk_names, table.primary_key_name
175
202
  assert_equal table.pk_columns, table.pk_column
176
203
  assert_equal table.pk_columns, table.primary_key_column
177
204
  end
205
+ if names.length > 0
206
+ assert_equal names.length, table.primary_key.length
207
+ assert_equal names, table.primary_key.column_names
208
+ assert_equal names, table.pk.column_names
209
+ assert_equal "#<Rubeus::Jdbc::PrimaryKey #{table.name}(#{names.join(',')})>", table.primary_key.inspect
210
+ end
178
211
  table.columns.each do |column|
179
212
  if table.pk_names.include?(column.name)
180
213
  assert_equal true, column.primary_key?, "#{table.name}.#{column.name} shoud be one of pk"
@@ -185,7 +218,7 @@ class TestDatabaseMetaData < Test::Unit::TestCase
185
218
  end
186
219
  end
187
220
  end
188
-
221
+
189
222
  def test_table_objects_pk
190
223
  tables = @con.meta_data.tables(:schema => "APP", :name_case => :downcase)
191
224
  assert_pk(tables['flights'], %w(flight_id segment_number))
@@ -194,40 +227,48 @@ class TestDatabaseMetaData < Test::Unit::TestCase
194
227
  assert_pk(tables['metropolitan'], %w(hotel_id))
195
228
  assert_pk(tables['test1'], [])
196
229
  end
197
-
230
+
198
231
  def assert_index(table, index_name, key_names, asc_descs)
199
232
  assert_equal key_names, table.indexes[index_name].keys.map{|k| k.name}
200
233
  assert_equal asc_descs, table.indexes[index_name].keys.map{|k| k.asc?}
201
234
  end
202
-
235
+
203
236
  def test_table_objects_index
204
237
  tables = @con.meta_data.tables(:schema => "APP", :name_case => :downcase)
205
238
  # assert_equal %w(idx_flight_01 idx_flight_02 idx_flight_03), tables['flights'].indexes.map{|idx| idx.name}
206
239
  # assert_equal 3, tables['flights'].indexes.length
207
- assert_index(tables['flights'], 'idx_flight_01', %w(orig_airport), [true])
208
- assert_index(tables['flights'], 'idx_flight_02', %w(orig_airport depart_time), [true, false])
209
- assert_index(tables['flights'], 'idx_flight_03', %w(dest_airport arrive_time), [true, false])
240
+ t = tables['flights']
241
+ assert_index(t, 'idx_flight_01', %w(orig_airport), [true])
242
+ assert_index(t, 'idx_flight_02', %w(orig_airport depart_time), [true, false])
243
+ assert_index(t, 'idx_flight_03', %w(dest_airport arrive_time), [true, false])
244
+ assert_equal "#<Rubeus::Jdbc::Index flights.idx_flight_01(orig_airport)>", t.indexes['idx_flight_01'].inspect
245
+ assert_equal "#<Rubeus::Jdbc::Index flights.idx_flight_02(orig_airport,depart_time DESC)>", t.indexes['idx_flight_02'].inspect
246
+ assert_equal "#<Rubeus::Jdbc::Index flights.idx_flight_03(dest_airport,arrive_time DESC)>", t.indexes['idx_flight_03'].inspect
247
+
210
248
  # assert_equal 0, tables['fltavail'].indexes.length
211
-
249
+
212
250
  # assert_equal 1, tables['cities'].indexes.length
213
251
  assert_index(tables['cities'], 'idx_cities_01', %w(city_name), [true])
252
+ assert_equal "#<Rubeus::Jdbc::Index cities.idx_cities_01(city_name)>", tables['cities'].indexes['idx_cities_01'].inspect
253
+
214
254
  # assert_equal 1, tables['metropolitan'].indexes.length
215
255
  assert_index(tables['metropolitan'], 'idx_metropolitan_01', %w(city_id hotel_name), [true, true])
256
+ assert_equal "#<Rubeus::Jdbc::Index metropolitan.idx_metropolitan_01(city_id,hotel_name)>", tables['metropolitan'].indexes['idx_metropolitan_01'].inspect
216
257
 
217
258
  # assert_equal 0, tables['test1'].indexes.length
218
259
  end
219
-
260
+
220
261
  def assert_fk(fk_name, pktable, pkcolumn_names, fktable, fkcolumn_names)
221
262
  imported_key = fktable.imported_keys[fk_name]
222
263
  exported_key = pktable.exported_keys[fk_name]
223
264
  assert_equal fk_name, imported_key.name
224
265
  assert_equal fk_name, exported_key.name
225
-
266
+
226
267
  assert_equal pktable.name, imported_key.pktable.name
227
268
  assert_equal fktable.name, imported_key.fktable.name
228
269
  assert_equal pktable.name, exported_key.pktable.name
229
270
  assert_equal fktable.name, exported_key.fktable.name
230
-
271
+
231
272
  assert_equal pkcolumn_names.length, imported_key.length
232
273
  assert_equal fkcolumn_names.length, exported_key.length
233
274
  assert_equal imported_key.length, exported_key.length
@@ -243,15 +284,20 @@ class TestDatabaseMetaData < Test::Unit::TestCase
243
284
  end
244
285
  end
245
286
  end
246
-
287
+
247
288
  def test_table_objects_imported_keys_and_exported_keys
248
289
  tables = @con.meta_data.tables(:schema => "APP", :name_case => :downcase)
249
- assert_fk('flts_fk',
290
+ assert_fk('flts_fk',
250
291
  tables['flights'], %w(flight_id segment_number),
251
292
  tables['fltavail'], %w(flight_id segment_number))
252
- assert_fk('metro_fk',
293
+ assert_equal("#<Rubeus::Jdbc::ForeignKey flts_fk fltavail(flight_id,segment_number)=>flights(flight_id,segment_number)>",
294
+ tables['fltavail'].foreign_keys['flts_fk'].inspect)
295
+
296
+ assert_fk('metro_fk',
253
297
  tables['cities'], %w(id),
254
298
  tables['metropolitan'], %w(city_id))
299
+ assert_equal("#<Rubeus::Jdbc::ForeignKey metro_fk metropolitan(city_id)=>cities(id)>",
300
+ tables['metropolitan'].foreign_keys['metro_fk'].inspect)
255
301
  end
256
-
302
+
257
303
  end
@@ -12,7 +12,6 @@ class TestDriverManager < Test::Unit::TestCase
12
12
  assert_nothing_raised do
13
13
  @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "")
14
14
  end
15
-
16
15
  if @con
17
16
  assert_equal(false, @con.closed?)
18
17
  @con.close
@@ -33,5 +32,13 @@ class TestDriverManager < Test::Unit::TestCase
33
32
  end
34
33
  assert_nil(con)
35
34
  end
36
- end
37
35
 
36
+ def test_mysql_loader_entry
37
+ entry = Rubeus::Jdbc::DriverManager::Loader.entries.detect{|entry| entry.name == "MySQL"}
38
+ assert entry
39
+ assert_equal 1, entry.patterns.length
40
+ driver_name = entry.driver_for("jdbc:mysql://127.0.0.1")
41
+ assert_equal "com.mysql.jdbc.Driver", driver_name
42
+ end
43
+
44
+ end
@@ -6,7 +6,7 @@ module TestSqlHelper
6
6
  def teardown_connection
7
7
  @con.close
8
8
  end
9
-
9
+
10
10
  def close_if_no_statement(statement = nil)
11
11
  must_be_closed = statement.nil?
12
12
  statement ||= @con.create_statement
@@ -16,7 +16,7 @@ module TestSqlHelper
16
16
  statement.close if must_be_closed
17
17
  end
18
18
  end
19
-
19
+
20
20
  def drop_table_if_exist(table_name, statement = nil)
21
21
  close_if_no_statement(statement) do |stmt|
22
22
  begin
@@ -26,7 +26,7 @@ module TestSqlHelper
26
26
  end
27
27
  end
28
28
  end
29
-
29
+
30
30
  def create_table_after_drop(create_ddl, statement = nil)
31
31
  create_ddls = create_ddl.split(/\;/mi).map{|ddl| ddl.strip }.select{|ddl| !(ddl.nil? || ddl.empty?) }
32
32
  table_names = create_ddls.map{|ddl| ddl.scan(/^\s*CREATE TABLE\s+?(.+?)[\s\($]/mi)}
@@ -39,5 +39,5 @@ module TestSqlHelper
39
39
  end
40
40
  end
41
41
  end
42
-
42
+
43
43
  end
@@ -0,0 +1,107 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+ require File.expand_path('../../rubeus_test.jar', File.dirname(__FILE__))
5
+
6
+ class TestMethodModifier < Test::Unit::TestCase
7
+ include Rubeus::Reflection
8
+
9
+ VariousMethods = jp.rubybizcommons.rubeus.test.reflection.VariousMethods
10
+
11
+ def test_static?
12
+ [java.lang.String, java.lang.Object, java.lang.Class, VariousMethods].each do |klass|
13
+ klass.java_class.java_class_methods.each do |m|
14
+ assert_equal true, m.static?
15
+ end
16
+ klass.java_class.java_instance_methods.each do |m|
17
+ assert_equal false, m.static?
18
+ end
19
+ end
20
+ end
21
+
22
+ def test_abstract?
23
+ m = java.util.AbstractList.java_class.declared_instance_methods.detect{|m| m.name == "get"}
24
+ assert_equal true, m.abstract?
25
+ m = java.util.AbstractList.java_class.declared_instance_methods.detect{|m| m.name == "add"}
26
+ assert_equal false, m.abstract?
27
+ end
28
+
29
+ ALL_METHOD_NAMES = %w[main
30
+ staticPublicStrictfp staticProtectedFinal staticPackageSynchronized staticPrivate
31
+ publicStrictfp protectedFinal packageSynchronized privateFinal]
32
+
33
+ def assert_modifier_syms(method_name, expected_syms)
34
+ m = (VariousMethods.java_class.declared_instance_methods.detect{|m| m.name == method_name} ||
35
+ VariousMethods.java_class.declared_class_methods.detect{|m| m.name == method_name})
36
+ assert_equal expected_syms.map(&:to_s).sort, m.modifier_symbols.map(&:to_s).sort
37
+ end
38
+
39
+ def test_modifier_symbols
40
+ assert_modifier_syms("main", [:public, :static])
41
+ # assert_modifier_syms("staticPublicStrictfp " , [:static, :public, :strict ])
42
+ assert_modifier_syms("staticProtectedFinal" , [:static, :protected, :final])
43
+ assert_modifier_syms("staticPackageSynchronized", [:static, :synchronized ])
44
+ assert_modifier_syms("staticPrivate" , [:static, :private ])
45
+ assert_modifier_syms("publicStrictfp" , [:public, :strict ])
46
+ assert_modifier_syms("protectedFinal" , [:protected, :final])
47
+ assert_modifier_syms("packageSynchronized", [:synchronized ])
48
+ assert_modifier_syms("privateFinal" , [:private, :final ])
49
+ end
50
+
51
+ def test_public?
52
+ each_java_methods do |m|
53
+ assert_equal %w[main staticPublicStrictfp publicStrictfp].include?(m.name), m.public?
54
+ end
55
+ end
56
+
57
+ def test_protected?
58
+ each_java_methods do |m|
59
+ assert_equal %w[staticProtectedFinal protectedFinal].include?(m.name), m.protected?
60
+ end
61
+ end
62
+
63
+ def test_package_scope?
64
+ each_java_methods do |m|
65
+ assert_equal %w[staticPackageSynchronized packageSynchronized].include?(m.name), m.package_scope?
66
+ end
67
+ end
68
+
69
+ def test_private?
70
+ each_java_methods do |m|
71
+ assert_equal %w[staticPrivate privateFinal].include?(m.name), m.private?
72
+ end
73
+ end
74
+
75
+ def test_final?
76
+ each_java_methods do |m|
77
+ assert_equal %w[staticProtectedFinal protectedFinal privateFinal].include?(m.name), m.final?
78
+ end
79
+ end
80
+
81
+ def test_strict?
82
+ each_java_methods do |m|
83
+ assert_equal %w[main staticPublicStrictfp publicStrictfp].include?(m.name), m.public?
84
+ end
85
+ end
86
+
87
+ def test_synchronized?
88
+ each_java_methods do |m|
89
+ assert_equal %w[staticPackageSynchronized packageSynchronized].include?(m.name), m.synchronized?
90
+ end
91
+ end
92
+
93
+
94
+
95
+ private
96
+
97
+ def each_java_methods(&block)
98
+ unless @test_methods
99
+ selector = lambda{|m| ALL_METHOD_NAMES.include?(m.name)}
100
+ @test_methods =
101
+ VariousMethods.java_class.declared_instance_methods.select(&selector) +
102
+ VariousMethods.java_class.declared_class_methods.select(&selector)
103
+ end
104
+ @test_methods.each(&block)
105
+ end
106
+
107
+ end