##################
# ezmlm-dispatch #
##################

make_message >"$TMP"
testdispatch() {
  DEFAULT="$2"
  ${EZBIN}/ezmlm-dispatch "$DIR" $1 <"$TMP" >"$ERR" 2>&1
  grep "^$3$" "$ERR" >/dev/null \
  || fatal "did not dispatch DEFAULT='$2' from '$1' to '$3'"
}

prompt "ezmlm-dispatch:       "

for list in list1 list2; do
  mkdir "$DIR"/$list
  mkdir "$DIR"/$list/digest
  for cmd in editor owner bouncer digest/bouncer confirmer moderator manager; do
    echo "|echo $list $cmd" >"$DIR"/$list/$cmd
  done
done

testdispatch '' list1 'list1 editor'
testdispatch '' list1-owner 'list1 owner'
testdispatch '' list1-digest-owner 'list1 owner'
testdispatch '' list1-digest-return-xyzzy 'list1 digest/bouncer'
testdispatch '' list1-return-xyzzy 'list1 bouncer'
testdispatch '' list1-confirm-xyzzy 'list1 confirmer'
testdispatch '' list1-discard-xyzzy 'list1 confirmer'
testdispatch '' list1-accept-xyzzy 'list1 moderator'
testdispatch '' list1-reject-xyzzy 'list1 moderator'
testdispatch '' list1-xyzzy 'list1 manager'

unset DEFAULT
${EZBIN}/ezmlm-dispatch "$DIR" list2 <"$TMP" 2>&1 | grep "^list2 editor$" >/dev/null \
|| fatal "did not dispatch from 'list2' to 'list2 editor'"
export DEFAULT

testdispatch list2 owner 'list2 owner'
testdispatch list2 digest-owner 'list2 owner'
testdispatch list2 digest-return-xyzzy 'list2 digest/bouncer'
testdispatch list2 return-xyzzy 'list2 bouncer'
testdispatch list2 confirm-xyzzy 'list2 confirmer'
testdispatch list2 discard-xyzzy 'list2 confirmer'
testdispatch list2 accept-xyzzy 'list2 moderator'
testdispatch list2 reject-xyzzy 'list2 moderator'
testdispatch list2 xyzzy 'list2 manager'

rm -r "$DIR"/list1 "$DIR"/list2
echo "OK"
