PageRenderTime 54ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/test/test_java_name.rb

https://code.google.com/p/javaclass-rb/
Ruby | 250 lines | 191 code | 53 blank | 6 comment | 1 complexity | 59148ab0256c1faf0afae120d08fc3c9 MD5 | raw file
  1. require File.dirname(__FILE__) + '/setup'
  2. require 'javaclass/java_name'
  3. class TestString < Test::Unit::TestCase
  4. def test_to_javaname
  5. assert_equal(JavaClass::JavaClassFileName, 'at/kugel/tool/Some.class'.to_javaname.class)
  6. assert_equal('Some', 'Some'.to_javaname)
  7. assert_equal('at/kugel/tool/Some.class', 'at/kugel/tool/Some.class'.to_javaname)
  8. assert_equal("at/kugel/tool/Some", "at\\kugel\\tool\\Some.java".to_javaname)
  9. assert_equal('at.kugel.tool.Some', 'at.kugel.tool.Some'.to_javaname)
  10. assert_raise(ArgumentError) { 'abc/xyz.123'.to_javaname }
  11. end
  12. end
  13. module TestJavaClass
  14. class TestPackageLogic < Test::Unit::TestCase
  15. include JavaClass::PackageLogic
  16. def setup
  17. @package = 'at.kugel.tool.'
  18. end
  19. def test_same_or_subpackage_of_eh
  20. assert(same_or_subpackage_of?(%w[ at.kugel ]))
  21. assert(same_or_subpackage_of?(%w[ at.kugel.tool ]))
  22. assert(!same_or_subpackage_of?(%w[ at.kugel.tool.some ]))
  23. assert(same_or_subpackage_of?(%w[ java at.kugel ]))
  24. @package = ''
  25. assert(!same_or_subpackage_of?(%w[ at at.kugel ]))
  26. end
  27. def test_subpackage_of_eh
  28. assert(subpackage_of?(%w[ at.kugel ]))
  29. assert(subpackage_of?(%w[ at.kugel.tool ]))
  30. assert(!subpackage_of?(%w[ at.kugel.tool.class ]))
  31. end
  32. def test_in_jdk_eh
  33. assert(!in_jdk?)
  34. @package = 'java.lang'
  35. assert(in_jdk?)
  36. @package = '' # default
  37. assert(!in_jdk?)
  38. end
  39. end
  40. class TestSimpleNameLogic < Test::Unit::TestCase
  41. include JavaClass::SimpleNameLogic
  42. def setup
  43. @simple_name = 'SomeClassWithMoreNames'
  44. end
  45. def test_split_simple_name
  46. assert_equal(['', 'SomeClassWithMoreNames'], split_simple_name(0))
  47. assert_equal(['Some', 'ClassWithMoreNames'], split_simple_name(1))
  48. assert_equal(['SomeClass', 'WithMoreNames'], split_simple_name(2))
  49. assert_equal(['SomeClassWith', 'MoreNames'], split_simple_name(3))
  50. assert_equal(['SomeClassWithMore', 'Names'], split_simple_name(4))
  51. assert_equal(['SomeClassWithMoreNames', ''], split_simple_name(5))
  52. assert_equal(['SomeClassWithMoreNames', ''], split_simple_name(6))
  53. assert_equal(['SomeClassWithMoreNames', ''], split_simple_name(-1))
  54. assert_equal(['SomeClassWithMore', 'Names'], split_simple_name(-2))
  55. assert_equal(['SomeClassWith', 'MoreNames'], split_simple_name(-3))
  56. assert_equal(['SomeClass', 'WithMoreNames'], split_simple_name(-4))
  57. assert_equal(['Some', 'ClassWithMoreNames'], split_simple_name(-5))
  58. assert_equal(['', 'SomeClassWithMoreNames'], split_simple_name(-6))
  59. assert_equal(['', 'SomeClassWithMoreNames'], split_simple_name(-7))
  60. end
  61. end
  62. class TestJavaQualifiedName < Test::Unit::TestCase
  63. def setup
  64. @simple_name = JavaClass::JavaQualifiedName.new('Some')
  65. @qualified_name = JavaClass::JavaQualifiedName.new('at.kugel.tool.Some')
  66. @frozen_name = JavaClass::JavaQualifiedName.new('at.kugel.tool.Some')
  67. @frozen_name.freeze
  68. end
  69. def test_class_new_invalid
  70. assert_raise(ArgumentError) { JavaClass::JavaQualifiedName.new('at.kugel.tool/Some') }
  71. assert_raise(ArgumentError) { JavaClass::JavaQualifiedName.new('at.kugel.tool.') }
  72. end
  73. def test_class_new_caches
  74. cn = JavaClass::JavaQualifiedName.new('at.kugel.tool.Some', 1, 2 )
  75. assert_equal(1, cn.to_jvmname)
  76. assert_equal(2, cn.to_class_file)
  77. end
  78. def test_package
  79. assert_equal('', @simple_name.package)
  80. assert_equal('at.kugel.tool', @qualified_name.package)
  81. end
  82. def test_simple_name
  83. assert_equal('Some', @simple_name.simple_name)
  84. assert_equal('Some', @qualified_name.simple_name)
  85. end
  86. def test_full_name
  87. assert_equal('Some', @simple_name.full_name)
  88. assert_equal('at.kugel.tool.Some', @qualified_name.full_name)
  89. end
  90. def test_to_javaname
  91. assert_same(@qualified_name, @qualified_name.to_javaname)
  92. end
  93. def test_to_classname
  94. assert_same(@qualified_name, @qualified_name.to_classname)
  95. end
  96. def test_to_jvmname
  97. assert_equal('at/kugel/tool/Some', @qualified_name.to_jvmname)
  98. assert_same(@qualified_name.to_jvmname, @qualified_name.to_jvmname) # is saved
  99. assert_equal('at/kugel/tool/Some', @frozen_name.to_jvmname)
  100. assert_not_same(@frozen_name.to_jvmname, @frozen_name.to_jvmname) # is not saved
  101. end
  102. def test_to_java_file
  103. assert_equal('at/kugel/tool/Some.java', @qualified_name.to_java_file)
  104. end
  105. def test_to_class_file
  106. assert_equal('at/kugel/tool/Some.class', @qualified_name.to_class_file)
  107. assert_same(@qualified_name.to_class_file, @qualified_name.to_class_file) # is saved
  108. assert_equal('at/kugel/tool/Some.class', @frozen_name.to_class_file)
  109. assert_not_same(@frozen_name.to_class_file, @frozen_name.to_class_file) # is not saved
  110. end
  111. def test_hash_keys_needs_freeze
  112. map = Hash.new # x (JavaQualifiedName) => anything
  113. map[@qualified_name.freeze] = :anything
  114. qn = map.keys[0]
  115. assert_same(JavaClass::JavaQualifiedName, qn.class)
  116. assert_equal('Some', qn.simple_name)
  117. end
  118. end
  119. class TestJavaVMName < Test::Unit::TestCase
  120. def setup
  121. @jvm_path = JavaClass::JavaVMName.new('at/kugel/tool/SomeClassWithMoreNames')
  122. #@jvm_method_name = JavaClass::JavaName.new('at/kugel/tool/Some.<init>')
  123. @jvm_array_name = JavaClass::JavaVMName.new('[Ljava/lang/String;')
  124. @jvm_atom_name = JavaClass::JavaVMName.new('[[[B')
  125. @frozen_path = JavaClass::JavaVMName.new('at/kugel/tool/SomeClassWithMoreNames')
  126. @frozen_path.freeze
  127. end
  128. def test_to_classname
  129. assert_equal('at.kugel.tool.SomeClassWithMoreNames', @jvm_path.to_classname)
  130. #assert_equal('at.kugel.tool.Some', @jvm_method_name.to_classname)
  131. assert_equal('java.lang.String', @jvm_array_name.to_classname)
  132. assert_equal('java.lang.Byte', @jvm_atom_name.to_classname)
  133. assert_equal('at.kugel.tool.SomeClassWithMoreNames', @frozen_path.to_classname)
  134. end
  135. def test_to_jvmname
  136. assert_equal('at/kugel/tool/SomeClassWithMoreNames', @jvm_path.to_jvmname)
  137. #assert_equal('at/kugel/tool/Some', @jvm_method_name.to_jvmname)
  138. assert_same(@jvm_path.to_jvmname, @jvm_path.to_jvmname)
  139. end
  140. def test_to_java_file
  141. assert_equal('at/kugel/tool/SomeClassWithMoreNames.java', @jvm_path.to_java_file)
  142. #assert_equal('at/kugel/tool/Some.java', @jvm_method_name.to_java_file)
  143. end
  144. def test_to_class_file
  145. assert_equal('at/kugel/tool/SomeClassWithMoreNames.class', @jvm_path.to_class_file)
  146. #assert_equal('at/kugel/tool/Some.class', @jvm_method_name.to_class_file)
  147. assert_equal('at/kugel/tool/SomeClassWithMoreNames.class', @frozen_path.to_class_file)
  148. end
  149. def test_full_name
  150. assert_equal('at.kugel.tool.SomeClassWithMoreNames', @jvm_path.full_name)
  151. #assert_equal('at.kugel.tool.Some', @jvm_method_name.full_name)
  152. end
  153. def test_array_eh
  154. assert(!@jvm_path.array?)
  155. assert_equal(1, @jvm_array_name.array?)
  156. assert_equal(3, @jvm_atom_name.array?)
  157. end
  158. end
  159. class TestJavaClassFile < Test::Unit::TestCase
  160. def setup
  161. @win_file = JavaClass::JavaClassFileName.new("at\\kugel\\tool\\Some.class")
  162. @class_file = JavaClass::JavaClassFileName.new('at/kugel/tool/Some.class')
  163. @jdk_class_file = JavaClass::JavaClassFileName.new('java/lang/String.class')
  164. @frozen_file = JavaClass::JavaClassFileName.new('at/kugel/tool/Some.class')
  165. @frozen_file.freeze
  166. end
  167. def test_to_classname
  168. assert_equal('at.kugel.tool.Some', @win_file.to_classname)
  169. assert_equal('at.kugel.tool', @win_file.to_classname.package)
  170. assert_equal('at.kugel.tool.Some', @class_file.to_classname)
  171. assert_equal('java.lang.String', @jdk_class_file.to_classname)
  172. assert_equal('at.kugel.tool.Some', @frozen_file.to_classname)
  173. end
  174. def test_to_javaname
  175. assert(@class_file == @class_file.to_javaname)
  176. assert(@class_file === @class_file.to_javaname)
  177. end
  178. def test_to_jvmname
  179. assert_equal('at/kugel/tool/Some', @win_file.to_jvmname)
  180. assert_equal('at/kugel/tool/Some', @class_file.to_jvmname)
  181. assert_equal('at/kugel/tool/Some', @frozen_file.to_jvmname)
  182. end
  183. def test_to_java_file
  184. assert_equal('at/kugel/tool/Some.java', @win_file.to_java_file)
  185. assert_equal('at/kugel/tool/Some.java', @class_file.to_java_file)
  186. end
  187. def test_to_class_file
  188. assert_equal('at\\kugel\\tool\\Some.class', @win_file.to_class_file)
  189. assert_equal('at/kugel/tool/Some.class', @class_file.to_class_file)
  190. assert_equal('at/kugel/tool/Some.class', @frozen_file.to_class_file)
  191. end
  192. def test_full_name
  193. assert_equal('at.kugel.tool.Some', @win_file.full_name)
  194. assert_equal('at.kugel.tool.Some', @class_file.full_name)
  195. end
  196. end
  197. end