seakale-tests 0.1.0.2 → 0.1.1.0
raw patch · 3 files changed
+29/−2 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Database.Seakale.Tests.Store: mockFailingSave :: (Storable backend k l a, ToRow backend k (EntityID a), ToRow backend l a) => EntityID a -> a -> SeakaleError -> Mock (StoreMock backend) ()
+ Database.Seakale.Tests.Store: mockSave :: (Storable backend k l a, ToRow backend k (EntityID a), ToRow backend l a) => EntityID a -> a -> Mock (StoreMock backend) ()
Files
- ChangeLog.md +4/−0
- seakale-tests.cabal +4/−2
- src/Database/Seakale/Tests/Store.hs +21/−0
ChangeLog.md view
@@ -1,5 +1,9 @@ # Revision history for seakale-tests +## 0.1.1.0 -- 2017-07-24++* Add mockSave and mockFailingSave+ ## 0.1.0.2 -- 2017-03-08 * Make (StoreMock a) an instance of Show so Mock (StoreMock backend) a is too.
seakale-tests.cabal view
@@ -1,5 +1,5 @@ name: seakale-tests-version: 0.1.0.2+version: 0.1.1.0 synopsis: Helpers to test code using Seakale description: This package provides a way to run code written with Seakale with a fake database using mocks. license: BSD3@@ -14,7 +14,7 @@ source-repository head type: darcs location: http://darcs.redspline.com/seakale- tag: seakale-tests-0.1.0.2+ tag: seakale-tests-0.1.1.0 library ghc-options: -Wall@@ -30,6 +30,8 @@ TupleSections OverloadedStrings ExistentialQuantification+ ScopedTypeVariables+ RecordWildCards exposed-modules: Database.Seakale.Tests.Mock Database.Seakale.Tests.Request
src/Database/Seakale/Tests/Store.hs view
@@ -22,6 +22,8 @@ , mockUpdate , mockFailingUpdateMany , mockFailingUpdate+ , mockSave+ , mockFailingSave , mockDeleteMany , mockDelete , mockFailingDeleteMany@@ -43,6 +45,7 @@ import Control.Monad.Trans.Free import qualified Control.Monad.Except as E +import Data.Maybe import Data.Monoid import Data.Typeable import qualified Data.ByteString.Lazy.Char8 as BSL@@ -177,6 +180,24 @@ => EntityID a -> UpdateSetter backend a -> SeakaleError -> Mock (StoreMock backend) () mockFailingUpdate i setter = mockFailingUpdateMany setter (EntityID ==. i)++mockSave :: ( Storable backend k l a, ToRow backend k (EntityID a)+ , ToRow backend l a ) => EntityID a -> a+ -> Mock (StoreMock backend) ()+mockSave i val = mockUpdate i (mockSaveHelper val)++mockFailingSave :: ( Storable backend k l a, ToRow backend k (EntityID a)+ , ToRow backend l a ) => EntityID a -> a -> SeakaleError+ -> Mock (StoreMock backend) ()+mockFailingSave i val = mockFailingUpdate i (mockSaveHelper val)++mockSaveHelper :: forall backend k l a.+ ( Storable backend k l a, ToRow backend k (EntityID a)+ , ToRow backend l a ) => a -> UpdateSetter backend a+mockSaveHelper val = UpdateSetter $ \backend ->+ let Relation{..} = (relation backend :: Relation backend k l a)+ row = fmap (fromMaybe "NULL") $ toRow backend val+ in vzip relationColumns row mockDeleteMany :: Storable backend k l a => Condition backend a -> Integer -> Mock (StoreMock backend) ()