activegroonga 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/AUTHORS +1 -0
  2. data/NEWS.ja.rdoc +5 -0
  3. data/NEWS.rdoc +5 -0
  4. data/README.ja.rdoc +49 -0
  5. data/README.rdoc +49 -0
  6. data/Rakefile +175 -0
  7. data/lib/active_groonga.rb +75 -0
  8. data/lib/active_groonga/aggregations.rb +30 -0
  9. data/lib/active_groonga/associations.rb +93 -0
  10. data/lib/active_groonga/associations/belongs_to_association.rb +25 -0
  11. data/lib/active_groonga/attribute_methods.rb +36 -0
  12. data/lib/active_groonga/base.rb +1579 -0
  13. data/lib/active_groonga/column.rb +107 -0
  14. data/lib/active_groonga/dirty.rb +30 -0
  15. data/lib/active_groonga/fixtures.rb +92 -0
  16. data/lib/active_groonga/migration.rb +150 -0
  17. data/lib/active_groonga/rails_support.rb +31 -0
  18. data/lib/active_groonga/reflection.rb +30 -0
  19. data/lib/active_groonga/schema.rb +314 -0
  20. data/lib/active_groonga/schema_dumper.rb +147 -0
  21. data/lib/active_groonga/tasks.rb +16 -0
  22. data/lib/active_groonga/tasks/groonga.rake +162 -0
  23. data/lib/active_groonga/test_case.rb +21 -0
  24. data/lib/active_groonga/test_help.rb +21 -0
  25. data/lib/active_groonga/timestamp.rb +30 -0
  26. data/lib/active_groonga/validations.rb +26 -0
  27. data/lib/active_groonga/version.rb +24 -0
  28. data/license/LGPL +504 -0
  29. data/rails/README +28 -0
  30. data/rails/init.rb +70 -0
  31. data/rails_generators/model_groonga/USAGE +28 -0
  32. data/rails_generators/model_groonga/model_groonga_generator.rb +45 -0
  33. data/rails_generators/model_groonga/templates/fixtures.yml +17 -0
  34. data/rails_generators/model_groonga/templates/migration.rb +16 -0
  35. data/rails_generators/model_groonga/templates/model.rb +2 -0
  36. data/rails_generators/model_groonga/templates/unit_test.rb +8 -0
  37. data/test-unit/Rakefile +35 -0
  38. data/test-unit/TODO +5 -0
  39. data/test-unit/bin/testrb +5 -0
  40. data/test-unit/html/classic.html +15 -0
  41. data/test-unit/html/index.html +25 -0
  42. data/test-unit/html/index.html.ja +27 -0
  43. data/test-unit/lib/test/unit.rb +342 -0
  44. data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
  45. data/test-unit/lib/test/unit/assertions.rb +1149 -0
  46. data/test-unit/lib/test/unit/attribute.rb +125 -0
  47. data/test-unit/lib/test/unit/autorunner.rb +306 -0
  48. data/test-unit/lib/test/unit/collector.rb +43 -0
  49. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  50. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  51. data/test-unit/lib/test/unit/collector/load.rb +135 -0
  52. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  53. data/test-unit/lib/test/unit/color-scheme.rb +86 -0
  54. data/test-unit/lib/test/unit/color.rb +96 -0
  55. data/test-unit/lib/test/unit/diff.rb +538 -0
  56. data/test-unit/lib/test/unit/error.rb +124 -0
  57. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  58. data/test-unit/lib/test/unit/failure.rb +110 -0
  59. data/test-unit/lib/test/unit/fixture.rb +176 -0
  60. data/test-unit/lib/test/unit/notification.rb +125 -0
  61. data/test-unit/lib/test/unit/omission.rb +143 -0
  62. data/test-unit/lib/test/unit/pending.rb +146 -0
  63. data/test-unit/lib/test/unit/priority.rb +161 -0
  64. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  65. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  66. data/test-unit/lib/test/unit/testcase.rb +360 -0
  67. data/test-unit/lib/test/unit/testresult.rb +89 -0
  68. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  69. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  70. data/test-unit/lib/test/unit/ui/console/testrunner.rb +220 -0
  71. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  72. data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
  73. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  74. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  75. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  76. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  77. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  78. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  79. data/test-unit/lib/test/unit/version.rb +7 -0
  80. data/test-unit/sample/adder.rb +13 -0
  81. data/test-unit/sample/subtracter.rb +12 -0
  82. data/test-unit/sample/tc_adder.rb +18 -0
  83. data/test-unit/sample/tc_subtracter.rb +18 -0
  84. data/test-unit/sample/test_user.rb +22 -0
  85. data/test-unit/sample/ts_examples.rb +7 -0
  86. data/test-unit/test/collector/test-descendant.rb +135 -0
  87. data/test-unit/test/collector/test-load.rb +333 -0
  88. data/test-unit/test/collector/test_dir.rb +406 -0
  89. data/test-unit/test/collector/test_objectspace.rb +98 -0
  90. data/test-unit/test/run-test.rb +13 -0
  91. data/test-unit/test/test-attribute.rb +86 -0
  92. data/test-unit/test/test-color-scheme.rb +56 -0
  93. data/test-unit/test/test-color.rb +47 -0
  94. data/test-unit/test/test-diff.rb +477 -0
  95. data/test-unit/test/test-emacs-runner.rb +60 -0
  96. data/test-unit/test/test-fixture.rb +287 -0
  97. data/test-unit/test/test-notification.rb +33 -0
  98. data/test-unit/test/test-omission.rb +81 -0
  99. data/test-unit/test/test-pending.rb +70 -0
  100. data/test-unit/test/test-priority.rb +119 -0
  101. data/test-unit/test/test_assertions.rb +1082 -0
  102. data/test-unit/test/test_error.rb +26 -0
  103. data/test-unit/test/test_failure.rb +33 -0
  104. data/test-unit/test/test_testcase.rb +478 -0
  105. data/test-unit/test/test_testresult.rb +113 -0
  106. data/test-unit/test/test_testsuite.rb +129 -0
  107. data/test-unit/test/testunit-test-util.rb +14 -0
  108. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  109. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  110. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  111. data/test-unit/test/util/test_observable.rb +102 -0
  112. data/test-unit/test/util/test_procwrapper.rb +36 -0
  113. data/test/active-groonga-test-utils.rb +234 -0
  114. data/test/fixtures/bookmark.rb +2 -0
  115. data/test/fixtures/task.rb +2 -0
  116. data/test/fixtures/user.rb +2 -0
  117. data/test/run-test.rb +51 -0
  118. data/test/test-associations.rb +24 -0
  119. data/test/test-base.rb +194 -0
  120. data/test/test-schema.rb +49 -0
  121. metadata +192 -0
