voruby 1.1.1 → 2.0.0

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 (257) hide show
  1. data/Rakefile.rb +107 -224
  2. data/lib/misc.rb +1 -0
  3. data/lib/misc/misc.rb +60 -0
  4. data/lib/misc/propertyfile.rb +31 -0
  5. data/lib/symphony.rb +1 -0
  6. data/lib/symphony/symphony.rb +247 -0
  7. data/lib/voruby.rb +186 -0
  8. data/lib/voruby/active_votable/active_votable.rb +468 -347
  9. data/lib/voruby/adql/1.0/adql.rb +2418 -0
  10. data/lib/voruby/adql/support.rb +2 -0
  11. data/lib/voruby/misc.rb +351 -0
  12. data/lib/voruby/misc/connection_monitor.rb +97 -0
  13. data/lib/voruby/misc/libxml_ext.rb +121 -0
  14. data/lib/voruby/misc/rexml_ext.rb +223 -0
  15. data/lib/voruby/resolver/resolver.rb +12 -0
  16. data/lib/voruby/resolver/sesame.rb +299 -0
  17. data/lib/voruby/sky_query/sky_query.rb +192 -0
  18. data/lib/voruby/stc/1.10/coords.rb +2272 -0
  19. data/lib/voruby/stc/1.10/region.rb +892 -0
  20. data/lib/voruby/stc/1.10/stc.rb +3271 -0
  21. data/lib/voruby/stc/1.30/stc.rb +8666 -0
  22. data/lib/voruby/stc/support.rb +2 -0
  23. data/lib/voruby/ucd/ucd.rb +173 -0
  24. data/lib/voruby/voevent/1.1/voevent.rb +1124 -0
  25. data/lib/voruby/voevent/support.rb +5 -0
  26. data/lib/voruby/votable/1.0/votable.rb +1807 -0
  27. data/lib/voruby/votable/1.1/votable.rb +2100 -0
  28. data/lib/voruby/votable/votable.rb +305 -0
  29. data/lib/voruby/wesix/wesix.rb +491 -0
  30. data/lib/voruby/xlink/1.2/xlink.rb +21 -0
  31. data/test/voruby/active_votable/complex.vot +60 -0
  32. data/test/voruby/active_votable/error.vot +6 -0
  33. data/test/voruby/active_votable/large.vot +130040 -0
  34. data/test/voruby/active_votable/simple1.vot +38 -0
  35. data/test/voruby/active_votable/simple2.vot +38 -0
  36. data/test/voruby/active_votable/test.rb +193 -0
  37. data/test/voruby/adql/1.0/adql-alias.sql +1 -0
  38. data/test/voruby/adql/1.0/adql-alias.xml +26 -0
  39. data/test/voruby/adql/1.0/adql-avg.sql +1 -0
  40. data/test/voruby/adql/1.0/adql-avg.xml +31 -0
  41. data/test/voruby/adql/1.0/adql-circle.sql +1 -0
  42. data/test/voruby/adql/1.0/adql-circle.xml +46 -0
  43. data/test/voruby/adql/1.0/adql-expr.sql +1 -0
  44. data/test/voruby/adql/1.0/adql-expr.xml +34 -0
  45. data/test/voruby/adql/1.0/adql-function.sql +1 -0
  46. data/test/voruby/adql/1.0/adql-function.xml +41 -0
  47. data/test/voruby/adql/1.0/adql-group.sql +1 -0
  48. data/test/voruby/adql/1.0/adql-group.xml +51 -0
  49. data/test/voruby/adql/1.0/adql-having.sql +1 -0
  50. data/test/voruby/adql/1.0/adql-having.xml +25 -0
  51. data/test/voruby/adql/1.0/adql-like.sql +1 -0
  52. data/test/voruby/adql/1.0/adql-like.xml +17 -0
  53. data/test/voruby/adql/1.0/adql-order.sql +1 -0
  54. data/test/voruby/adql/1.0/adql-order.xml +37 -0
  55. data/test/voruby/adql/1.0/adql-simple.sql +1 -0
  56. data/test/voruby/adql/1.0/adql-simple.xml +12 -0
  57. data/test/voruby/adql/1.0/adql-top.sql +1 -0
  58. data/test/voruby/adql/1.0/adql-top.xml +33 -0
  59. data/test/voruby/adql/1.0/test.rb +2220 -0
  60. data/test/voruby/misc/test.rb +32 -0
  61. data/test/voruby/resolver/sesame/test.rb +56 -0
  62. data/test/voruby/sky_query/test.rb +107 -0
  63. data/test/voruby/stc/1.10/coords_test.rb +3704 -0
  64. data/test/voruby/stc/1.10/region_test.rb +993 -0
  65. data/test/voruby/stc/1.10/stc-catalog-entry-location.xml +112 -0
  66. data/test/voruby/stc/1.10/stc-obs-data-location.xml +126 -0
  67. data/test/voruby/stc/1.10/stc-region-circle.xml +5 -0
  68. data/test/voruby/stc/1.10/stc-region-convex.xml +11 -0
  69. data/test/voruby/stc/1.10/stc-region-convexhull.xml +5 -0
  70. data/test/voruby/stc/1.10/stc-region-ellipse.xml +7 -0
  71. data/test/voruby/stc/1.10/stc-region-intersection.xml +25 -0
  72. data/test/voruby/stc/1.10/stc-region-negation.xml +7 -0
  73. data/test/voruby/stc/1.10/stc-region-polygon.xml +13 -0
  74. data/test/voruby/stc/1.10/stc-region-sector.xml +6 -0
  75. data/test/voruby/stc/1.10/stc-region-union.xml +25 -0
  76. data/test/voruby/stc/1.10/stc-resource-profile.xml +60 -0
  77. data/test/voruby/stc/1.10/stc-search-location.xml +54 -0
  78. data/test/voruby/stc/1.10/stc_test.rb +4626 -0
  79. data/test/voruby/stc/1.30/stc-catalog-entry-location.xml +210 -0
  80. data/test/voruby/stc/1.30/stc-obs-data-location-arecibo.xml +353 -0
  81. data/test/voruby/stc/1.30/stc-obs-data-location-fits.xml +250 -0
  82. data/test/voruby/stc/1.30/stc-obs-data-location-xlink.xml +63 -0
  83. data/test/voruby/stc/1.30/stc-obs-data-location.xml +216 -0
  84. data/test/voruby/stc/1.30/stc-resource-profile-unusual-ref-pos.xml +39 -0
  85. data/test/voruby/stc/1.30/stc-resource-profile.xml +129 -0
  86. data/test/voruby/stc/1.30/stc-search-location-arecibo.xml +86 -0
  87. data/test/voruby/stc/1.30/stc-search-location.xml +101 -0
  88. data/test/voruby/stc/1.30/test.rb +6274 -0
  89. data/test/voruby/ucd/test.rb +48 -0
  90. data/test/voruby/voevent/1.1/test.rb +812 -0
  91. data/test/{voevent/voevent_v1_1.xml → voruby/voevent/1.1/voevent.xml} +2 -2
  92. data/test/voruby/voregistry/0.3/test.rb +137 -0
  93. data/test/voruby/votable/1.0/test.rb +714 -0
  94. data/test/voruby/votable/1.0/votable.basic.xml +660 -0
  95. data/test/voruby/votable/1.0/votable.html +86 -0
  96. data/test/voruby/votable/1.0/votable.ns.xml +56 -0
  97. data/test/voruby/votable/1.1/test.rb +785 -0
  98. data/test/voruby/votable/1.1/votable.basic.xml +38 -0
  99. data/test/voruby/votable/1.1/votable.html +86 -0
  100. data/test/voruby/votable/1.1/votable.ns.xml +56 -0
  101. data/test/voruby/votable/test.rb +15 -0
  102. data/test/voruby/wesix/test.rb +268 -0
  103. data/test/voruby/wesix/testr.fits +28 -0
  104. metadata +234 -247
  105. data/REQUIREMENTS +0 -6
  106. data/lib/voruby/active_votable/loader.rb +0 -5
  107. data/lib/voruby/adql/adql.rb +0 -2787
  108. data/lib/voruby/adql/ext.rb +0 -14
  109. data/lib/voruby/adql/loader.rb +0 -6
  110. data/lib/voruby/adql/operations.rb +0 -54
  111. data/lib/voruby/adql/parser.rb +0 -160
  112. data/lib/voruby/adql/transforms.rb +0 -573
  113. data/lib/voruby/ext.rb +0 -17
  114. data/lib/voruby/loader.rb +0 -4
  115. data/lib/voruby/misc/propertyfile.rb +0 -36
  116. data/lib/voruby/plastic/applications.rb +0 -174
  117. data/lib/voruby/plastic/constants.rb +0 -30
  118. data/lib/voruby/plastic/loader.rb +0 -10
  119. data/lib/voruby/plastic/plastic.rb +0 -1
  120. data/lib/voruby/resources/conesearch/conesearch.rb +0 -9
  121. data/lib/voruby/resources/conesearch/conesearch_v0_2.rb +0 -55
  122. data/lib/voruby/resources/conesearch/conesearch_v0_3.rb +0 -50
  123. data/lib/voruby/resources/conesearch/conesearch_v1_0.rb +0 -72
  124. data/lib/voruby/resources/conesearch/loader.rb +0 -4
  125. data/lib/voruby/resources/loader.rb +0 -50
  126. data/lib/voruby/resources/nodes.rb +0 -190
  127. data/lib/voruby/resources/openskynode/loader.rb +0 -4
  128. data/lib/voruby/resources/openskynode/openskynode.rb +0 -9
  129. data/lib/voruby/resources/openskynode/openskynode_v0_1.rb +0 -54
  130. data/lib/voruby/resources/sia/loader.rb +0 -5
  131. data/lib/voruby/resources/sia/sia.rb +0 -9
  132. data/lib/voruby/resources/sia/sia_v0_6.rb +0 -90
  133. data/lib/voruby/resources/sia/sia_v0_7.rb +0 -89
  134. data/lib/voruby/resources/sia/sia_v1_0.rb +0 -122
  135. data/lib/voruby/resources/stsci.rb +0 -59
  136. data/lib/voruby/resources/vodataservice/coverage_v0_2.rb +0 -195
  137. data/lib/voruby/resources/vodataservice/coverage_v0_3.rb +0 -158
  138. data/lib/voruby/resources/vodataservice/loader.rb +0 -5
  139. data/lib/voruby/resources/vodataservice/vodataservice.rb +0 -9
  140. data/lib/voruby/resources/vodataservice/vodataservice_v0_4.rb +0 -189
  141. data/lib/voruby/resources/vodataservice/vodataservice_v0_5.rb +0 -163
  142. data/lib/voruby/resources/vodataservice/vodataservice_v1_0.rb +0 -221
  143. data/lib/voruby/resources/voregistry/loader.rb +0 -4
  144. data/lib/voruby/resources/voregistry/voregistry.rb +0 -9
  145. data/lib/voruby/resources/voregistry/voregistry_v0_2.rb +0 -40
  146. data/lib/voruby/resources/voregistry/voregistry_v0_3.rb +0 -30
  147. data/lib/voruby/resources/voregistry/voregistry_v1_0.rb +0 -86
  148. data/lib/voruby/resources/voresource/loader.rb +0 -17
  149. data/lib/voruby/resources/voresource/voresource.rb +0 -9
  150. data/lib/voruby/resources/voresource/voresource_v0_10.rb +0 -327
  151. data/lib/voruby/resources/voresource/voresource_v0_9.rb +0 -405
  152. data/lib/voruby/resources/voresource/voresource_v1_0.rb +0 -230
  153. data/lib/voruby/services/ext.rb +0 -11
  154. data/lib/voruby/services/gestalt/footprint.rb +0 -95
  155. data/lib/voruby/services/gestalt/wcs_fixer.rb +0 -105
  156. data/lib/voruby/services/gestalt/wesix.rb +0 -155
  157. data/lib/voruby/services/loader.rb +0 -7
  158. data/lib/voruby/services/registry/registry.rb +0 -53
  159. data/lib/voruby/services/resolver/resolver.rb +0 -35
  160. data/lib/voruby/services/schema/schema.rb +0 -644
  161. data/lib/voruby/sesame/loader.rb +0 -6
  162. data/lib/voruby/sesame/sesame_v1_0.rb +0 -64
  163. data/lib/voruby/simple/loader.rb +0 -6
  164. data/lib/voruby/simple/parameters.rb +0 -196
  165. data/lib/voruby/simple/sap.rb +0 -446
  166. data/lib/voruby/spacetime/loader.rb +0 -3
  167. data/lib/voruby/spacetime/spacetime.rb +0 -607
  168. data/lib/voruby/stc/coords_v1_20.rb +0 -900
  169. data/lib/voruby/stc/loader.rb +0 -55
  170. data/lib/voruby/stc/region_v1_20.rb +0 -274
  171. data/lib/voruby/stc/stc_v1_20.rb +0 -1196
  172. data/lib/voruby/util.rb +0 -27
  173. data/lib/voruby/voevent/loader.rb +0 -7
  174. data/lib/voruby/voevent/voevent_v1_0.rb +0 -213
  175. data/lib/voruby/voevent/voevent_v1_1.rb +0 -196
  176. data/lib/voruby/votables/chandra.rb +0 -373
  177. data/lib/voruby/votables/data.rb +0 -179
  178. data/lib/voruby/votables/galex.rb +0 -377
  179. data/lib/voruby/votables/int.rb +0 -354
  180. data/lib/voruby/votables/libxml_parser.rb +0 -411
  181. data/lib/voruby/votables/libxml_votable.rb +0 -67
  182. data/lib/voruby/votables/loader.rb +0 -10
  183. data/lib/voruby/votables/meta.rb +0 -763
  184. data/lib/voruby/votables/misc.rb +0 -51
  185. data/lib/voruby/votables/nsa.rb +0 -410
  186. data/lib/voruby/votables/rexml_parser.rb +0 -408
  187. data/lib/voruby/votables/rexml_votable.rb +0 -67
  188. data/lib/voruby/votables/sdss.rb +0 -356
  189. data/lib/voruby/votables/transforms.rb +0 -388
  190. data/lib/voruby/votables/tree.rb +0 -45
  191. data/lib/voruby/votables/types.rb +0 -391
  192. data/lib/voruby/votables/votable.rb +0 -687
  193. data/test/active_votable/database.yml +0 -6
  194. data/test/active_votable/test.vot +0 -168492
  195. data/test/active_votable/unittest.rb +0 -41
  196. data/test/adql/test1.adql +0 -49
  197. data/test/adql/test2.adql +0 -51
  198. data/test/adql/test3.adql +0 -81
  199. data/test/adql/test4.adql +0 -53
  200. data/test/adql/test5.adql +0 -55
  201. data/test/adql/test6.adql +0 -18
  202. data/test/adql/test7.adql +0 -48
  203. data/test/adql/unittest.rb +0 -1672
  204. data/test/plastic/test.rb +0 -44
  205. data/test/plastic/test.vot +0 -5385
  206. data/test/plastic/unittest.rb +0 -66
  207. data/test/resources/conesearch/conesearch_v0_3.xml +0 -31
  208. data/test/resources/conesearch/conesearch_v1_0.xml +0 -86
  209. data/test/resources/conesearch/unittest_v0_3.rb +0 -22
  210. data/test/resources/conesearch/unittest_v1_0.rb +0 -24
  211. data/test/resources/openskynode/open_sky_node_v0_1.xml +0 -32
  212. data/test/resources/openskynode/unittest_v0_1.rb +0 -31
  213. data/test/resources/sia/simple_image_access_v0_7.xml +0 -36
  214. data/test/resources/sia/simple_image_access_v1_0.xml +0 -122
  215. data/test/resources/sia/unittest_v0_7.rb +0 -24
  216. data/test/resources/sia/unittest_v1_0.rb +0 -29
  217. data/test/resources/stsci.xml +0 -336
  218. data/test/resources/unittest_stsci.rb +0 -25
  219. data/test/resources/vodataservice/catalog_service_resource_v1_0.xml +0 -128
  220. data/test/resources/vodataservice/data_collection_resource_v0_5.xml +0 -54
  221. data/test/resources/vodataservice/data_collection_resource_v1_0.xml +0 -117
  222. data/test/resources/vodataservice/data_service_resource_v1_0.xml +0 -115
  223. data/test/resources/vodataservice/sky_service_resource_v0_10.xml +0 -45
  224. data/test/resources/vodataservice/table_service_resource_v1_0.xml +0 -122
  225. data/test/resources/vodataservice/tabular_sky_service_resource_v0_10.xml +0 -60
  226. data/test/resources/vodataservice/unittest_v0_5.rb +0 -126
  227. data/test/resources/vodataservice/unittest_v1_0.rb +0 -151
  228. data/test/resources/voregistry/authority_resource_v0_3.xml +0 -20
  229. data/test/resources/voregistry/authority_resource_v1_0.xml +0 -82
  230. data/test/resources/voregistry/registry_service_v0_3.xml +0 -20
  231. data/test/resources/voregistry/registry_service_v1_0.xml +0 -107
  232. data/test/resources/voregistry/unittest_v0_3.rb +0 -31
  233. data/test/resources/voregistry/unittest_v1_0.rb +0 -34
  234. data/test/resources/voresource/organisation_resource_v1_0.xml +0 -90
  235. data/test/resources/voresource/resource_organisation_v0_10.xml +0 -22
  236. data/test/resources/voresource/resource_service_v0_10.xml +0 -19
  237. data/test/resources/voresource/resource_v0_10.xml +0 -19
  238. data/test/resources/voresource/resource_v1_0.xml +0 -79
  239. data/test/resources/voresource/service_resource_v1_0.xml +0 -91
  240. data/test/resources/voresource/unittest_v0_10.rb +0 -61
  241. data/test/resources/voresource/unittest_v0_9.rb +0 -4
  242. data/test/resources/voresource/unittest_v1_0.rb +0 -190
  243. data/test/services/gestalt/unittest.rb +0 -74
  244. data/test/services/registry/unittest.rb +0 -34
  245. data/test/services/resolver/unittest.rb +0 -38
  246. data/test/simple/unittest.rb +0 -46
  247. data/test/spacetime/unittest.rb +0 -39
  248. data/test/stc/catalog_entry_location_v1_20.xml +0 -112
  249. data/test/stc/obs_data_location_v1_20.xml +0 -108
  250. data/test/stc/search_location_v1_20.xml +0 -54
  251. data/test/stc/stc_resource_profile_v1_20.xml +0 -60
  252. data/test/stc/unittest_v1_20.rb +0 -620
  253. data/test/voevent/unittest_v1_0.rb +0 -79
  254. data/test/voevent/unittest_v1_1.rb +0 -70
  255. data/test/voevent/voevent_v1_0.xml +0 -96
  256. data/test/votables/test.vot +0 -366
  257. data/test/votables/unittest.rb +0 -54
