packages feed

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 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) ()