@@ -0,0 +1,60 @@
1
+ require 'test/unit'
2
+ require 'test/unit/ui/emacs/testrunner'
3
+
4
+ class TestUnitEmacsRunner < Test::Unit::TestCase
5
+ def test_format_failure_with_a_location
6
+ runner = create_runner
7
+ test_name = "test_failure"
8
+ file = "/home/user/test_xxx.rb"
9
+ line = "3"
10
+ info = "in `xxx'"
11
+ location = "#{file}:#{line}: #{info}"
12
+ message = "FAIL!!!"
13
+ failure = Test::Unit::Failure.new(test_name, [location], message)
14
+ assert_equal(<<-EOM.chomp, runner.send(:format_fault, failure))
15
+ Failure:
16
+ #{test_name} [#{file}:#{line}]:
17
+ #{message}
18
+ EOM
19
+ end
20
+
21
+ def test_format_failure_with_locations
22
+ runner = create_runner
23
+ test_name = "test_failure"
24
+ locations = ["/home/user/test_xxx.rb:3: in `xxx'",
25
+ "/home/user/yyy/test_yyy.rb:999: in `yyy'",
26
+ "/home/user/xyz/zzz.rb:29: in `zzz'"]
27
+ message = "Many backtrace!!!"
28
+ failure = Test::Unit::Failure.new(test_name, locations, message)
29
+ assert_equal(<<-EOM.chomp, runner.send(:format_fault, failure))
30
+ Failure:
31
+ #{test_name}
32
+ #{locations.join("\n")}:
33
+ #{message}
34
+ EOM
35
+ end
36
+
37
+ def test_format_error
38
+ runner = create_runner
39
+ test_name = "test_error"
40
+ message = "Error Message!!!"
41
+ backtrace = ["/home/user/test_xxx.rb:3: in `xxx'",
42
+ "/home/user/yyy/test_yyy.rb:999: in `yyy'",
43
+ "/home/user/xyz/zzz.rb:29: in `zzz'"]
44
+ exception = RuntimeError.new(message)
45
+ exception.set_backtrace(backtrace)
46
+ error = Test::Unit::Error.new(test_name, exception)
47
+ assert_equal(<<-EOM.chomp, runner.send(:format_fault, error))
48
+ Error:
49
+ #{test_name}:
50
+ #{exception.class.name}: #{message}
51
+ #{backtrace.join("\n")}
52
+ EOM
53
+ end
54
+
55
+ private
56
+ def create_runner(suite=nil)
57
+ suite ||= Test::Unit::TestSuite.new
58
+ Test::Unit::UI::Emacs::TestRunner.new(suite)
59
+ end
60
+ end
@@ -0,0 +1,287 @@
1
+ class TestUnitFixture < Test::Unit::TestCase
2
+ module EmptyModule
3
+ end
4
+
5
+ def test_setup_without_option
6
+ expected_setup_calls = [:setup,
7
+ :custom_setup_method0,
8
+ :custom_setup_method1,
9
+ :custom_setup_method3]
10
+ test_case = assert_setup(expected_setup_calls, [])
11
+ assert_inherited_setup(expected_setup_calls, test_case)
12
+
13
+ assert_inherited_setup([:setup], nil)
14
+ assert_called_fixtures(expected_setup_calls, test_case)
15
+ end
16
+
17
+ def test_setup_with_before_option
18
+ expected_setup_calls = [:custom_setup_method3,
19
+ :custom_setup_method0,
20
+ :custom_setup_method1,
21
+ :setup]
22
+ test_case = assert_setup(expected_setup_calls,
23
+ [[{:before => :append}],
24
+ [{:before => :append}],
25
+ [{:before => :prepend}],
26
+ [{:before => :prepend}]])
27
+ assert_inherited_setup(expected_setup_calls, test_case)
28
+
29
+ assert_inherited_setup([:setup], nil)
30
+ assert_called_fixtures(expected_setup_calls, test_case)
31
+ end
32
+
33
+ def test_setup_with_after_option
34
+ expected_setup_calls = [:setup,
35
+ :custom_setup_method3,
36
+ :custom_setup_method0,
37
+ :custom_setup_method1]
38
+ test_case = assert_setup(expected_setup_calls,
39
+ [[{:after => :append}],
40
+ [{:after => :append}],
41
+ [{:after => :prepend}],
42
+ [{:after => :prepend}]])
43
+ assert_inherited_setup(expected_setup_calls, test_case)
44
+
45
+ assert_inherited_setup([:setup], nil)
46
+ assert_called_fixtures(expected_setup_calls, test_case)
47
+ end
48
+
49
+ def test_setup_with_invalid_option
50
+ assert_invalid_setup_option(:unknown => true)
51
+ assert_invalid_setup_option(:before => :unknown)
52
+ assert_invalid_setup_option(:after => :unknown)
53
+ end
54
+
55
+ def test_setup_with_option_to_inherited
56
+ expected_setup_calls = [:setup]
57
+ test_case = assert_setup(expected_setup_calls, nil)
58
+ assert_inherited_setup([:setup,
59
+ :custom_setup_method0,
60
+ :custom_setup_method1,
61
+ :custom_setup_method3],
62
+ test_case,
63
+ [])
64
+
65
+ assert_inherited_setup([:setup], nil)
66
+ assert_called_fixtures(expected_setup_calls, test_case)
67
+ end
68
+
69
+ def test_teardown_without_option
70
+ expected_teardown_calls = [:custom_teardown_method3,
71
+ :custom_teardown_method1,
72
+ :custom_teardown_method0,
73
+ :teardown]
74
+ test_case = assert_teardown(expected_teardown_calls, [])
75
+ assert_inherited_teardown(expected_teardown_calls, test_case)
76
+
77
+ assert_inherited_teardown([:teardown], nil)
78
+ assert_called_fixtures(expected_teardown_calls, test_case)
79
+ end
80
+
81
+ def test_teardown_with_before_option
82
+ expected_teardown_calls = [:custom_teardown_method3,
83
+ :custom_teardown_method0,
84
+ :custom_teardown_method1,
85
+ :teardown]
86
+ test_case = assert_teardown(expected_teardown_calls,
87
+ [[{:before => :append}],
88
+ [{:before => :append}],
89
+ [{:before => :prepend}],
90
+ [{:before => :prepend}]])
91
+ assert_inherited_teardown(expected_teardown_calls, test_case)
92
+
93
+ assert_inherited_teardown([:teardown], nil)
94
+ assert_called_fixtures(expected_teardown_calls, test_case)
95
+ end
96
+
97
+ def test_teardown_with_after_option
98
+ expected_teardown_calls = [:teardown,
99
+ :custom_teardown_method3,
100
+ :custom_teardown_method0,
101
+ :custom_teardown_method1]
102
+ test_case = assert_teardown(expected_teardown_calls,
103
+ [[{:after => :append}],
104
+ [{:after => :append}],
105
+ [{:after => :prepend}],
106
+ [{:after => :prepend}]])
107
+ assert_inherited_teardown(expected_teardown_calls, test_case)
108
+
109
+ assert_inherited_teardown([:teardown], nil)
110
+ assert_called_fixtures(expected_teardown_calls, test_case)
111
+ end
112
+
113
+ def test_teardown_with_invalid_option
114
+ assert_invalid_teardown_option(:unknown => true)
115
+ assert_invalid_teardown_option(:before => :unknown)
116
+ assert_invalid_teardown_option(:after => :unknown)
117
+ end
118
+
119
+ def test_teardown_with_option_to_inherited
120
+ expected_teardown_calls = [:teardown]
121
+ test_case = assert_teardown(expected_teardown_calls, nil)
122
+ assert_inherited_teardown([:custom_teardown_method3,
123
+ :custom_teardown_method1,
124
+ :custom_teardown_method0,
125
+ :teardown],
126
+ test_case, [])
127
+
128
+ assert_inherited_teardown([:teardown], nil)
129
+ assert_called_fixtures(expected_teardown_calls, test_case)
130
+ end
131
+
132
+ private
133
+ def assert_called_fixtures(expected, test_case)
134
+ test = test_case.new("test_nothing")
135
+ test.run(Test::Unit::TestResult.new) {}
136
+ assert_equal(expected, test.called_ids)
137
+ end
138
+
139
+ def assert_setup_customizable(expected, parent, options)
140
+ test_case = Class.new(parent || Test::Unit::TestCase) do
141
+ yield(self, :before) if block_given?
142
+
143
+ def called_ids
144
+ @called_ids ||= []
145
+ end
146
+
147
+ def called(id)
148
+ called_ids << id
149
+ end
150
+
151
+ def setup
152
+ called(:setup)
153
+ end
154
+
155
+ setup(*(options[0] || [])) if options
156
+ def custom_setup_method0
157
+ called(:custom_setup_method0)
158
+ end
159
+
160
+ def custom_setup_method1
161
+ called(:custom_setup_method1)
162
+ end
163
+ setup(*[:custom_setup_method1, *(options[1] || [])]) if options
164
+
165
+ setup(*(options[2] || [])) if options
166
+ def custom_setup_method2
167
+ called(:custom_setup_method2)
168
+ end
169
+ unregister_setup(:custom_setup_method2) if options
170
+
171
+ setup(*(options[3] || [])) if options
172
+ def custom_setup_method3
173
+ called(:custom_setup_method3)
174
+ end
175
+
176
+ def test_nothing
177
+ end
178
+
179
+ yield(self, :after) if block_given?
180
+ end
181
+
182
+ assert_called_fixtures(expected, test_case)
183
+ test_case
184
+ end
185
+
186
+ def assert_setup(expected, options)
187
+ _test_case = assert_setup_customizable(expected, nil, options)
188
+ assert_setup_customizable(expected, nil, options) do |test_case, tag|
189
+ test_case.send(:include, EmptyModule) if tag == :before
190
+ end
191
+ _test_case
192
+ end
193
+
194
+ def assert_inherited_setup(expected, parent, options=nil)
195
+ _test_case = assert_setup_customizable(expected, parent, options)
196
+ assert_setup_customizable(expected, parent, options) do |test_case, tag|
197
+ test_case.send(:include, EmptyModule) if tag == :before
198
+ end
199
+ _test_case
200
+ end
201
+
202
+ def assert_teardown_customizable(expected, parent, options)
203
+ test_case = Class.new(parent || Test::Unit::TestCase) do
204
+ yield(self, :before) if block_given?
205
+
206
+ def called_ids
207
+ @called_ids ||= []
208
+ end
209
+
210
+ def called(id)
211
+ called_ids << id
212
+ end
213
+
214
+ def teardown
215
+ called(:teardown)
216
+ end
217
+
218
+ teardown(*(options[0] || [])) if options
219
+ def custom_teardown_method0
220
+ called(:custom_teardown_method0)
221
+ end
222
+
223
+ def custom_teardown_method1
224
+ called(:custom_teardown_method1)
225
+ end
226
+ teardown(*[:custom_teardown_method1, *(options[1] || [])]) if options
227
+
228
+ teardown(*(options[2] || [])) if options
229
+ def custom_teardown_method2
230
+ called(:custom_teardown_method2)
231
+ end
232
+ unregister_teardown(:custom_teardown_method2) if options
233
+
234
+ teardown(*(options[3] || [])) if options
235
+ def custom_teardown_method3
236
+ called(:custom_teardown_method3)
237
+ end
238
+
239
+ def test_nothing
240
+ end
241
+
242
+ yield(self, :after) if block_given?
243
+ end
244
+
245
+ assert_called_fixtures(expected, test_case)
246
+ test_case
247
+ end
248
+
249
+ def assert_teardown(expected, options)
250
+ assert_teardown_customizable(expected, nil, options)
251
+ assert_teardown_customizable(expected, nil, options) do |test_case, tag|
252
+ test_case.send(:include, EmptyModule) if tag == :before
253
+ end
254
+ end
255
+
256
+ def assert_inherited_teardown(expected, parent, options=nil)
257
+ assert_teardown_customizable(expected, parent, options)
258
+ assert_teardown_customizable(expected, parent, options) do |test_case, tag|
259
+ test_case.send(:include, EmptyModule) if tag == :before
260
+ end
261
+ end
262
+
263
+ def assert_invalid_option(fixture_type, option)
264
+ exception = assert_raise(ArgumentError) do
265
+ Class.new(Test::Unit::TestCase) do
266
+ def test_nothing
267
+ end
268
+
269
+ send(fixture_type, option)
270
+ def fixture
271
+ end
272
+ end
273
+ end
274
+ assert_equal("must be {:before => :prepend}, {:before => :append}, " +
275
+ "{:after => :prepend} or {:after => :append}" +
276
+ ": #{option.inspect}",
277
+ exception.message)
278
+ end
279
+
280
+ def assert_invalid_setup_option(option)
281
+ assert_invalid_option(:setup, option)
282
+ end
283
+
284
+ def assert_invalid_teardown_option(option)
285
+ assert_invalid_option(:teardown, option)
286
+ end
287
+ end
@@ -0,0 +1,33 @@
1
+ require 'test/unit'
2
+ require 'testunit-test-util'
3
+
4
+ class TestUnitNotification < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ class TestCase < Test::Unit::TestCase
8
+ class << self
9
+ def suite
10
+ Test::Unit::TestSuite.new(name)
11
+ end
12
+ end
13
+
14
+ def test_notify
15
+ notify("1st notify")
16
+ notify("2nd notify. Reach here.")
17
+ end
18
+ end
19
+
20
+ def test_notify
21
+ result = _run_test("test_notify")
22
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
23
+ "0 omissions, 2 notifications",
24
+ result.to_s)
25
+ assert_fault_messages(["1st notify", "2nd notify. Reach here."],
26
+ result.notifications)
27
+ end
28
+
29
+ private
30
+ def _run_test(name)
31
+ super(TestCase, name)
32
+ end
33
+ end
@@ -0,0 +1,81 @@
1
+ require 'test/unit'
2
+ require 'testunit-test-util'
3
+
4
+ class TestUnitOmission < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ class TestCase < Test::Unit::TestCase
8
+ class << self
9
+ def suite
10
+ Test::Unit::TestSuite.new(name)
11
+ end
12
+ end
13
+
14
+ def test_omit
15
+ omit("1st omit")
16
+ omit("2nd omit. Should not be reached here.")
17
+ assert(true, "Should not be reached here too.")
18
+ end
19
+
20
+ def test_omit_with_condition
21
+ omit_if(false, "Never omit.")
22
+ omit_unless(true, "Never omit too.")
23
+ omit_if(true, "Should omit.")
24
+ omit("The last omit. Should not be reached here.")
25
+ end
26
+
27
+ def test_omit_with_block
28
+ omit("Omit block") do
29
+ flunk("Should not be reached here.")
30
+ end
31
+ assert(true, "Should be reached here.")
32
+ end
33
+
34
+ def test_omit_with_block_and_condition
35
+ omit_if(false, "Never omit.") do
36
+ assert(true, "Should be reached here.")
37
+ end
38
+ omit_if(true, "Should omit.") do
39
+ flunk("Never reached here.")
40
+ end
41
+ assert(true, "Should be reached here too.")
42
+ end
43
+ end
44
+
45
+ def test_omit
46
+ result = _run_test("test_omit")
47
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
48
+ "1 omissions, 0 notifications",
49
+ result.to_s)
50
+ assert_fault_messages(["1st omit"], result.omissions)
51
+ end
52
+
53
+ def test_omit_with_condition
54
+ result = _run_test("test_omit_with_condition")
55
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
56
+ "1 omissions, 0 notifications",
57
+ result.to_s)
58
+ assert_fault_messages(["Should omit."], result.omissions)
59
+ end
60
+
61
+ def test_omit_with_block
62
+ result = _run_test("test_omit_with_block")
63
+ assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, " \
64
+ "1 omissions, 0 notifications",
65
+ result.to_s)
66
+ assert_fault_messages(["Omit block"], result.omissions)
67
+ end
68
+
69
+ def test_omit_with_condition_and_block
70
+ result = _run_test("test_omit_with_block_and_condition")
71
+ assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, " \
72
+ "1 omissions, 0 notifications",
73
+ result.to_s)
74
+ assert_fault_messages(["Should omit."], result.omissions)
75
+ end
76
+
77
+ private
78
+ def _run_test(name)
79
+ super(TestCase, name)
80
+ end
81
+ end