@@ -0,0 +1,48 @@
1
+ require 'test/unit'
2
+
3
+ require 'voruby/ucd/ucd'
4
+ include VORuby
5
+
6
+ class UCDTest < Test::Unit::TestCase
7
+ def setup
8
+ @ucd = UCD.new
9
+ end
10
+
11
+ def test_translate
12
+ assert_equal 'phot.mag;em.opt.V', @ucd.translate('PHOT_JHN_V')
13
+ assert_equal 'pos.eq.ra;meta.main', @ucd.translate('POS_EQ_RA_MAIN')
14
+ assert_equal nil, @ucd.translate('blah')
15
+ end
16
+
17
+ def test_assign
18
+ assert_equal 'phot.mag;em.opt.V', @ucd.assign('V magnitude')
19
+ assert_equal nil, @ucd.assign('blah')
20
+ end
21
+
22
+ def test_explain
23
+ assert_equal 'Photometric magnitude / Optical band between 400 and 500 nm', @ucd.explain('ivoa:phot.mag;em.opt.B')
24
+ assert_equal nil, @ucd.explain('blah')
25
+
26
+ assert_equal 'Johnson magnitude V (JHN)', @ucd.explain('PHOT_JHN_V', '1')
27
+ assert_equal nil, @ucd.explain('blah', '1')
28
+ end
29
+
30
+ def test_validate
31
+ result = @ucd.validate('ivob:phot.mag;em.opt.Z')
32
+ assert_equal 5, result.code
33
+ assert_equal ["use of non-standard namespace 'ivob'", "invalid UCD word 'em.opt.Z'"], result.errors
34
+
35
+ result = @ucd.validate('ivoa:phot.mag;em.opt.B')
36
+ assert_equal 0, result.code
37
+ assert_equal [], result.errors
38
+ end
39
+
40
+ def test_valid
41
+ assert_equal false, @ucd.valid?('ivob:phot.mag;em.opt.Z')
42
+ assert_equal true, @ucd.valid?('ivoa:phot.mag;em.opt.B')
43
+ end
44
+
45
+ def test_upgrade
46
+ assert_equal 'pos.galactic.lat', @ucd.upgrade('pos.gal.lat')
47
+ end
48
+ end
@@ -0,0 +1,812 @@
1
+ require 'voruby/voevent/1.1/voevent'
2
+ require 'test/unit'
3
+
4
+ include VORuby::VOEvent::V1_1
5
+
6
+ module VORuby
7
+ module VOEvent
8
+ module V1_1
9
+ module Test
10
+
11
+ class ReferenceTest < ::Test::Unit::TestCase
12
+ def setup
13
+ @uri = URI.parse('http://www.noao.edu/')
14
+ @type = 'ref'
15
+ @name = 'NOAO'
16
+ end
17
+
18
+ def test_construction
19
+ assert_nothing_raised {
20
+ Reference.new(@uri, @type, @name)
21
+ Reference.new(@uri, @type)
22
+ Reference.new(@uri)
23
+ }
24
+
25
+ assert_raises ArgumentError do
26
+ Reference.new(nil)
27
+ end
28
+ end
29
+
30
+ def test_accessors
31
+ r = Reference.new(@uri, @type, @name)
32
+
33
+ assert_equal @uri, r.uri
34
+ assert_equal @type, r.type
35
+ assert_equal @name, r.name
36
+ end
37
+
38
+ def test_xml
39
+ r1 = Reference.new(@uri, @type, @name)
40
+ r2 = Reference.from_xml(r1.to_xml)
41
+
42
+ assert_equal r1, r2
43
+ end
44
+ end
45
+
46
+ class DescriptionTest < ::Test::Unit::TestCase
47
+ def setup
48
+ @value = 'This is a description...'
49
+ @format = 'image/gif'
50
+ end
51
+
52
+ def test_construction
53
+ assert_nothing_raised {
54
+ Description.new(@value, @format)
55
+ Description.new(@value)
56
+ }
57
+
58
+ assert_raises ArgumentError do
59
+ Description.new(nil)
60
+ end
61
+ end
62
+
63
+ def test_accessors
64
+ d = Description.new(@value, @format)
65
+
66
+ assert_equal @value, d.value
67
+ assert_equal @format, d.format
68
+ end
69
+
70
+ def test_xml
71
+ d1 = Description.new(@value, @format)
72
+ d2 = Description.from_xml(d1.to_xml)
73
+
74
+ assert_equal d1, d2
75
+ end
76
+ end
77
+
78
+ class EventIVORNTest < ::Test::Unit::TestCase
79
+ def setup
80
+ @uri = URI.parse('http://www.noao.edu/')
81
+ @cite = Cite.new('supersedes')
82
+ end
83
+
84
+ def test_construction
85
+ assert_nothing_raised {
86
+ EventIVORN.new(@uri, @cite)
87
+ }
88
+
89
+ assert_raises TypeError do
90
+ EventIVORN.new(@uri, 123)
91
+ end
92
+
93
+ assert_raises ArgumentError do
94
+ EventIVORN.new(@uri, nil)
95
+ end
96
+ assert_raises ArgumentError do
97
+ EventIVORN.new(nil, @cite)
98
+ end
99
+ end
100
+
101
+ def test_accessors
102
+ i = EventIVORN.new(@uri, @cite)
103
+
104
+ assert_equal @uri, i.uri
105
+ assert_equal @cite, i.cite
106
+ end
107
+
108
+ def test_xml
109
+ i1 = EventIVORN.new(@uri, @cite)
110
+ i2 = EventIVORN.from_xml(i1.to_xml)
111
+
112
+ assert_equal i1, i2
113
+ end
114
+ end
115
+
116
+ class CitationsTest < ::Test::Unit::TestCase
117
+ def setup
118
+ @ivorns = [
119
+ EventIVORN.new('http://www.noao.edu/', 'supersedes'),
120
+ EventIVORN.new('http://www.stsci.edu/', 'followup')
121
+ ]
122
+ @descriptions = [Description.new('We did stuff to cause this change.')]
123
+ @references = [Reference.new('http://www.noao.edu/staff/dgasson', 'url', 'Me')]
124
+ end
125
+
126
+ def test_construction
127
+ assert_nothing_raised {
128
+ Citations.new(@ivorns, @descriptions, @references)
129
+ Citations.new(@ivorns, @descriptions)
130
+ Citations.new(@ivorns)
131
+ }
132
+
133
+ assert_raises ArgumentError do
134
+ Citations.new(nil)
135
+ end
136
+
137
+ assert_raises TypeError do
138
+ Citations.new(@ivorns, @descriptions, 123)
139
+ end
140
+ assert_raises TypeError do
141
+ Citations.new(@ivorns, 123, @references)
142
+ end
143
+ assert_raises TypeError do
144
+ Citations.new('blah', @descriptions, @references)
145
+ end
146
+ end
147
+
148
+ def test_accessors
149
+ c = Citations.new(@ivorns, @descriptions, @references)
150
+
151
+ assert_equal @ivorns, c.event_ivorns
152
+ assert_equal @descriptions, c.descriptions
153
+ assert_equal @references, c.references
154
+ end
155
+
156
+ def test_xml
157
+ c1 = Citations.new(@ivorns, @descriptions, @references)
158
+ c2 = Citations.from_xml(c1.to_xml)
159
+
160
+ assert_equal c1, c2
161
+ end
162
+ end
163
+
164
+ class HowTest < ::Test::Unit::TestCase
165
+ def setup
166
+ @descriptions = [Description.new('We did stuff.')]
167
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
168
+ end
169
+
170
+ def test_construction
171
+ assert_nothing_raised {
172
+ How.new(@descriptions, @references)
173
+ How.new(@descriptions)
174
+ How.new(nil, @references)
175
+ How.new
176
+ }
177
+
178
+ assert_raises TypeError do
179
+ How.new(@descriptions, 'blah')
180
+ end
181
+ assert_raises TypeError do
182
+ How.new('blah', @references)
183
+ end
184
+ end
185
+
186
+ def test_accessors
187
+ h = How.new(@descriptions, @references)
188
+
189
+ assert_equal @descriptions, h.descriptions
190
+ assert_equal @references, h.references
191
+ end
192
+
193
+ def test_xml
194
+ h1 = How.new(@descriptions, @references)
195
+ h2 = How.from_xml(h1.to_xml)
196
+
197
+ assert_equal h1, h2
198
+ end
199
+ end
200
+
201
+ class WhereWhenTest < ::Test::Unit::TestCase
202
+ def setup
203
+ observatory_location = ObservatoryLocationType.new(
204
+ [AstroCoordSystem.new(
205
+ nil,
206
+ TimeFrame.new(TOPOCENTER.new, TimeScaleType.new('TT')),
207
+ SpaceFrame.new(GEO_D.new(nil, nil, nil, nil), TOPOCENTER.new, SPHERICAL.new(3)),
208
+ nil, nil, :id => 'TT-GEOD-TOPO'
209
+ )],
210
+ [AstroCoords.new(
211
+ 'TT-GEOD-TOPO',
212
+ nil,
213
+ :position => Position3D.new(
214
+ :value => Value3.new(
215
+ Double1Type.new(248.4056, :pos_unit => 'deg'),
216
+ Double1Type.new(31.9586, :pos_unit => 'deg'),
217
+ Double1Type.new(2158.0, :pos_unit => 'm')
218
+ )
219
+ )
220
+ )],
221
+ nil,
222
+ :id => 'KPNO'
223
+ )
224
+
225
+ observation_location = AstroSTCDescriptionType.new(
226
+ [AstroCoordSystem.new(
227
+ [CoordFrame.new(ScalarRefFrame.new(1.0, nil, nil), nil, CARTESIAN.new(1), 'Brightness', :ucd => 'em...', :id => 'brightness')],
228
+ TimeFrame.new(TOPOCENTER.new, TimeScaleType.new('TT')),
229
+ SpaceFrame.new(ICRS.new, TOPOCENTER.new, SPHERICAL.new(2), nil, nil, :id => 'spaceFrame'),
230
+ SpectralFrame.new(TOPOCENTER.new),
231
+ nil,
232
+ :id => 'TT-ICRS-WAVELENGTH-TOPO'
233
+ )],
234
+ [AstroCoords.new(
235
+ 'TT-ICRS-WAVELENGTH-TOPO',
236
+ [ScalarCoordinate.new(
237
+ :unit => 'mJy/arcsec**2',
238
+ :frame_id => 'brightness',
239
+ :error => [Error.new(0.001)]
240
+ )],
241
+ :time => STC::V1_30::Time.new(
242
+ :time_instant => AstronTimeType.new(:absolute_time => ISOTime.new('2004-07-15T08:23:56')),
243
+ :resolution => [Resolution.new(1000.0)],
244
+ :pix_size => [PixSize.new(1000.0)]
245
+ ),
246
+ :position => Position2D.new(
247
+ :unit => 'deg',
248
+ :value => Value2.new(148.88821, 69.06529, :id => 'Center'),
249
+ :error => [Error2Radius.new(0.0003)],
250
+ :resolution => [Resolution2.new(0.00025, 0.00025)],
251
+ :pix_size => [PixSize2.new(0.0001, 0.0001)]
252
+ ),
253
+ :spectral => Spectral.new(
254
+ :unit => 'Angstrom',
255
+ :value => Value.new(4600.0),
256
+ :resolution => [Resolution.new(400.0)],
257
+ :pix_size => [PixSize.new(400.0)]
258
+ )
259
+ )],
260
+ [AstroCoordArea.new(
261
+ 'TT-ICRS-WAVELENGTH-TOPO',
262
+ [CoordScalarInterval.new(0.0, 10.0, nil, nil, :frame_id => 'brightness')],
263
+ [TimeIntervalType.new(
264
+ AstronTimeType.new(:absolute_time => ISOTime.new('2004-07-15T08:17:36')),
265
+ AstronTimeType.new(:absolute_time => ISOTime.new('2004-07-15T08:30:16'))
266
+ )],
267
+ Position2VecInterval.new(
268
+ Double2Type.new(148.18821, 68.81529),
269
+ Double2Type.new(149.58821, 69.31529),
270
+ nil, nil,
271
+ :unit => 'deg'
272
+ ),
273
+ nil,
274
+ [SpectralIntervalType.new(
275
+ 'Angstrom',
276
+ Double1Type.new(4400.0),
277
+ Double1Type.new(4800.0)
278
+ )],
279
+ nil,
280
+ :id => 'M81Image'
281
+ )],
282
+ :id => 'M81'
283
+ )
284
+
285
+ @obs_data_locations = [ObsDataLocation.new(observatory_location, observation_location)]
286
+ @descriptions = [Description.new('We did stuff.')]
287
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
288
+ end
289
+
290
+ def test_construction
291
+ assert_nothing_raised {
292
+ WhereWhen.new(@obs_data_locations, @descriptions, @references)
293
+ WhereWhen.new(@obs_data_locations, @descriptions)
294
+ WhereWhen.new(@obs_data_locations)
295
+ WhereWhen.new(nil, nil, nil)
296
+ WhereWhen.new
297
+ }
298
+
299
+ assert_raises TypeError do
300
+ WhereWhen.new(@obs_data_locations, @descriptions, 'blah')
301
+ end
302
+ assert_raises TypeError do
303
+ WhereWhen.new(@obs_data_locations, 'blah', @references)
304
+ end
305
+ assert_raises TypeError do
306
+ WhereWhen.new('blah', @descriptions, @references)
307
+ end
308
+ end
309
+
310
+ def test_accessors
311
+ w = WhereWhen.new(@obs_data_locations, @descriptions, @references)
312
+
313
+ assert_equal @obs_data_locations, w.obs_data_locations
314
+ assert_equal @descriptions, w.descriptions
315
+ assert_equal @references, w.references
316
+ end
317
+
318
+ def test_xml
319
+ w1 = WhereWhen.new(@obs_data_locations, @descriptions, @references)
320
+ w2 = WhereWhen.from_xml(w1.to_xml)
321
+
322
+ assert_equal w1, w2
323
+ end
324
+ end
325
+
326
+ class InferenceTest < ::Test::Unit::TestCase
327
+ def setup
328
+ @names = ['Tycho\'s Stella Nova']
329
+ @concepts = ['stars.supernova.Ia']
330
+ @probability = 1.0
331
+ @relation = 'associated'
332
+ @descriptions = [Description.new('We did stuff.')]
333
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
334
+ end
335
+
336
+ def test_construction
337
+ assert_nothing_raised {
338
+ Inference.new(@names, @concepts, @probability, @relation, @descriptions, @references)
339
+ Inference.new(@names, @concepts, @probability, @relation)
340
+ Inference.new(@names, @concepts, @probability)
341
+ Inference.new(@names, @concepts)
342
+ Inference.new(@names, nil)
343
+ Inference.new(nil, @concepts)
344
+ Inference.new(nil, nil)
345
+ }
346
+
347
+ assert_raises TypeError do
348
+ Inference.new(123, @concepts)
349
+ end
350
+ assert_raises TypeError do
351
+ Inference.new(@names, 123)
352
+ end
353
+
354
+ assert_raises RuntimeError do
355
+ Inference.new(@names, @concepts, -0.2)
356
+ end
357
+ assert_raises RuntimeError do
358
+ Inference.new(@names, @concepts, 2.3)
359
+ end
360
+ end
361
+
362
+ def test_accessors
363
+ i = Inference.new(@names, @concepts, @probability, @relation, @descriptions, @references)
364
+
365
+ assert_equal @names, i.names
366
+ assert_equal @concepts, i.concepts
367
+ assert_equal @probability, i.probability
368
+ assert_equal @relation, i.relation
369
+ assert_equal @descriptions, i.descriptions
370
+ assert_equal @references, i.references
371
+ end
372
+
373
+ def test_xml
374
+ i1 = Inference.new(@names, @concepts, @probability, @relation, @descriptions, @references)
375
+ i2 = Inference.from_xml(i1.to_xml)
376
+
377
+ assert_equal i1, i2
378
+ end
379
+ end
380
+
381
+ class WhyTest < ::Test::Unit::TestCase
382
+ def setup
383
+ @inferences = [
384
+ Inference.new(["Tycho's Stella Nova"], ["stars.supernova.Ia"], 1.0),
385
+ Inference.new(['3C 10'], ['ISM.SNRemnant'], 1.0, 'associated', [Description.new('Supernova remnant')])
386
+ ]
387
+ @names = ['Name1']
388
+ @concepts = ['Concept1']
389
+ @descriptions = [Description.new('We did stuff.')]
390
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
391
+ @importance = 1.0
392
+ @expires = DateTime.parse("1574-05-11T12:00:00")
393
+ end
394
+
395
+ def test_construction
396
+ assert_nothing_raised {
397
+ Why.new(@inferences, @importance, @expires, @names, @concepts, @descriptions, @references)
398
+ Why.new(@inferences, @importance, @expires, @names, @concepts)
399
+ Why.new(@inferences, @importance, @expires)
400
+ Why.new(@inferences, @importance)
401
+ Why.new(@inferences)
402
+ Why.new(nil)
403
+ }
404
+
405
+ assert_raises TypeError do
406
+ Why.new('blah')
407
+ end
408
+ end
409
+
410
+ def test_accessors
411
+ w = Why.new(@inferences, @importance, @expires, @names, @concepts, @descriptions, @references)
412
+
413
+ assert_equal @inferences, w.inferences
414
+ assert_equal @importance, w.importance
415
+ assert_equal @expires, w.expires
416
+ assert_equal @names, w.names
417
+ assert_equal @concepts, w.concepts
418
+ assert_equal @descriptions, w.descriptions
419
+ assert_equal @references, w.references
420
+ end
421
+
422
+ def test_xml
423
+ w1 = Why.new(@inferences, @importance, @expires, @names, @concepts, @descriptions, @references)
424
+ w2 = Why.from_xml(w1.to_xml)
425
+
426
+ assert_equal w1, w2
427
+ end
428
+ end
429
+
430
+ class ParamTest < ::Test::Unit::TestCase
431
+ def setup
432
+ @name = 'TRIGGER_NUM'
433
+ @value = '114299'
434
+ @ucd = 'meta.id'
435
+ @unit = 'whatever'
436
+ end
437
+
438
+ def test_construction
439
+ assert_nothing_raised {
440
+ Param.new(@name, @value, @ucd, @unit)
441
+ Param.new(@name, @value, @ucd)
442
+ Param.new(@name, @value)
443
+ Param.new(@name, nil)
444
+ Param.new(nil, @name)
445
+ Param.new(nil, nil)
446
+ }
447
+ end
448
+
449
+ def test_accessors
450
+ p = Param.new(@name, @value, @ucd, @unit)
451
+
452
+ assert_equal @name, p.name
453
+ assert_equal @value, p.value
454
+ assert_equal @ucd, p.ucd
455
+ assert_equal @unit, p.unit
456
+ end
457
+
458
+ def test_xml
459
+ p1 = Param.new(@name, @value, @ucd, @unit)
460
+ p2 = Param.from_xml(p1.to_xml)
461
+
462
+ assert_equal p1, p2
463
+ end
464
+ end
465
+
466
+ class GroupTest < ::Test::Unit::TestCase
467
+ def setup
468
+ @params = [Param.new('TRIGGER_NUM', '114299', 'meta.id', 'whatever')]
469
+ @name = 'whatever'
470
+ @type = 'phot_pt'
471
+ @descriptions = [Description.new('We did stuff.')]
472
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
473
+ end
474
+
475
+ def test_construction
476
+ assert_nothing_raised {
477
+ Group.new(@params, @name, @type, @descriptions, @references)
478
+ Group.new(@params, @name, @type)
479
+ Group.new(@params, @name)
480
+ Group.new(@params)
481
+ Group.new(nil)
482
+ }
483
+
484
+ assert_raises TypeError do
485
+ Group.new('blah')
486
+ end
487
+ end
488
+
489
+ def test_accessors
490
+ g = Group.new(@params, @name, @type, @descriptions, @references)
491
+
492
+ assert_equal @params, g.params
493
+ assert_equal @name, g.name
494
+ assert_equal @type, g.type
495
+ assert_equal @descriptions, g.descriptions
496
+ assert_equal @references, g.references
497
+ end
498
+
499
+ def test_xml
500
+ g1 = Group.new(@params, @name, @type, @descriptions, @references)
501
+ g2 = Group.from_xml(g1.to_xml)
502
+
503
+ assert_equal g1, g2
504
+ end
505
+ end
506
+
507
+ class WhatTest < ::Test::Unit::TestCase
508
+ def setup
509
+ @groups = [
510
+ Group.new(
511
+ [Param.new('mag', '13.2', 'phot.ma;em.opt.R'), Param.new('epoch', '245523.12345', 'time.epoch')],
512
+ nil, 'phot_pt'
513
+ ),
514
+ Group.new(
515
+ [Param.new('mag', '13.4', 'phot.ma;em.opt.R'), Param.new('epoch', '245523.46533', 'time.epoch')],
516
+ nil, 'phot_pt'
517
+ ),
518
+ Group.new(
519
+ [Param.new('mag', '13.0', 'phot.ma;em.opt.R'), Param.new('epoch', '245523.76444', 'time.epoch')],
520
+ nil, 'phot_pt'
521
+ )
522
+ ]
523
+
524
+ @params = [Param.new('TRIGGER_NUM', '114299', 'meta.id', 'whatever')]
525
+ @descriptions = [Description.new('We did stuff.')]
526
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
527
+ end
528
+
529
+ def test_construction
530
+ assert_nothing_raised {
531
+ What.new(@groups, @params, @descriptions, @references)
532
+ What.new(@groups, @params)
533
+ What.new(@groups)
534
+ What.new(nil)
535
+ }
536
+
537
+ assert_raise TypeError do
538
+ What.new('blah', @params)
539
+ end
540
+ assert_raise TypeError do
541
+ What.new(@groups, 'blah')
542
+ end
543
+ end
544
+
545
+ def test_accessors
546
+ w = What.new(@groups, @params, @descriptions, @references)
547
+
548
+ assert_equal @groups, w.groups
549
+ assert_equal @params, w.params
550
+ assert_equal @descriptions, w.descriptions
551
+ assert_equal @references, w.references
552
+ end
553
+
554
+ def test_xml
555
+ w1 = What.new(@groups, @params, @descriptions, @references)
556
+ w2 = What.from_xml(w1.to_xml)
557
+
558
+ assert_equal w1, w2
559
+ end
560
+ end
561
+
562
+ class AuthorTest < ::Test::Unit::TestCase
563
+ def setup
564
+ @titles = ['Rapid Telescope for Optical Response']
565
+ @short_names = ['Raptor']
566
+ @logo_urls = ['http://www.raptor.lanl.gov/images/RAPTOR_patchLarge.jpg']
567
+ @contact_names = ['Robert White']
568
+ @contact_emails = ['rwhite@lanl.gov']
569
+ @contact_phones = ['+1 800 555 1212']
570
+ @contributors = ['whoever']
571
+ end
572
+
573
+ def test_construction
574
+ assert_nothing_raised {
575
+ Author.new(
576
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls,
577
+ :contact_names => @contact_names, :contact_emails => @contact_emails, :contact_phones => @contact_phones,
578
+ :contributors => @contributors
579
+ )
580
+ Author.new(
581
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls,
582
+ :contact_names => @contact_names, :contact_emails => @contact_emails, :contact_phones => @contact_phones
583
+ )
584
+ Author.new(
585
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls,
586
+ :contact_names => @contact_names, :contact_emails => @contact_emails
587
+ )
588
+ Author.new(
589
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls,
590
+ :contact_names => @contact_names
591
+ )
592
+ Author.new(
593
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls
594
+ )
595
+ Author.new(
596
+ :titles => @titles, :short_names => @short_names
597
+ )
598
+ Author.new(
599
+ :titles => @titles
600
+ )
601
+ Author.new
602
+ }
603
+
604
+ assert_raises TypeError do
605
+ Author.new(:titles => 123)
606
+ end
607
+ assert_raises TypeError do
608
+ Author.new(:short_names => 123)
609
+ end
610
+ assert_raises TypeError do
611
+ Author.new(:logo_urls => 123)
612
+ end
613
+ assert_raises TypeError do
614
+ Author.new(:contact_names => 123)
615
+ end
616
+ assert_raises TypeError do
617
+ Author.new(:contact_emails => 123)
618
+ end
619
+ assert_raises TypeError do
620
+ Author.new(:contact_phones => 123)
621
+ end
622
+ assert_raises TypeError do
623
+ Author.new(:contributors => 123)
624
+ end
625
+ end
626
+
627
+ def test_accessors
628
+ a = Author.new(
629
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls,
630
+ :contact_names => @contact_names, :contact_emails => @contact_emails, :contact_phones => @contact_phones,
631
+ :contributors => @contributors
632
+ )
633
+
634
+ assert_equal @titles, a.titles
635
+ assert_equal @short_names, a.short_names
636
+ assert_equal @logo_urls, a.logo_urls
637
+ assert_equal @contact_names, a.contact_names
638
+ assert_equal @contact_emails, a.contact_emails
639
+ assert_equal @contact_phones, a.contact_phones
640
+ assert_equal @contributors, a.contributors
641
+ end
642
+
643
+ def test_xml
644
+ a1 = Author.new(
645
+ :titles => @titles, :short_names => @short_names, :logo_urls => @logo_urls,
646
+ :contact_names => @contact_names, :contact_emails => @contact_emails, :contact_phones => @contact_phones,
647
+ :contributors => @contributors
648
+ )
649
+ a2 = Author.from_xml(a1.to_xml)
650
+
651
+ assert_equal a1, a2
652
+ end
653
+ end
654
+
655
+ class WhoTest < ::Test::Unit::TestCase
656
+ def setup
657
+ @author_ivorns = [URI.parse('ivo://uraniborg.hven/Tycho')]
658
+ @dates = [DateTime.parse('1573-05-05T01:23:45Z')]
659
+ @authors = [Author.new(:titles => ['Rapid Telescope for Optical Response'])]
660
+ @descriptions = [Description.new('We did stuff.')]
661
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
662
+ end
663
+
664
+ def test_construction
665
+ assert_nothing_raised {
666
+ Who.new(@author_ivorns, @dates, @authors, @descriptions, @references)
667
+ Who.new(@author_ivorns, @dates, @authors)
668
+ Who.new(@author_ivorns, @dates)
669
+ Who.new(@author_ivorns, nil)
670
+ Who.new(nil, @dates)
671
+ Who.new(nil, nil)
672
+ }
673
+
674
+ assert_raises TypeError do
675
+ Who.new(@author_ivorns, @dates, 'blah')
676
+ end
677
+ assert_raises TypeError do
678
+ Who.new(@author_ivorns, 'blah', @authors)
679
+ end
680
+ assert_raises TypeError do
681
+ Who.new('blah', @dates, @authors)
682
+ end
683
+ end
684
+
685
+ def test_accessors
686
+ w = Who.new(@author_ivorns, @dates, @authors, @descriptions, @references)
687
+
688
+ assert_equal @author_ivorns, w.author_ivorns
689
+ assert_equal @dates, w.dates
690
+ assert_equal @authors, w.authors
691
+ assert_equal @descriptions, w.descriptions
692
+ assert_equal @references, w.references
693
+ end
694
+
695
+ def test_xml
696
+ w1 = Who.new(@author_ivorns, @dates, @authors, @descriptions, @references)
697
+ w2 = Who.from_xml(w1.to_xml)
698
+
699
+ assert_equal w1, w2
700
+ end
701
+ end
702
+
703
+ class VOEventTest < ::Test::Unit::TestCase
704
+ def setup
705
+ @ivorn = URI.parse('ivo://raptor.lanl/VOEvent#235649409')
706
+ @role = 'observation'
707
+ @version = '1.1'
708
+ @citations = Citations.new(
709
+ [EventIVORN.new(URI.parse('ivo://raptor.lanl/VOEvent#235649408'), 'followup')],
710
+ [Description.new('This is an observation of the earlier event but with improved square-galaxy discrimination')]
711
+ )
712
+ @who = Who.new(
713
+ [URI.parse('ivo://raptor.lanl/organization')],
714
+ [DateTime.parse('2005-04-15T14:34:16')]
715
+ )
716
+ @what = What.new(
717
+ [Group.new([Param.new('counts', '73288', 'phot.count', 'ct'), Param.new('peak', '1310', 'arith.rate;phot.count', 'ct/s')], 'SQUARE_GALAXY_FLUX')],
718
+ [Param.new('seeing', '2', 'instr.obsty.site.seeing', 'arcsec')],
719
+ [Description.new('This is the light curve associated with the observation.')],
720
+ [Reference.new(URI.parse('http://raptor.lanl.gov/data/lightcurves/235649409'))]
721
+ )
722
+ @where_when = WhereWhen.new()
723
+ @how = How.new(
724
+ [Description.new('This VOEvent packet resulted from observations made with Raptor AB at Los Alamos.')],
725
+ [Reference.new(URI.parse('http://www.raptor.lanl.gov/documents/phase_zero.rtml'), 'rtml', 'Raptor AB')]
726
+ )
727
+ @descriptions = [Description.new('We did stuff.')]
728
+ @references = [Reference.new('http://nsa.noao.edu/kp012345.rtml', 'rtml', 'Echelle')]
729
+ @why = Why.new(
730
+ [Inference.new(['NGC1234'], nil, 0.9, 'associated')],
731
+ 0.8,
732
+ DateTime.parse('2005-04-16T02:34:16'),
733
+ nil,
734
+ ['process.variation.burst;em.opt'],
735
+ [Description.new('Fast Orphan Optical Transient. Do not know what caused it, but looks like we found the host galaxy')]
736
+ )
737
+ end
738
+
739
+ def test_construction
740
+ assert_nothing_raised {
741
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version, @role, @citations, @descriptions, @references)
742
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version, @role, @citations)
743
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version, @role)
744
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version)
745
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why)
746
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, nil)
747
+ VOEvent.new(@ivorn, @who, @what, @where_when, nil, @why)
748
+ VOEvent.new(@ivorn, @who, @what, nil, @how, @why)
749
+ VOEvent.new(@ivorn, @who, nil, @where_when, @how, @why)
750
+ VOEvent.new(@ivorn, nil, @what, @where_when, @how, @why)
751
+ }
752
+
753
+ assert_raises ArgumentError do
754
+ VOEvent.new(nil, @who, @what, @where_when, @how, @why)
755
+ end
756
+
757
+ assert_raises TypeError do
758
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version, @role, 'blah')
759
+ end
760
+ assert_raises TypeError do
761
+ VOEvent.new(@ivorn, @who, @what, @where_when, @how, 'blah', @version, @role, @citations)
762
+ end
763
+ assert_raises TypeError do
764
+ VOEvent.new(@ivorn, @who, @what, @where_when, 'blah', @why, @version, @role, @citations)
765
+ end
766
+ assert_raises TypeError do
767
+ VOEvent.new(@ivorn, @who, @what, 'blah', @how, @why, @version, @role, @citations)
768
+ end
769
+ assert_raises TypeError do
770
+ VOEvent.new(@ivorn, @who, 'blah', @where_when, @how, @why, @version, @role, @citations)
771
+ end
772
+ assert_raises TypeError do
773
+ VOEvent.new(@ivorn, 'blah', @what, @where_when, @how, @why, @version, @role, @citations)
774
+ end
775
+ end
776
+
777
+ def test_accessors
778
+ e = VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version, @role, @citations, @descriptions, @references)
779
+
780
+ assert_equal @ivorn, e.ivorn
781
+ assert_equal @who, e.who
782
+ assert_equal @what, e.what
783
+ assert_equal @where_when, e.where_when
784
+ assert_equal @how, e.how
785
+ assert_equal @why, e.why
786
+ assert_equal @version, e.version
787
+ assert_equal @role, e.role
788
+ assert_equal @citations, e.citations
789
+ assert_equal @descriptions, e.descriptions
790
+ assert_equal @references, e.references
791
+ end
792
+
793
+ def test_xml
794
+ e1 = VOEvent.new(@ivorn, @who, @what, @where_when, @how, @why, @version, @role, @citations, @descriptions, @references)
795
+ e2 = VOEvent.from_xml(e1.to_xml)
796
+
797
+ assert_equal e1, e2
798
+ end
799
+ end
800
+
801
+ class RealWorldTest < ::Test::Unit::TestCase
802
+ def test_real_world
803
+ assert_nothing_raised {
804
+ VOEvent.from_xml(File.new('test/voruby/voevent/1.1/voevent.xml')).to_xml
805
+ }
806
+ end
807
+ end
808
+
809
+ end
810
+ end
811
+ end
812
+ end