#!/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}"
}
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
}
. shunit2