#!/bin/sh
set -e

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture "i386"

insertpackage 'unstable' 'rapt' 'i386' '0.8.15'
insertpackage 'unstable' 'arch' 'i386' '1.0'

setupaptarchive

testcandidate() {
	msgtest "Test that the Candidate for $1 is" $2
	if [ "$(aptcache policy $1 | grep '^  Candidate:')" = "  Candidate: $2" ]; then
		msgpass
	else
		echo
		aptcache policy $1
		msgfail
	fi
}

testcandidate rapt '0.8.15'
testsuccessequal 'N: Unable to locate package doesntexist' aptcache policy doesntexist
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade --trivial-only

echo 'Package: rapt
Pin: release a=unstable
Pin-Priority: -1' > rootdir/etc/apt/preferences

testcandidate rapt '(none)'
testsuccessequal 'N: Unable to locate package doesntexist' aptcache policy doesntexist
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade --trivial-only

echo '
Package: doesntexist
Pin: release a=unstable
Pin-Priority: 1000' >> rootdir/etc/apt/preferences

testcandidate rapt '(none)'

echo '
Package: rapt
Pin: release a=unstable
Pin-Priority: 1000' >> rootdir/etc/apt/preferences

testcandidate rapt '(none)'
testsuccessequal 'N: Unable to locate package doesntexist' aptcache policy doesntexist

testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade --trivial-only

echo 'Package: arch:amd64
Pin: release a=unstable
Pin-Priority: -1' > rootdir/etc/apt/preferences

testcandidate arch '1.0'

echo '
Package: arch:i386
Pin: release a=unstable
Pin-Priority: -1' >> rootdir/etc/apt/preferences

testcandidate arch '(none)'