check for negative values on validion

This commit is contained in:
Jonathan Lamothe 2018-12-13 11:48:37 -05:00
parent 36e2ac9883
commit 29bbdccc53
2 changed files with 25 additions and 13 deletions

View File

@ -71,8 +71,15 @@ validatePWPolicy
-- ^ the policy being validated
-> Bool
-- ^ indicates whether or not the policy is valid
validatePWPolicy x = needed <= x^.pwLength where
needed = x^.pwUpper + x^.pwLower + x^.pwDigits + special
special = fromMaybe 0 $ x^.pwSpecial
validatePWPolicy x = all id
[ needed <= x^.pwLength
, x^.pwLength >= 0
, x^.pwUpper >= 0
, x^.pwLower >= 0
, x^.pwDigits >= 0
, fromMaybe 0 (x^.pwSpecial) >= 0
] where
needed = x^.pwUpper + x^.pwLower + x^.pwDigits + special
special = fromMaybe 0 $ x^.pwSpecial
--jl

View File

@ -28,16 +28,21 @@ import Test.HUnit (Test(..), (~?=))
import Password
tests = TestLabel "validatePWPolicy" $ TestList $ map test'
[ ( "default", id, True )
, ( "no special chars", set pwSpecial Nothing, True )
, ( "valid minimums", validMins, True )
, ( "excessive upper", set pwUpper 99, False )
, ( "excessive lower", set pwLower 99, False )
, ( "excessive digits", set pwDigits 99, False )
, ( "excessive total", excessive, False )
, ( "short", set pwLength 8, True )
, ( "short valid", shortValid, True )
, ( "short invalid", shortInvalid, False )
[ ( "default", id, True )
, ( "no special chars", set pwSpecial Nothing, True )
, ( "valid minimums", validMins, True )
, ( "excessive upper", set pwUpper 99, False )
, ( "excessive lower", set pwLower 99, False )
, ( "excessive digits", set pwDigits 99, False )
, ( "excessive total", excessive, False )
, ( "short", set pwLength 8, True )
, ( "short valid", shortValid, True )
, ( "short invalid", shortInvalid, False )
, ( "negative length", set pwLength (-1), False )
, ( "negative upper", set pwUpper (-1), False )
, ( "negative lower", set pwLower (-1), False )
, ( "negative digits", set pwDigits (-1), False )
, ( "negative special", set pwSpecial (Just (-1)), False )
]
test' (label, f, expect) = TestLabel label $