Newer
Older
bash-utils / test / test_bash-utils.sh
  1. #!/bin/bash
  2. ########################################################################
  3. ## Script : test_bash-utils.sh
  4. ## Name : bash-utils.sh 単体テスト用スクリプト
  5. ## Version : 1.0
  6. ## Usage:
  7. ## |This is Test Usage
  8. ##
  9. ## test-key : test-value
  10.  
  11. # Load Test Target Script
  12. . ../src/bash-utils.sh
  13.  
  14.  
  15. # ----------------------------------------------------------------------
  16. # getAbsolutePath 単体テスト
  17. # 指定されたファイルの絶対パス取得確認
  18. # ----------------------------------------------------------------------
  19. function test_getAbsolutePath_file()
  20. {
  21. local BASE_PATH=`pwd | sed "s/\\/test$//"`
  22. local EXCEPT_PATH="${BASE_PATH}/src/bash-utils.sh"
  23. local ABSOLUTE_PATH=$(getAbsolutePath ../src/bash-utils.sh)
  24. assertEquals "getAbsolutePath [ファイルの絶対パス取得]" "${EXCEPT_PATH}" "${ABSOLUTE_PATH}"
  25.  
  26. }
  27.  
  28.  
  29. # ----------------------------------------------------------------------
  30. # getAbsolutePath 単体テスト
  31. # 指定されたディレクトリの絶対パス取得確認
  32. # ----------------------------------------------------------------------
  33. function test_getAbsolutePath_directory()
  34. {
  35. local BASE_PATH=`pwd | sed "s/\\/test$//"`
  36. local EXCEPT_PATH="${BASE_PATH}/src"
  37. local ABSOLUTE_PATH=$(getAbsolutePath ../src)
  38. assertEquals "getAbsolutePath [ディレクトリの絶対パス取得]" "${EXCEPT_PATH}" "${ABSOLUTE_PATH}"
  39.  
  40. }
  41.  
  42.  
  43. # ----------------------------------------------------------------------
  44. # getAbsolutePath 単体テスト
  45. # 存在しないパスの指定
  46. # ----------------------------------------------------------------------
  47. function test_getAbsolutePath_invalid()
  48. {
  49. getAbsolutePath ../abc/bash-utils.sh > /dev/null 2>&1
  50. assertFalse $?
  51.  
  52. }
  53.  
  54.  
  55. # ----------------------------------------------------------------------
  56. # getProperty 単体テスト
  57. # プロパティ値の取得
  58. # ----------------------------------------------------------------------
  59. function test_getProperty()
  60. {
  61. VALUE=$(getProperty "test-key")
  62. assertEquals "getProperty [test-key に対する値取得]" "test-value" "${VALUE}"
  63.  
  64. }
  65.  
  66.  
  67. # ----------------------------------------------------------------------
  68. # version 単体テスト
  69. # バージョン情報の取得
  70. # ----------------------------------------------------------------------
  71. function test_version()
  72. {
  73. VERSION=$(version)
  74. assertEquals "version [バージョン情報取得]" "test_bash-utils.sh 1.0" "${VERSION}"
  75.  
  76. }
  77.  
  78.  
  79. # ----------------------------------------------------------------------
  80. # Usage 単体テスト
  81. # Usage の取得
  82. # ----------------------------------------------------------------------
  83. function test_usage()
  84. {
  85. USAGE=$(usage)
  86. assertEquals "usage [usage 取得]" "This is Test Usage" "${USAGE}"
  87.  
  88. }
  89.  
  90.  
  91. # ----------------------------------------------------------------------
  92. # confirm 単体テスト
  93. # デフォルト確認
  94. # ----------------------------------------------------------------------
  95. function test_confirm_default()
  96. {
  97. $(echo "abc" | confirm "test" 1)
  98. RESULT=$?
  99. assertEquals "confirm [usage 取得]" "1" "${RESULT}"
  100.  
  101. }
  102.  
  103.  
  104. # ----------------------------------------------------------------------
  105. # confirm 単体テスト
  106. # Yes 確認
  107. # ----------------------------------------------------------------------
  108. function test_confirm_yes()
  109. {
  110. $(echo "Yes" | confirm "test" 0)
  111. RESULT=$?
  112. assertEquals "confirm [usage 取得]" "1" "${RESULT}"
  113.  
  114. $(echo "yes" | confirm "test" 0)
  115. RESULT=$?
  116. assertEquals "confirm [usage 取得]" "1" "${RESULT}"
  117.  
  118. }
  119.  
  120.  
  121. # ----------------------------------------------------------------------
  122. # confirm 単体テスト
  123. # No 確認
  124. # ----------------------------------------------------------------------
  125. function test_confirm_no()
  126. {
  127. $(echo "No" | confirm "test" 0)
  128. RESULT=$?
  129. assertEquals "confirm [usage 取得]" "0" "${RESULT}"
  130.  
  131. $(echo "no" | confirm "test" 0)
  132. RESULT=$?
  133. assertEquals "confirm [usage 取得]" "0" "${RESULT}"
  134.  
  135. }
  136.  
  137.  
  138. # ----------------------------------------------------------------------
  139. # confirm 単体テスト
  140. # No 確認
  141. # ----------------------------------------------------------------------
  142. function test_confirm_no()
  143. {
  144. $(echo "No" | confirm "test" 0)
  145. RESULT=$?
  146. assertEquals "confirm [usage 取得]" "0" "${RESULT}"
  147.  
  148. $(echo "no" | confirm "test" 0)
  149. RESULT=$?
  150. assertEquals "confirm [usage 取得]" "0" "${RESULT}"
  151.  
  152. }
  153.  
  154.  
  155. # ----------------------------------------------------------------------
  156. # isContains 単体テスト
  157. # 含まれる場合の確認
  158. # ----------------------------------------------------------------------
  159. function test_isContains()
  160. {
  161. isContains "abc def ghi" "def"
  162. RESULT=$?
  163. assertEquals "isContains [含まれるリスト確認]" "1" "${RESULT}"
  164. }
  165.  
  166.  
  167. # ----------------------------------------------------------------------
  168. # isContains 単体テスト
  169. # 含まれない場合の確認
  170. # ----------------------------------------------------------------------
  171. function test_isContains_noContains()
  172. {
  173. LIST="abc def gef"
  174. isContains "abc def ghi" "xyz"
  175. RESULT=$?
  176. assertEquals "isContains [含まれないリスト確認]" "0" "${RESULT}"
  177. }
  178.  
  179.  
  180. # ----------------------------------------------------------------------
  181. # isContainsRegex 単体テスト
  182. # 含まれる場合の確認
  183. # ----------------------------------------------------------------------
  184. function test_isContainsRegex()
  185. {
  186. LIST="abc def gef"
  187. isContainsRegex "abc def ghi" "g.i"
  188. RESULT=$?
  189. assertEquals "isContains [含まれるリスト確認]" "1" "${RESULT}"
  190. }
  191.  
  192.  
  193. # ----------------------------------------------------------------------
  194. # isContainsRegex 単体テスト
  195. # 含まれない場合の確認
  196. # ----------------------------------------------------------------------
  197. function test_isContainsRegex_noContains()
  198. {
  199. LIST="abc def gef"
  200. isContainsRegex "abc def ghj" "g.i"
  201. RESULT=$?
  202. assertEquals "isContains [含まれないリスト確認]" "0" "${RESULT}"
  203. }
  204.  
  205.  
  206. # ----------------------------------------------------------------------
  207. # overwrite 単体テスト
  208. # 上書き
  209. # ----------------------------------------------------------------------
  210. function test_overwrite()
  211. {
  212. TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  213. echo "A" > ${TMP_FILE}
  214. `echo "y" | overwrite ${TMP_FILE}`
  215. RESULT=$?
  216. assertEquals "ovewrite" "0" "${RESULT}"
  217. rm -f ${TMP_FILE}
  218. }
  219.  
  220.  
  221. # ----------------------------------------------------------------------
  222. # overwrite 単体テスト
  223. # 上書き中断
  224. # ----------------------------------------------------------------------
  225. function test_overwrite_abort()
  226. {
  227. TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  228. echo "A" > ${TMP_FILE}
  229. `echo "n" | overwrite ${TMP_FILE}`
  230. RESULT=$?
  231. assertEquals "ovewrite abort" "1" "${RESULT}"
  232. rm -f ${TMP_FILE}
  233. }
  234.  
  235.  
  236. # ----------------------------------------------------------------------
  237. # overwrite 単体テスト
  238. # ファイル無
  239. # ----------------------------------------------------------------------
  240. function test_overwrite_nofile()
  241. {
  242. TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  243. rm -f ${TMP_FILE}
  244. `overwrite ${TMP_FILE}`
  245. RESULT=$?
  246. assertEquals "ovewrite nofile" "0" "${RESULT}"
  247. }
  248.  
  249.  
  250. # ----------------------------------------------------------------------
  251. # confirmPassword 単体テスト
  252. # ----------------------------------------------------------------------
  253. function test_confirmPassword()
  254. {
  255. TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  256. echo -e "ABC\nABC" > ${TMP_FILE}
  257. confirmPassword "X" "Y" < ${TMP_FILE} > /dev/null
  258. RESULT=$?
  259.  
  260. assertEquals "confirmPassword" "0" "${RESULT}"
  261. assertEquals "confirmPassword Password=A" "ABC" "${CONFIRM_PASSWORD}"
  262. rm -f ${TMP_FILE}
  263. }
  264.  
  265.  
  266. # ----------------------------------------------------------------------
  267. # confirmPassword 単体テスト
  268. # 確認用パスワードと不一致
  269. # ----------------------------------------------------------------------
  270. function test_confirmPassword_ng()
  271. {
  272. TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  273. echo -e "ABC\nXYZ" > ${TMP_FILE}
  274. confirmPassword "X" "Y" < ${TMP_FILE} > /dev/null
  275. RESULT=$?
  276.  
  277. assertEquals "confirmPassword" "1" "${RESULT}"
  278. assertEquals "confirmPassword Password=A" "" "${CONFIRM_PASSWORD}"
  279. rm -f ${TMP_FILE}
  280. }
  281.  
  282.  
  283. # ----------------------------------------------------------------------
  284. # template 単体テスト
  285. # ----------------------------------------------------------------------
  286. function test_template()
  287. {
  288. # template file
  289. TMPL_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  290. echo "ABC DEF \${TMPL_FILE} HIJKLMN" > ${TMPL_FILE}
  291. echo "AAA \${LANG}" >> ${TMPL_FILE}
  292.  
  293. # excepted file
  294. EXCEPTED_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  295. echo "ABC DEF ${TMPL_FILE} HIJKLMN" > ${EXCEPTED_FILE}
  296. echo "AAA ${LANG}" >> ${EXCEPTED_FILE}
  297.  
  298. RESULT_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
  299. template ${TMPL_FILE} > ${RESULT_FILE}
  300. RESULT=$?
  301.  
  302. diff ${RESULT_FILE} ${EXCEPTED_FILE}
  303. RESULT=$?
  304. assertEquals "template" "0" "${RESULT}"
  305.  
  306. rm -f ${TMPL_FILE} ${RESULT_FILE} ${EXCEPTED_FILE}
  307. }
  308.  
  309.  
  310.  
  311.  
  312.  
  313. function suite()
  314. {
  315. suite_addTest test_getAbsolutePath_file
  316. suite_addTest test_getAbsolutePath_directory
  317. suite_addTest test_getAbsolutePath_invalid
  318. suite_addTest test_getProperty
  319. suite_addTest test_version
  320. suite_addTest test_usage
  321. suite_addTest test_confirm_default
  322. suite_addTest test_confirm_yes
  323. suite_addTest test_confirm_no
  324. suite_addTest test_isContains
  325. suite_addTest test_isContains_noContains
  326. suite_addTest test_isContainsRegex
  327. suite_addTest test_isContainsRegex_noContains
  328. suite_addTest test_overwrite
  329. suite_addTest test_overwrite_abort
  330. suite_addTest test_overwrite_nofile
  331. suite_addTest test_confirmPassword
  332. suite_addTest test_confirmPassword_ng
  333. suite_addTest test_template
  334. }
  335.  
  336. . shunit2