#!/usr/bin/env bash

set -e

SYMFONY_VERSION=6.0
PHP_VERSION=$(php -r "echo PHP_VERSION_ID;")

if [ ! -z $1 ]; then
    SYMFONY_VERSION=$1
fi

if [ $(echo "$SYMFONY_VERSION >= 6.0 && $PHP_VERSION <= 80000" | bc -l) -eq 1 ]; then
    echo "Skipping because Symfony $SYMFONY_VERSION is incompatible with PHP $PHP_VERSION"
    exit 0
fi

if [[ `basename "$PWD"` == *"-bundle" ]]; then

    echo "Running functional tests ..."

    BUNDLE_PATH=`pwd`
    BUNDLE_NAME=endroid/"$(basename "$BUNDLE_PATH")"
    APPLICATION_PATH=`pwd`/vendor/endroid/quality/application

    rm -rf $APPLICATION_PATH

    composer create-project --no-progress symfony/skeleton:^$SYMFONY_VERSION $APPLICATION_PATH --no-interaction
    composer require symfony/browser-kit symfony/test-pack --no-interaction

    cp -r vendor/endroid/quality/application-base/* $APPLICATION_PATH
    cp -r tests/application/* $APPLICATION_PATH
    mkdir -p $APPLICATION_PATH/vendor/endroid
    rsync -a --exclude tests --exclude vendor $BUNDLE_PATH $APPLICATION_PATH/vendor/endroid

    (
        cd $APPLICATION_PATH
        composer config extra.symfony.allow-contrib true
        composer config prefer-stable true
        composer config repositories.$BUNDLE_NAME path $APPLICATION_PATH/vendor/$BUNDLE_NAME
        composer require $BUNDLE_NAME @dev

        bin/phpunit
    )

fi
