rubeus 0.0.6-java → 0.0.7-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 (40) hide show
  1. data/Rakefile +26 -0
  2. data/examples/jdbc_example.rb +5 -24
  3. data/lib/rubeus.jar +0 -0
  4. data/lib/rubeus.rb +18 -2
  5. data/lib/rubeus/component_loader.rb +25 -20
  6. data/lib/rubeus/extensions.rb +44 -4
  7. data/lib/rubeus/extensions/java/awt/dimension.rb +8 -2
  8. data/lib/rubeus/extensions/java/sql/driver_manager.rb +240 -1
  9. data/lib/rubeus/extensions/javax/swing/j_table.rb +7 -23
  10. data/lib/rubeus/extensions/javax/swing/table/default_table_model.rb +7 -0
  11. data/lib/rubeus/extensions/javax/swing/table/readonlyable_table_model.rb +10 -0
  12. data/lib/rubeus/jdbc.rb +5 -0
  13. data/lib/rubeus/swing.rb +9 -6
  14. data/lib/rubeus/verboseable.rb +41 -0
  15. data/rmaven.yml +6 -0
  16. data/test/rubeus/awt/test_attributes.rb +58 -0
  17. data/test/rubeus/awt/test_event.rb +216 -0
  18. data/test/rubeus/awt/test_nestable.rb +92 -0
  19. data/test/rubeus/awt/test_setter.rb +42 -0
  20. data/test/rubeus/extensions/java/awt/test_dimension.rb +67 -0
  21. data/test/rubeus/extensions/java/sql/test_connection.rb +50 -0
  22. data/test/rubeus/extensions/java/sql/test_driver_manager.rb +37 -0
  23. data/test/rubeus/extensions/java/sql/test_result_set.rb +67 -0
  24. data/test/rubeus/extensions/java/sql/test_result_set_meta_data.rb +121 -0
  25. data/test/rubeus/extensions/java/sql/test_statement.rb +43 -0
  26. data/test/rubeus/extensions/javax/swing/table/test_default_table_model.rb +359 -0
  27. data/test/rubeus/extensions/javax/swing/table/test_default_table_model/nhk_words.xml +15 -0
  28. data/test/rubeus/extensions/javax/swing/test_box_layout.rb +56 -0
  29. data/test/rubeus/extensions/javax/swing/test_j_component.rb +30 -0
  30. data/test/rubeus/extensions/javax/swing/test_j_frame.rb +42 -0
  31. data/test/rubeus/extensions/javax/swing/test_j_panel.rb +23 -0
  32. data/test/rubeus/extensions/javax/swing/test_j_scroll_pane.rb +24 -0
  33. data/test/rubeus/extensions/javax/swing/test_j_split_pane.rb +54 -0
  34. data/test/rubeus/extensions/javax/swing/test_j_tabbed_pane.rb +204 -0
  35. data/test/rubeus/extensions/javax/swing/test_j_table.rb +71 -0
  36. data/test/rubeus/extensions/javax/swing/test_j_text_field.rb +48 -0
  37. data/test/rubeus/extensions/javax/swing/test_timer.rb +28 -0
  38. data/test/rubeus/test_extensions.rb +44 -0
  39. data/test/test_all.rb +2 -0
  40. metadata +50 -16
