- #!/bin/bash
- ########################################################################
- ## Script : test_bash-utils.sh
- ## Name : bash-utils.sh 単体テスト用スクリプト
- ## Version : 1.0
- ## Usage:
- ## |This is Test Usage
- ##
- ## test-key : test-value
- # Load Test Target Script
- . ../src/bash-utils.sh
- # ----------------------------------------------------------------------
- # getAbsolutePath 単体テスト
- # 指定されたファイルの絶対パス取得確認
- # ----------------------------------------------------------------------
- function test_getAbsolutePath_file()
- {
- local BASE_PATH=`pwd | sed "s/\\/test$//"`
- local EXCEPT_PATH="${BASE_PATH}/src/bash-utils.sh"
- local ABSOLUTE_PATH=$(getAbsolutePath ../src/bash-utils.sh)
- assertEquals "getAbsolutePath [ファイルの絶対パス取得]" "${EXCEPT_PATH}" "${ABSOLUTE_PATH}"
- }
- # ----------------------------------------------------------------------
- # getAbsolutePath 単体テスト
- # 指定されたディレクトリの絶対パス取得確認
- # ----------------------------------------------------------------------
- function test_getAbsolutePath_directory()
- {
- local BASE_PATH=`pwd | sed "s/\\/test$//"`
- local EXCEPT_PATH="${BASE_PATH}/src"
- local ABSOLUTE_PATH=$(getAbsolutePath ../src)
- assertEquals "getAbsolutePath [ディレクトリの絶対パス取得]" "${EXCEPT_PATH}" "${ABSOLUTE_PATH}"
- }
- # ----------------------------------------------------------------------
- # getAbsolutePath 単体テスト
- # 存在しないパスの指定
- # ----------------------------------------------------------------------
- function test_getAbsolutePath_invalid()
- {
- getAbsolutePath ../abc/bash-utils.sh > /dev/null 2>&1
- assertFalse $?
- }
- # ----------------------------------------------------------------------
- # getProperty 単体テスト
- # プロパティ値の取得
- # ----------------------------------------------------------------------
- function test_getProperty()
- {
- VALUE=$(getProperty "test-key")
- assertEquals "getProperty [test-key に対する値取得]" "test-value" "${VALUE}"
- }
- # ----------------------------------------------------------------------
- # version 単体テスト
- # バージョン情報の取得
- # ----------------------------------------------------------------------
- function test_version()
- {
- VERSION=$(version)
- assertEquals "version [バージョン情報取得]" "test_bash-utils.sh 1.0" "${VERSION}"
- }
- # ----------------------------------------------------------------------
- # Usage 単体テスト
- # Usage の取得
- # ----------------------------------------------------------------------
- function test_usage()
- {
- USAGE=$(usage)
- assertEquals "usage [usage 取得]" "This is Test Usage" "${USAGE}"
- }
- # ----------------------------------------------------------------------
- # confirm 単体テスト
- # デフォルト確認
- # ----------------------------------------------------------------------
- function test_confirm_default()
- {
- $(echo "abc" | confirm "test" 1)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "1" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # confirm 単体テスト
- # Yes 確認
- # ----------------------------------------------------------------------
- function test_confirm_yes()
- {
- $(echo "Yes" | confirm "test" 0)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "1" "${RESULT}"
- $(echo "yes" | confirm "test" 0)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "1" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # confirm 単体テスト
- # No 確認
- # ----------------------------------------------------------------------
- function test_confirm_no()
- {
- $(echo "No" | confirm "test" 0)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "0" "${RESULT}"
- $(echo "no" | confirm "test" 0)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "0" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # confirm 単体テスト
- # No 確認
- # ----------------------------------------------------------------------
- function test_confirm_no()
- {
- $(echo "No" | confirm "test" 0)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "0" "${RESULT}"
- $(echo "no" | confirm "test" 0)
- RESULT=$?
- assertEquals "confirm [usage 取得]" "0" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # isContains 単体テスト
- # 含まれる場合の確認
- # ----------------------------------------------------------------------
- function test_isContains()
- {
- isContains "abc def ghi" "def"
- RESULT=$?
- assertEquals "isContains [含まれるリスト確認]" "1" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # isContains 単体テスト
- # 含まれない場合の確認
- # ----------------------------------------------------------------------
- function test_isContains_noContains()
- {
- LIST="abc def gef"
- isContains "abc def ghi" "xyz"
- RESULT=$?
- assertEquals "isContains [含まれないリスト確認]" "0" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # isContainsRegex 単体テスト
- # 含まれる場合の確認
- # ----------------------------------------------------------------------
- function test_isContainsRegex()
- {
- LIST="abc def gef"
- isContainsRegex "abc def ghi" "g.i"
- RESULT=$?
- assertEquals "isContains [含まれるリスト確認]" "1" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # isContainsRegex 単体テスト
- # 含まれない場合の確認
- # ----------------------------------------------------------------------
- function test_isContainsRegex_noContains()
- {
- LIST="abc def gef"
- isContainsRegex "abc def ghj" "g.i"
- RESULT=$?
- assertEquals "isContains [含まれないリスト確認]" "0" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # overwrite 単体テスト
- # 上書き
- # ----------------------------------------------------------------------
- function test_overwrite()
- {
- TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- echo "A" > ${TMP_FILE}
- `echo "y" | overwrite ${TMP_FILE}`
- RESULT=$?
- assertEquals "ovewrite" "0" "${RESULT}"
- rm -f ${TMP_FILE}
- }
- # ----------------------------------------------------------------------
- # overwrite 単体テスト
- # 上書き中断
- # ----------------------------------------------------------------------
- function test_overwrite_abort()
- {
- TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- echo "A" > ${TMP_FILE}
- `echo "n" | overwrite ${TMP_FILE}`
- RESULT=$?
- assertEquals "ovewrite abort" "1" "${RESULT}"
- rm -f ${TMP_FILE}
- }
- # ----------------------------------------------------------------------
- # overwrite 単体テスト
- # ファイル無
- # ----------------------------------------------------------------------
- function test_overwrite_nofile()
- {
- TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- rm -f ${TMP_FILE}
- `overwrite ${TMP_FILE}`
- RESULT=$?
- assertEquals "ovewrite nofile" "0" "${RESULT}"
- }
- # ----------------------------------------------------------------------
- # confirmPassword 単体テスト
- # ----------------------------------------------------------------------
- function test_confirmPassword()
- {
- TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- echo -e "ABC\nABC" > ${TMP_FILE}
- confirmPassword "X" "Y" < ${TMP_FILE} > /dev/null
- RESULT=$?
- assertEquals "confirmPassword" "0" "${RESULT}"
- assertEquals "confirmPassword Password=A" "ABC" "${CONFIRM_PASSWORD}"
- rm -f ${TMP_FILE}
- }
- # ----------------------------------------------------------------------
- # confirmPassword 単体テスト
- # 確認用パスワードと不一致
- # ----------------------------------------------------------------------
- function test_confirmPassword_ng()
- {
- TMP_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- echo -e "ABC\nXYZ" > ${TMP_FILE}
- confirmPassword "X" "Y" < ${TMP_FILE} > /dev/null
- RESULT=$?
- assertEquals "confirmPassword" "1" "${RESULT}"
- assertEquals "confirmPassword Password=A" "" "${CONFIRM_PASSWORD}"
- rm -f ${TMP_FILE}
- }
- # ----------------------------------------------------------------------
- # template 単体テスト
- # ----------------------------------------------------------------------
- function test_template()
- {
- # template file
- TMPL_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- echo "ABC DEF \${TMPL_FILE} HIJKLMN" > ${TMPL_FILE}
- echo "AAA \${LANG}" >> ${TMPL_FILE}
- # excepted file
- EXCEPTED_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- echo "ABC DEF ${TMPL_FILE} HIJKLMN" > ${EXCEPTED_FILE}
- echo "AAA ${LANG}" >> ${EXCEPTED_FILE}
- RESULT_FILE=$(mktemp /tmp/ut-XXXXXXXXXX.tmp)
- template ${TMPL_FILE} > ${RESULT_FILE}
- RESULT=$?
- diff ${RESULT_FILE} ${EXCEPTED_FILE}
- RESULT=$?
- assertEquals "template" "0" "${RESULT}"
- rm -f ${TMPL_FILE} ${RESULT_FILE} ${EXCEPTED_FILE}
- }
- function suite()
- {
- suite_addTest test_getAbsolutePath_file
- suite_addTest test_getAbsolutePath_directory
- suite_addTest test_getAbsolutePath_invalid
- suite_addTest test_getProperty
- suite_addTest test_version
- suite_addTest test_usage
- suite_addTest test_confirm_default
- suite_addTest test_confirm_yes
- suite_addTest test_confirm_no
- suite_addTest test_isContains
- suite_addTest test_isContains_noContains
- suite_addTest test_isContainsRegex
- suite_addTest test_isContainsRegex_noContains
- suite_addTest test_overwrite
- suite_addTest test_overwrite_abort
- suite_addTest test_overwrite_nofile
- suite_addTest test_confirmPassword
- suite_addTest test_confirmPassword_ng
- suite_addTest test_template
- }
- . shunit2