diff --git a/src/Password.hs b/src/Password.hs index 4f1cb90..3582cda 100644 --- a/src/Password.hs +++ b/src/Password.hs @@ -213,7 +213,7 @@ pwHasService -- ^ the database to check -> Bool -- ^ returns @"True"@ if found; @"False"@ otherwise -pwHasService = undefined +pwHasService x db = elem x $ M.keys db -- | adds a service to the database, or overwrites an existing one pwSetService diff --git a/test/Spec.hs b/test/Spec.hs index 94b3c17..3c5af05 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -31,6 +31,7 @@ import qualified Spec.NewPWDatabase as NewPWDatabase import qualified Spec.NewPWPolicy as NewPWPolicy import qualified Spec.NewPWSalt as NewPWSalt import qualified Spec.PWGenerate as PWGenerate +import qualified Spec.PWHasService as PWHasService import qualified Spec.ValidatePWData as ValidatePWData import qualified Spec.ValidatePWDatabase as ValidatePWDatabase import qualified Spec.ValidatePWPolicy as ValidatePWPolicy @@ -49,6 +50,7 @@ tests = TestList , ValidatePWData.tests , ValidatePWPolicy.tests , PWGenerate.tests + , PWHasService.tests ] --jl diff --git a/test/Spec/PWHasService.hs b/test/Spec/PWHasService.hs new file mode 100644 index 0000000..2743480 --- /dev/null +++ b/test/Spec/PWHasService.hs @@ -0,0 +1,54 @@ +{- + +passman +Copyright (C) 2018 Jonathan Lamothe + + +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 +. + +-} + +module Spec.PWHasService (tests) where + +import qualified Data.Map as M +import System.Random (mkStdGen) +import Test.HUnit (Test (..), (~?=)) + +import Password + +tests = TestLabel "pwHasService" $ TestList $ map test' + [ ( "empty database", "foo", newPWDatabase, False ) + , ( "in database", "foo", db, True ) + , ( "not found", "quux", db, False ) + ] + +test' (label, x, db, expect) = TestLabel label $ + pwHasService x db ~?= expect + +db = M.fromList + [ ( "foo", foo ) + , ( "bar", bar ) + , ( "baz", baz ) + ] + +(foo, g') = newPWData g + +(bar, g'') = newPWData g' + +(baz, _) = newPWData g'' + +g = mkStdGen 1 + +--jl