@@ -0,0 +1,42 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for setter.rb
6
+ class TestSetter < Test::Unit::TestCase
7
+ include Rubeus::Swing
8
+
9
+ # setup method
10
+ def setup
11
+ end
12
+
13
+ # test set_preferred_size
14
+ def test_set_preferred_size
15
+ JFrame.new do |f|
16
+ txt = JTextField.new
17
+ txt.set_preferred_size "100 x 150"
18
+
19
+ f.pack
20
+
21
+ assert_equal(100, txt.get_preferred_size.width)
22
+ assert_equal(150, txt.get_preferred_size.height)
23
+
24
+ f.dispose
25
+ end
26
+ end
27
+
28
+ # test preferred_size=
29
+ def test_preferred_size=
30
+ JFrame.new do |f|
31
+ txt = JTextField.new
32
+ txt.preferred_size = "150 x 100"
33
+
34
+ f.pack
35
+
36
+ assert_equal(150, txt.preferred_size.width)
37
+ assert_equal(100, txt.preferred_size.height)
38
+
39
+ f.dispose
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,67 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for Rubeus::Extensions::Java::Awt
6
+ class TestDimension < Test::Unit::TestCase
7
+ include Rubeus::Awt
8
+
9
+ # setup method
10
+ def setup
11
+ end
12
+
13
+ # create with array size 0
14
+ def test_create_with_array_size_0
15
+ d = Dimension.create([])
16
+
17
+ assert_equal(0, d.width)
18
+ assert_equal(0, d.height)
19
+ end
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
27
+
28
+ # create with array size 2
29
+ def test_create_with_array_size_2
30
+ d = Dimension.create([200, 300])
31
+
32
+ assert_equal(200, d.width)
33
+ assert_equal(300, d.height)
34
+ end
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
42
+
43
+ # create with dimension object
44
+ def test_create_with_dimension
45
+ d = Dimension.create([300, 400])
46
+ d2 = Dimension.create(d)
47
+
48
+ assert_equal(d.width, d2.width)
49
+ assert_equal(d.height, d2.height)
50
+ end
51
+
52
+ # create with multiply expression
53
+ def test_create_with_multiply expression
54
+ d = Dimension.create("400 x 500")
55
+
56
+ assert_equal(400, d.width)
57
+ assert_equal(500, d.height)
58
+ end
59
+
60
+ # create with original constructor
61
+ def test_create_with_original_constructor
62
+ d = Dimension.create(600, 350)
63
+
64
+ assert_equal(600, d.width)
65
+ assert_equal(350, d.height)
66
+ end
67
+ end
@@ -0,0 +1,50 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for connetion.rb
6
+ class TestConnection < Test::Unit::TestCase
7
+ # setup method
8
+ def setup
9
+ @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "")
10
+ end
11
+
12
+ def test_statement
13
+ assert_nothing_raised do
14
+ @con.statement do |stmt|
15
+ end
16
+ end
17
+ end
18
+
19
+ def test_query
20
+ # Drop test table
21
+ begin
22
+ @con.statement do |stmt|
23
+ stmt.execute_update("DROP TABLE TEST")
24
+ end
25
+ rescue
26
+ # table test is already exist
27
+ end
28
+
29
+ @con.statement do |stmt|
30
+ stmt.execute_update("CREATE TABLE TEST (ID INT, NAME CHAR(10))")
31
+ stmt.execute_update("INSERT INTO TEST VALUES(1, 'row1')")
32
+ stmt.execute_update("INSERT INTO TEST VALUES(2, 'row2')")
33
+ end
34
+
35
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
36
+ i = 1
37
+ rs.each_hash do |rsNext|
38
+ assert_equal(i, rsNext["ID"])
39
+ assert_equal("row#{i} ", rsNext["NAME"])
40
+
41
+ i += 1
42
+ end
43
+ end
44
+ end
45
+
46
+ def teardown
47
+ @con.close
48
+ end
49
+ end
50
+
@@ -0,0 +1,37 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for driver_manager.rb
6
+ class TestDriverManager < Test::Unit::TestCase
7
+ # setup method
8
+ def setup
9
+ end
10
+
11
+ def test_normal
12
+ assert_nothing_raised do
13
+ @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "")
14
+ end
15
+
16
+ if @con
17
+ assert_equal(false, @con.closed?)
18
+ @con.close
19
+ end
20
+ end
21
+
22
+ def test_without_auto_setup_manager
23
+ assert_nothing_raised do
24
+ org.apache.derby.jdbc.EmbeddedDriver
25
+ @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "", :auto_setup_manager => false)
26
+ @con.close
27
+ end
28
+ end
29
+
30
+ def test_with_block
31
+ con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true") do |con|
32
+ assert_equal(false, con.closed?)
33
+ end
34
+ assert_nil(con)
35
+ end
36
+ end
37
+
@@ -0,0 +1,67 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for result_set.rb
6
+ class TestResultSet < Test::Unit::TestCase
7
+ # setup method
8
+ def setup
9
+ @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "")
10
+
11
+ # Drop test table
12
+ begin
13
+ @con.statement do |stmt|
14
+ stmt.execute_update("DROP TABLE TEST")
15
+ end
16
+ rescue
17
+ # table test is already exist
18
+ end
19
+
20
+ @con.statement do |stmt|
21
+ stmt.execute_update("CREATE TABLE TEST (ID INT, NAME CHAR(10))")
22
+ stmt.execute_update("INSERT INTO TEST VALUES(1, 'row1')")
23
+ stmt.execute_update("INSERT INTO TEST VALUES(2, 'row2')")
24
+ end
25
+ end
26
+
27
+ def test_each
28
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
29
+ i = 1
30
+ rs.each do |rsNext|
31
+ assert_equal(i, rsNext.get_int("ID"))
32
+ assert_equal("row#{i} ", rsNext.get_string("NAME"))
33
+
34
+ i += 1
35
+ end
36
+ end
37
+ end
38
+
39
+ def test_each_array
40
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
41
+ i = 1
42
+ rs.each_array do |rsNext|
43
+ assert_equal(i, rsNext[0])
44
+ assert_equal("row#{i} ", rsNext[1])
45
+
46
+ i += 1
47
+ end
48
+ end
49
+ end
50
+
51
+ def test_each_hash
52
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
53
+ i = 1
54
+ rs.each_hash do |rsNext|
55
+ assert_equal(i, rsNext["ID"])
56
+ assert_equal("row#{i} ", rsNext["NAME"])
57
+
58
+ i += 1
59
+ end
60
+ end
61
+ end
62
+
63
+ def teardown
64
+ @con.close
65
+ end
66
+ end
67
+
@@ -0,0 +1,121 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for result_set_meta_data.rb
6
+ class TestResultSetMetaData < Test::Unit::TestCase
7
+ # setup method
8
+ def setup
9
+ @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "")
10
+
11
+ # Drop test table
12
+ begin
13
+ @con.statement do |stmt|
14
+ stmt.execute_update("DROP TABLE TEST")
15
+ end
16
+ rescue
17
+ # table test is already exist
18
+ end
19
+
20
+ @con.statement do |stmt|
21
+ stmt.execute_update("CREATE TABLE TEST (ID INT, NAME CHAR(10))")
22
+ end
23
+ end
24
+
25
+ def test_each_without_block
26
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
27
+ assert_nil(rs.meta_data.each)
28
+ end
29
+ end
30
+
31
+ def test_each_with_block
32
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
33
+ i = 1
34
+ rs.meta_data.each do |rsMeta|
35
+ assert_equal(i, rsMeta)
36
+ i += 1
37
+ end
38
+ end
39
+ end
40
+
41
+ def test_columns
42
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
43
+ i = 1
44
+ rs.meta_data.columns.each do |column|
45
+ if i == 1
46
+ assert_equal("java.lang.Integer", column.column_class_name)
47
+ assert_equal("java.lang.Integer", column.class_name)
48
+ assert_equal(11, column.column_display_size)
49
+ assert_equal(11, column.display_size)
50
+ assert_equal("ID", column.column_label)
51
+ assert_equal("ID", column.label)
52
+ assert_equal("ID", column.column_name)
53
+ assert_equal("ID", column.name)
54
+ assert_equal("INTEGER", column.column_type_name)
55
+ assert_equal("INTEGER", column.type_name)
56
+ assert_equal(false, column.case_sensitive)
57
+ assert_equal(false, column.case_sensitive?)
58
+ assert_equal(true, column.signed)
59
+ assert_equal(true, column.signed?)
60
+ elsif i == 2
61
+ assert_equal("java.lang.String", column.column_class_name)
62
+ assert_equal("java.lang.String", column.class_name)
63
+ assert_equal(10, column.column_display_size)
64
+ assert_equal(10, column.display_size)
65
+ assert_equal("NAME", column.column_label)
66
+ assert_equal("NAME", column.label)
67
+ assert_equal("NAME", column.column_name)
68
+ assert_equal("NAME", column.name)
69
+ assert_equal("CHAR", column.column_type_name)
70
+ assert_equal("CHAR", column.type_name)
71
+ assert_equal(true, column.case_sensitive)
72
+ assert_equal(true, column.case_sensitive?)
73
+ assert_equal(false, column.signed)
74
+ assert_equal(false, column.signed?)
75
+ end
76
+
77
+ # common test
78
+ assert_equal(i, column.column_index)
79
+ assert_equal(i, column.index)
80
+ assert_equal(false, column.auto_increment)
81
+ assert_equal(false, column.auto_increment?)
82
+ assert_equal(false, column.currency)
83
+ assert_equal(false, column.currency?)
84
+ assert_equal(false, column.definitely_writable)
85
+ assert_equal(false, column.definitely_writable?)
86
+
87
+ # java.sql.ResultSetMetaData.const_get(:columnNullable) has error
88
+ assert_equal(1, column.is_nullable)
89
+
90
+ assert_equal(false, column.read_only)
91
+ assert_equal(false, column.read_only?)
92
+ assert_equal(true, column.searchable)
93
+ assert_equal(true, column.searchable?)
94
+ assert_equal(false, column.writable)
95
+ assert_equal(false, column.writable?)
96
+
97
+ i += 1
98
+ end
99
+ end
100
+ end
101
+
102
+ def test_column_names
103
+ expected_column_names = {1 => "ID", 2 => "NAME"}
104
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
105
+ assert_equal(expected_column_names, rs.meta_data.column_names)
106
+ end
107
+ end
108
+
109
+ def test_column_index
110
+ @con.query("SELECT * FROM TEST ORDER BY ID") do |rs|
111
+ rs.meta_data.each do |rsMeta|
112
+ assert_equal(rsMeta, rs.meta_data.column_index(rsMeta))
113
+ end
114
+ end
115
+ end
116
+
117
+ def teardown
118
+ @con.close
119
+ end
120
+ end
121
+
@@ -0,0 +1,43 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'rubeus'
4
+
5
+ # Test for statement.rb
6
+ class TestStatement < Test::Unit::TestCase
7
+ # setup method
8
+ def setup
9
+ @con = Rubeus::Jdbc::DriverManager.connect("jdbc:derby:test_db;create = true", "", "")
10
+ end
11
+
12
+ def test_query
13
+ # Drop test table
14
+ begin
15
+ @con.statement do |stmt|
16
+ stmt.execute_update("DROP TABLE TEST")
17
+ end
18
+ rescue
19
+ # table test is already exist
20
+ end
21
+
22
+ @con.statement do |stmt|
23
+ stmt.execute_update("CREATE TABLE TEST (ID INT, NAME CHAR(10))")
24
+ stmt.execute_update("INSERT INTO TEST VALUES(1, 'row1')")
25
+ stmt.execute_update("INSERT INTO TEST VALUES(2, 'row2')")
26
+
27
+ stmt.query("SELECT * FROM TEST ORDER BY ID") do |rs|
28
+ i = 1
29
+ rs.each_hash do |rsNext|
30
+ assert_equal(i, rsNext["ID"])
31
+ assert_equal("row#{i} ", rsNext["NAME"])
32
+
33
+ i += 1
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ def teardown
40
+ @con.close
41
+ end
42
+ end
43
+
@@ -0,0 +1,359 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test/unit'
3
+ require 'rubygems'
4
+ require 'rubeus'
5
+ require 'rexml/document'
6
+
7
+ # Rubeus.verbose = true
8
+
9
+ # Test for Rubeus::Extensions::Javax::Swing::Table
10
+ class TestDefaultTableModel < Test::Unit::TestCase
11
+ include Rubeus::Swing
12
+
13
+ # setup method
14
+ def setup
15
+ # Load XML File
16
+ open(File.join(File.dirname(__FILE__), 'test_default_table_model', 'nhk_words.xml')) do |f|
17
+ @xml = REXML::Document.new(f)
18
+ end
19
+ end
20
+
21
+ # normal pattern
22
+ def test_load_from_xml_normal
23
+ # Initialize JTable and model
24
+ nhk_word_table = JTable.new
25
+ nhk_word_table.model = ['ID', 'NHK語']
26
+
27
+ # load_from_xml
28
+ nhk_word_table.model.load_from_xml(@xml,
29
+ :row_path => '*/nhk-word',
30
+ :column_paths => ['id', 'expression'])
31
+
32
+ assert_for_normal(nhk_word_table)
33
+ end
34
+
35
+ # utility for assert method for normal
36
+ def assert_for_normal(nhk_word_table)
37
+ # assert row count
38
+ assert_equal(2, nhk_word_table.model.row_count)
39
+
40
+ # assert first row
41
+ assert_equal("1", nhk_word_table.model.get_value_at(0, 0))
42
+ assert_equal("ないわ~", nhk_word_table.model.get_value_at(0, 1))
43
+
44
+ # assert second row
45
+ assert_equal("2", nhk_word_table.model.get_value_at(1, 0))
46
+ assert_equal("格好いい", nhk_word_table.model.get_value_at(1, 1))
47
+ end
48
+ private :assert_for_normal
49
+
50
+ # row_path is nil
51
+ def test_load_from_xml_nil_row_path
52
+ # Initialize JTable and model
53
+ nhk_word_table = JTable.new
54
+ nhk_word_table.model = ['ID', 'NHK語']
55
+
56
+ # load_from_xml
57
+ assert_raise(ArgumentError) do
58
+ nhk_word_table.model.load_from_xml(@xml,
59
+ :column_paths => ['id', 'expression'])
60
+ end
61
+ end
62
+
63
+ # invalid row_path
64
+ def test_load_from_xml_invalid_row_path
65
+ # Initialize JTable and model
66
+ nhk_word_table = JTable.new
67
+ nhk_word_table.model = ['ID', 'NHK語']
68
+
69
+ # load_from_xml
70
+ nhk_word_table.model.load_from_xml(@xml,
71
+ :row_path => '*/nhk-words',
72
+ :column_paths => ['id', 'expression'])
73
+
74
+ # assert row count
75
+ assert_equal(0, nhk_word_table.model.row_count)
76
+ end
77
+
78
+ # nil column_paths
79
+ def test_load_from_xml_nil_column_paths
80
+ # Initialize JTable and model
81
+ nhk_word_table = JTable.new
82
+ nhk_word_table.model = ['ID', 'NHK語']
83
+
84
+ # load_from_xml
85
+ nhk_word_table.model.load_from_xml(@xml,
86
+ :row_path => '*/nhk-word')
87
+
88
+ # assert for normal
89
+ assert_for_normal(nhk_word_table)
90
+ end
91
+
92
+ # nil column_paths with refresh_columns
93
+ def test_load_from_xml_nil_column_paths_with_refresh_columns
94
+ # Initialize JTable and model
95
+ nhk_word_table = JTable.new
96
+ nhk_word_table.model = ['ID', 'NHK語']
97
+
98
+ # load_from_xml
99
+ nhk_word_table.model.load_from_xml(@xml,
100
+ :row_path => '*/nhk-word',
101
+ :refresh_columns => true)
102
+
103
+ # assert for normal
104
+ assert_for_normal(nhk_word_table)
105
+ end
106
+
107
+ # invalid column_paths
108
+ def test_load_from_xml_invalid_column_paths
109
+ # Initialize JTable and model
110
+ nhk_word_table = JTable.new
111
+ nhk_word_table.model = ['ID', 'NHK語']
112
+
113
+ # load_from_xml
114
+ assert_raise(ArgumentError) do
115
+ nhk_word_table.model.load_from_xml(@xml,
116
+ :row_path => '*/nhk-word',
117
+ :column_paths => ['ida', 'expression'])
118
+ end
119
+ end
120
+
121
+ # less number of columns
122
+ def test_load_from_xml_less_number_of_columns
123
+ # Initialize JTable and model
124
+ nhk_word_table = JTable.new
125
+ nhk_word_table.model = ['ID', 'NHK語']
126
+
127
+ # load_from_xml
128
+ nhk_word_table.model.load_from_xml(@xml,
129
+ :row_path => '*/nhk-word',
130
+ :column_paths => ['id'])
131
+
132
+ # assert row count
133
+ assert_equal(2, nhk_word_table.model.row_count)
134
+
135
+ # assert first row
136
+ assert_equal("1", nhk_word_table.model.get_value_at(0, 0))
137
+ assert_nil(nhk_word_table.model.get_value_at(0, 1))
138
+
139
+ # assert second row
140
+ assert_equal("2", nhk_word_table.model.get_value_at(1, 0))
141
+ assert_nil(nhk_word_table.model.get_value_at(1, 1))
142
+ end
143
+
144
+ # less number of columns with refresh_columns
145
+ def test_load_from_xml_less_number_of_columns_with_refresh_columns
146
+ # Initialize JTable and model
147
+ nhk_word_table = JTable.new
148
+ nhk_word_table.model = ['ID', 'NHK語']
149
+
150
+ # load_from_xml
151
+ nhk_word_table.model.load_from_xml(@xml,
152
+ :row_path => '*/nhk-word',
153
+ :column_paths => ['id'],
154
+ :refresh_columns => true)
155
+
156
+ # assert row count
157
+ assert_equal(2, nhk_word_table.model.row_count)
158
+ assert_equal(1, nhk_word_table.model.column_count)
159
+
160
+ # assert first row
161
+ assert_equal("1", nhk_word_table.model.get_value_at(0, 0))
162
+
163
+ # assert second row
164
+ assert_equal("2", nhk_word_table.model.get_value_at(1, 0))
165
+ end
166
+
167
+ # large number of columns
168
+ def test_load_from_xml_large_number_of_columns
169
+ # Initialize JTable and model
170
+ nhk_word_table = JTable.new
171
+ nhk_word_table.model = ['ID', 'NHK語']
172
+
173
+ # load_from_xml
174
+ nhk_word_table.model.load_from_xml(@xml,
175
+ :row_path => '*/nhk-word',
176
+ :column_paths => ['id', 'expression', 'created-at'])
177
+
178
+ # assert row count
179
+ assert_equal(2, nhk_word_table.model.row_count)
180
+ end
181
+
182
+ # large number of columns with refresh_columns
183
+ def test_load_from_xml_large_number_of_columns_with_refresh_columns
184
+ # Initialize JTable and model
185
+ nhk_word_table = JTable.new
186
+ nhk_word_table.model = ['ID', 'NHK語']
187
+
188
+ # load_from_xml
189
+ nhk_word_table.model.load_from_xml(@xml,
190
+ :row_path => '*/nhk-word',
191
+ :column_paths => ['id', 'expression', 'created-at'],
192
+ :refresh_columns => true)
193
+
194
+ # assert row count
195
+ assert_equal(2, nhk_word_table.model.row_count)
196
+ assert_equal(3, nhk_word_table.model.column_count)
197
+
198
+ # assert for normal
199
+ assert_for_normal(nhk_word_table)
200
+
201
+ # assert first row
202
+ assert_equal("2008-08-13T20:35:00Z", nhk_word_table.model.get_value_at(0, 2))
203
+
204
+ # assert second row
205
+ assert_equal("2008-08-13T20:36:00Z", nhk_word_table.model.get_value_at(1, 2))
206
+ end
207
+
208
+ # insert_row
209
+ def test_insert_row
210
+ # Initialize JTable and model
211
+ nhk_word_table = JTable.new
212
+ nhk_word_table.model = ['ID', 'NHK語']
213
+
214
+ # Insert Rows
215
+ nhk_word_table.model.insert_row(0, [1, "いんさーと"])
216
+ nhk_word_table.model.insert_row(0, [2, "インサートその2"])
217
+
218
+ # assert row count
219
+ assert_equal(2, nhk_word_table.model.row_count)
220
+
221
+ # assert first row
222
+ assert_equal(2, nhk_word_table.model.get_value_at(0, 0))
223
+ assert_equal("インサートその2", nhk_word_table.model.get_value_at(0, 1))
224
+
225
+ # assert second row
226
+ assert_equal(1, nhk_word_table.model.get_value_at(1, 0))
227
+ assert_equal("いんさーと", nhk_word_table.model.get_value_at(1, 1))
228
+ end
229
+
230
+ # add_row
231
+ def test_add_row
232
+ # Initialize JTable and model
233
+ nhk_word_table = JTable.new
234
+ nhk_word_table.model = ['ID', 'NHK語']
235
+
236
+ # Insert Rows
237
+ nhk_word_table.model.add_row([1, "いんさーと"])
238
+ nhk_word_table.model.add_row([2, "インサートその2"])
239
+
240
+ # assert row count
241
+ assert_equal(2, nhk_word_table.model.row_count)
242
+
243
+ # assert first row
244
+ assert_equal(1, nhk_word_table.model.get_value_at(0, 0))
245
+ assert_equal("いんさーと", nhk_word_table.model.get_value_at(0, 1))
246
+
247
+ # assert second row
248
+ assert_equal(2, nhk_word_table.model.get_value_at(1, 0))
249
+ assert_equal("インサートその2", nhk_word_table.model.get_value_at(1, 1))
250
+ end
251
+
252
+ # new with 2d-Array
253
+ def test_new_with_2dArray
254
+ # Initialize JTable and model
255
+ nhk_word_table = JTable.new
256
+ nhk_word_table.model = [[1, "1行目"], [2, "2行目"], [3, "3行目"]]
257
+
258
+ # assert row count
259
+ assert_equal(3, nhk_word_table.model.row_count)
260
+
261
+ # assert column count
262
+ assert_equal(2, nhk_word_table.model.column_count)
263
+
264
+ # assert rows
265
+ for i in 1..nhk_word_table.model.row_count
266
+ assert_equal(i, nhk_word_table.model.get_value_at((i-1), 0))
267
+ assert_equal("#{i}行目", nhk_word_table.model.get_value_at((i-1), 1))
268
+ end
269
+
270
+ # assert columns
271
+ for i in 1..nhk_word_table.model.column_count
272
+ assert_equal(i.to_s, nhk_word_table.model.getColumnName(i-1))
273
+ end
274
+ end
275
+
276
+ # new with Array
277
+ def test_new_with_array
278
+ # Initialize JTable and model
279
+ nhk_word_table = JTable.new
280
+ nhk_word_table.model = ["ID", "NHK語"]
281
+
282
+ # assert row count
283
+ assert_equal(0, nhk_word_table.model.row_count)
284
+
285
+ # assert column count
286
+ assert_equal(2, nhk_word_table.model.column_count)
287
+
288
+ # assert columns
289
+ assert_equal("ID", nhk_word_table.model.get_column_name(0))
290
+ assert_equal("NHK語", nhk_word_table.model.get_column_name(1))
291
+ end
292
+
293
+ # new with Hash
294
+ def test_new_with_hash_data_column_names
295
+ # Initialize JTable and model
296
+ nhk_word_table = JTable.new
297
+ nhk_word_table.model = {:data => [["1", "ないわ~"], ["2", "格好いい"]], :column_names => ["ID", "NHK語"]}
298
+
299
+ assert_for_normal(nhk_word_table)
300
+ end
301
+
302
+ # new with Hash
303
+ def test_new_with_hash_rows_columns
304
+ # Initialize JTable and model
305
+ nhk_word_table = JTable.new
306
+ nhk_word_table.model = {:rows => [["1", "ないわ~"], ["2", "格好いい"]], :columns => ["ID", "NHK語"]}
307
+
308
+ assert_for_normal(nhk_word_table)
309
+ end
310
+
311
+ # new with Hash nil rows
312
+ def test_new_with_hash_nil_rows
313
+ # Initialize JTable and model
314
+ nhk_word_table = JTable.new
315
+
316
+ assert_raise(ArgumentError) do
317
+ nhk_word_table.model = {:columns => ["ID", "NHK語"]}
318
+ end
319
+ end
320
+
321
+ # new with Hash nil cols
322
+ def test_new_with_hash_nil_cols
323
+ # Initialize JTable and model
324
+ nhk_word_table = JTable.new
325
+
326
+ assert_raise(ArgumentError) do
327
+ nhk_word_table.model = {:rows => [["1", "ないわ~"], ["2", "格好いい"]]}
328
+ end
329
+ end
330
+
331
+ # new with XML
332
+ def test_new_with_xml
333
+ # Initialize JTable and model
334
+ nhk_word_table = JTable.new
335
+ nhk_word_table.model = DefaultTableModel.new(@xml, {:row_path => '*/nhk-word', :column_paths => ['id', 'expression']})
336
+
337
+ assert_for_normal(nhk_word_table)
338
+ end
339
+
340
+ # new with original constructor
341
+ def test_new_with_original_constructor
342
+ # Initialize JTable and model
343
+ nhk_word_table = JTable.new
344
+ nhk_word_table.model = DefaultTableModel.new(4, 3)
345
+
346
+ # assert row count
347
+ assert_equal(4, nhk_word_table.model.row_count)
348
+
349
+ # assert column count
350
+ assert_equal(3, nhk_word_table.model.column_count)
351
+
352
+ # assert cells
353
+ for i in 1..nhk_word_table.model.row_count
354
+ for j in 1..nhk_word_table.model.column_count
355
+ assert_nil(nhk_word_table.model.get_value_at((i-1), (j-1)))
356
+ end
357
+ end
358
+ end
359
+ end