| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Test.MockCat.Internal.Builder
Synopsis
- class BuildCurried args r fn | args r -> fn where
- buildCurriedImpl :: (args -> IO r) -> fn
- buildCurried :: BuildCurried args r fn => (args -> IO r) -> fn
- class BuildCurriedPure args r fn | args r -> fn where
- buildCurriedPureImpl :: (args -> r) -> fn
- buildCurriedPure :: BuildCurriedPure args r fn => (args -> r) -> fn
- class BuildCurriedIO args r fn | args r -> fn where
- buildCurriedIOImpl :: (args -> IO r) -> fn
- buildCurriedIO :: BuildCurriedIO args r fn => (args -> IO r) -> fn
- class MockBuilder params fn verifyParams | params -> fn, params -> verifyParams where
- buildMock :: (MonadIO m, MockBuilder params fn verifyParams) => Maybe MockName -> params -> m (BuiltMock fn verifyParams)
- class MockIOBuilder params fn verifyParams | params -> fn, params -> verifyParams where
- buildWithRecorder :: (MonadIO m, BuildCurried args r fn) => (TVar (InvocationRecord args) -> args -> IO r) -> m (BuiltMock fn args)
- buildWithRecorderIO :: (MonadIO m, BuildCurriedIO args r fn) => (TVar (InvocationRecord args) -> args -> IO r) -> m (BuiltMock fn args)
- invocationRecord :: InvocationRecord params
- appendCalledParams :: TVar (InvocationRecord params) -> params -> IO ()
- readInvocationCount :: Eq params => TVar (InvocationRecord params) -> params -> IO Int
- incrementInvocationCount :: Eq params => TVar (InvocationRecord params) -> params -> IO ()
- incrementCount :: Eq k => k -> InvocationCounts k -> InvocationCounts k
- runCase :: Cases a b -> [a]
- p :: (Show a, Eq a) => a -> Param a
- class StubBuilder params fn | params -> fn where
- type ParamConstraints params args r = (ProjectionArgs params, ProjectionReturn params, ArgsOf params ~ args, ReturnOf params ~ Param r, Eq args, Show args)
- extractReturnValue :: ParamConstraints params args r => Maybe MockName -> params -> args -> r
- validateOnly :: (Eq a, Show a) => Maybe MockName -> a -> a -> ()
- validateParamsPure :: (Eq a, Show a) => Maybe MockName -> a -> a -> ()
- findReturnValueWithPure :: ParamConstraints params args r => Maybe MockName -> InvocationList params -> args -> r
- findReturnValuePure :: ParamConstraints params args r => InvocationList params -> args -> Maybe r
- type InvocationStep args r = InvocationRecord args -> (InvocationRecord args, Either Message r)
- executeInvocation :: TVar (InvocationRecord args) -> InvocationStep args r -> IO r
- singleInvocationStep :: ParamConstraints params args r => Maybe MockName -> params -> args -> InvocationStep args r
- casesInvocationStep :: ParamConstraints params args r => Maybe MockName -> InvocationList params -> args -> InvocationStep args r
Documentation
class BuildCurried args r fn | args r -> fn where Source #
Class for building a curried function.
The purpose of this class is to automatically generate and provide
an implementation for the corresponding curried function type (such as `a -> b -> ... -> IO r`)
when given the argument list type of the mock (`Param a :> Param b :> ...`).
args is the argument list type of the mock.
r is the return type of the function.
fn is the curried function type.
Methods
buildCurriedImpl :: (args -> IO r) -> fn Source #
Instances
| (WrapParam a, fn ~ (a -> r)) => BuildCurried (Param a) r fn Source # | |
Defined in Test.MockCat.Internal.Builder Methods buildCurriedImpl :: (Param a -> IO r) -> fn Source # | |
| (BuildCurried rest r fn, WrapParam a, fn' ~ (a -> fn)) => BuildCurried (Param a :> rest) r fn' Source # | |
Defined in Test.MockCat.Internal.Builder | |
buildCurried :: BuildCurried args r fn => (args -> IO r) -> fn Source #
Build a curried function that returns an IO result.
class BuildCurriedPure args r fn | args r -> fn where Source #
Class for building a curried pure function without relying on IO.
Methods
buildCurriedPureImpl :: (args -> r) -> fn Source #
Instances
| (WrapParam a, fn ~ (a -> r)) => BuildCurriedPure (Param a) r fn Source # | |
Defined in Test.MockCat.Internal.Builder Methods buildCurriedPureImpl :: (Param a -> r) -> fn Source # | |
| (BuildCurriedPure rest r fn, WrapParam a, fn' ~ (a -> fn)) => BuildCurriedPure (Param a :> rest) r fn' Source # | |
Defined in Test.MockCat.Internal.Builder Methods buildCurriedPureImpl :: ((Param a :> rest) -> r) -> fn' Source # | |
buildCurriedPure :: BuildCurriedPure args r fn => (args -> r) -> fn Source #
Build a curried function that returns a pure result.
class BuildCurriedIO args r fn | args r -> fn where Source #
Class for building a curried function whose result stays in IO.
Methods
buildCurriedIOImpl :: (args -> IO r) -> fn Source #
Instances
| (WrapParam a, fn ~ (a -> IO r)) => BuildCurriedIO (Param a) r fn Source # | |
Defined in Test.MockCat.Internal.Builder Methods buildCurriedIOImpl :: (Param a -> IO r) -> fn Source # | |
| (BuildCurriedIO rest r fn, WrapParam a, fn' ~ (a -> fn)) => BuildCurriedIO (Param a :> rest) r fn' Source # | |
Defined in Test.MockCat.Internal.Builder | |
buildCurriedIO :: BuildCurriedIO args r fn => (args -> IO r) -> fn Source #
Build a curried IO function without hiding the IO layer.
class MockBuilder params fn verifyParams | params -> fn, params -> verifyParams where Source #
Class for creating a stub corresponding to the parameter description.
Instances
| MockBuilder (Param r) r () Source # | Instance for building a stub for a value (backward compatibility). |
| MockBuilder (IO r) (IO r) () Source # | Instance for building a stub for a constant IO action. |
| MockBuilder (Head :> Param r) r () Source # | Instance for building a stub for a constant value (with Head marker). |
| (p ~ (Param a :> rest), ParamConstraints p args r, BuildCurried args r fn) => MockBuilder (Param a :> rest) fn args Source # | Overlapping instance for building a stub defined via chained |
| (ParamConstraints params args r, BuildCurried args r fn) => MockBuilder (Cases params ()) fn args Source # | Overlapping instance for building a stub when parameters are provided as |
| MockBuilder (Cases (IO a) ()) (IO a) () Source # | Instance for building a stub for `Cases (IO a) ()`. |
buildMock :: (MonadIO m, MockBuilder params fn verifyParams) => Maybe MockName -> params -> m (BuiltMock fn verifyParams) Source #
class MockIOBuilder params fn verifyParams | params -> fn, params -> verifyParams where Source #
Class for building mocks whose resulting functions stay in IO.
Instances
| (p ~ (Param a :> rest), ParamConstraints p args r, BuildCurriedIO args r fn) => MockIOBuilder (Param a :> rest) fn args Source # | |
| (ParamConstraints params args r, BuildCurriedIO args r fn) => MockIOBuilder (Cases params ()) fn args Source # | |
buildWithRecorder :: (MonadIO m, BuildCurried args r fn) => (TVar (InvocationRecord args) -> args -> IO r) -> m (BuiltMock fn args) Source #
buildWithRecorderIO :: (MonadIO m, BuildCurriedIO args r fn) => (TVar (InvocationRecord args) -> args -> IO r) -> m (BuiltMock fn args) Source #
invocationRecord :: InvocationRecord params Source #
appendCalledParams :: TVar (InvocationRecord params) -> params -> IO () Source #
readInvocationCount :: Eq params => TVar (InvocationRecord params) -> params -> IO Int Source #
incrementInvocationCount :: Eq params => TVar (InvocationRecord params) -> params -> IO () Source #
incrementCount :: Eq k => k -> InvocationCounts k -> InvocationCounts k Source #
class StubBuilder params fn | params -> fn where Source #
Instances
| StubBuilder (Param r) r Source # | Instance for building a mock for a function with a single parameter. |
| StubBuilder (IO r) (IO r) Source # | Instance for building a mock for a constant function. |
| (p ~ (Param a :> rest), ParamConstraints p args r, BuildCurried args r fn, BuildCurriedPure args r fn) => StubBuilder (Param a :> rest) fn Source # | |
| (ParamConstraints params args r, BuildCurried args r fn, BuildCurriedPure args r fn) => StubBuilder (Cases params ()) fn Source # | Overlapping instance for building a mock for a function with multiple parameters.
This instance is used when the parameter type is a |
| StubBuilder (Cases (IO a) ()) (IO a) Source # | Instance for building a mock for a function with multiple parameters. |
type ParamConstraints params args r = (ProjectionArgs params, ProjectionReturn params, ArgsOf params ~ args, ReturnOf params ~ Param r, Eq args, Show args) Source #
extractReturnValue :: ParamConstraints params args r => Maybe MockName -> params -> args -> r Source #
findReturnValueWithPure :: ParamConstraints params args r => Maybe MockName -> InvocationList params -> args -> r Source #
findReturnValuePure :: ParamConstraints params args r => InvocationList params -> args -> Maybe r Source #
type InvocationStep args r = InvocationRecord args -> (InvocationRecord args, Either Message r) Source #
executeInvocation :: TVar (InvocationRecord args) -> InvocationStep args r -> IO r Source #
singleInvocationStep :: ParamConstraints params args r => Maybe MockName -> params -> args -> InvocationStep args r Source #
casesInvocationStep :: ParamConstraints params args r => Maybe MockName -> InvocationList params -> args -> InvocationStep args r Source #