#! /bin/sh
# $Id$
# vim: expandtab
# author: Kate Ward <kate.ward@forestent.com>
#
# Self-testing unit tests for shUnit2 failures
#

MSG='This is a test message'

#-----------------------------------------------------------------------------
# suite tests
#

commonNotEqualsSame()
{
  fn=$1

  msg='same, with message'
  rslt=`${fn} "${MSG}" 'x' 'x' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='same'
  rslt=`${fn} 'x' 'x' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='not same'
  rslt=`${fn} 'x' 'y' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='null values'
  rslt=`${fn} '' '' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='too few arguments'
  rslt=`${fn} 2>&1`
  assertNotSame "${msg}" '' "${rslt}"
}

testFail()
{
  msg='with message'
  rslt=`fail "${MSG}" 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='without message'
  rslt=`fail 2>&1`
  assertNotSame "${msg}" '' "${rslt}"
}

testFailNotEquals()
{
  commonNotEqualsSame 'failNotEquals'
}

testFailSame()
{
  msg='same, with message'
  rslt=`failSame "${MSG}" 'x' 'x' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='same'
  rslt=`failSame 'x' 'x' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='not same'
  rslt=`failSame 'x' 'y' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='null values'
  rslt=`failSame '' '' 2>&1`
  assertNotSame "${msg}" '' "${rslt}"

  msg='too few arguments'
  rslt=`failSame 2>&1`
  assertNotSame "${msg}" '' "${rslt}"
}

testFailNotSame()
{
  commonNotEqualsSame 'failNotSame'
}

#-----------------------------------------------------------------------------
# suite functions
#

# load and run shUnit2
. ./shunit2
