#!/bin/bash

# Set defaults if no values supplied
CONFIGURATION="Release"
OUTPUT="CoverageOutput"
REPORT_TYPE="lcov"


# Read in arguments
while [[ $# -gt 0  ]]; do
    key="$1"

    case $key in
        -c|--configuration)

        CONFIGURATION="$2"
        shift
        shift
        ;;
        -o|--output)
        OUTPUT="$2"
        shift
        shift
        ;;
        -rt|--reportType)
        REPORT_TYPE="$2"
        shift
        shift
        ;;
        *)
        shift
        ;;
    esac
done

echo "CONFIGURATION = ${CONFIGURATION}"
echo "OUTPUT = ${OUTPUT}"
echo "REPORT_TYPE = ${REPORT_TYPE}"

echo "Collectiong Code Coverage"
# Install tools
dotnet tool restore
# Print Environment
dotnet --version

if [[ -d $OUTPUT ]]; then
    echo "Cleaning output location"
    rm -rf $OUTPUT
fi

dotnet test "./bitwarden.tests.sln" /p:CoverletOutputFormatter="cobertura" --collect:"XPlat Code Coverage" --results-directory:"$OUTPUT" -c $CONFIGURATION

dotnet tool run reportgenerator -reports:$OUTPUT/**/*.cobertura.xml -targetdir:$OUTPUT -reporttype:"$REPORT_TYPE"