implemented default password policy

This commit is contained in:
Jonathan Lamothe 2018-12-12 17:38:10 -05:00
parent 3853a32259
commit 63105399b8
3 changed files with 50 additions and 2 deletions

View File

@ -29,7 +29,9 @@ module Password (
PWPolicy (..), PWPolicy (..),
-- ** Lenses -- ** Lenses
-- $lenses -- $lenses
pwLength, pwUpper, pwLower, pwDigits, pwSpecial pwLength, pwUpper, pwLower, pwDigits, pwSpecial,
-- ** Default Instances
newPWPolicy
) where ) where
import Control.Lens (makeLenses) import Control.Lens (makeLenses)
@ -56,4 +58,8 @@ data PWPolicy = PWPolicy
makeLenses ''PWPolicy makeLenses ''PWPolicy
-- | default password policy
newPWPolicy :: PWPolicy
newPWPolicy = PWPolicy 16 0 0 0 (Just 0)
--jl --jl

View File

@ -26,11 +26,13 @@ import Control.Monad (when)
import System.Exit (exitFailure) import System.Exit (exitFailure)
import Test.HUnit (errors, failures, runTestTT, Test(TestList)) import Test.HUnit (errors, failures, runTestTT, Test(TestList))
import qualified Spec.PWPolicy as PWPolicy
main = do main = do
counts <- runTestTT tests counts <- runTestTT tests
when (failures counts > 0 || errors counts > 0) when (failures counts > 0 || errors counts > 0)
exitFailure exitFailure
tests = TestList [] tests = TestList [PWPolicy.tests]
--jl --jl

40
test/Spec/PWPolicy.hs Normal file
View File

@ -0,0 +1,40 @@
{-
passman
Copyright (C) 2018 Jonathan Lamothe
<jlamothe1980@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
<https://www.gnu.org/licenses/>.
-}
module Spec.PWPolicy (tests) where
import Control.Lens ((^.))
import Test.HUnit (Test(..), (~?=))
import Password
tests = TestLabel "PWPolicy" $ TestList $ map test'
[ ( "pwLength", newPWPolicy^.pwLength ~?= 16 )
, ( "pwUpper", newPWPolicy^.pwUpper ~?= 0 )
, ( "pwLower", newPWPolicy^.pwLower ~?= 0 )
, ( "pwDigits", newPWPolicy^.pwDigits ~?= 0 )
, ( "pwSpecial", newPWPolicy^.pwSpecial ~?= Just 0 )
]
test' (label, x) = TestLabel label x
--jl