rubeus 0.0.8-java → 0.0.9-java

Sign up to get free protection for your applications and to get access to all the features.
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