#!/bin/bash

# Copyright: 2023 Virtuozzo International GmbH

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.



[ -n "${TESTSLIB_VERSION:-}" ] && return 0;
TESTSLIB_VERSION="0.1";


function has() {
    local test=${1} item;
    shift;
    for item in "$@" ; do
        [[ ${item} == ${test} ]] && return 0;
    done
    return 1;
}

function isFunction() {
    [[ $(type -t "${1}" ) == "function" ]]
}

function isNumber() {
    [[ -n ${1} ]] && [[ -z ${1//[[:digit:]]} ]]
}

function runIfExists() {
    local func=${1};
    shift;
    isFunction "${func}" && return $(${func} "${@}")
}

function isUUID() {
    [[ "$1" =~ ^\{?[A-F0-9a-f]{8}-[A-F0-9a-f]{4}-[A-F0-9a-f]{4}-[A-F0-9a-f]{4}-[A-F0-9a-f]{12}\}?$ ]]
    return $?
}
