| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Test.MockCat.Param
Description
This module provides types and functions for representing mock parameters. Parameters are used both for setting up expectations and for verification.
Synopsis
- data Param v where
- ExpectValue :: forall v. (Show v, Eq v) => v -> String -> Param v
- ExpectCondition :: forall v. (v -> Bool) -> String -> Param v
- ValueWrapper :: forall v. v -> String -> Param v
- class WrapParam a where
- value :: Param v -> v
- param :: (Show v, Eq v) => v -> Param v
- class ConsGen a b where
- expect :: (a -> Bool) -> String -> Param a
- expect_ :: (a -> Bool) -> Param a
- any :: Param a
- type family ArgsOf params where ...
- class ProjectionArgs params
- projArgs :: ProjectionArgs params => params -> ArgsOf params
- type family ReturnOf params where ...
- class ProjectionReturn param
- projReturn :: ProjectionReturn param => param -> ReturnOf param
- returnValue :: (ProjectionReturn params, ReturnOf params ~ Param r) => params -> r
- type family Normalize a where ...
- class ToParamArg a where
- toParamArg :: a -> Normalize a
Documentation
Constructors
| ExpectValue :: forall v. (Show v, Eq v) => v -> String -> Param v | A parameter that expects a specific value. |
| ExpectCondition :: forall v. (v -> Bool) -> String -> Param v | A parameter that expects a value satisfying a condition. |
| ValueWrapper :: forall v. v -> String -> Param v | A parameter that wraps a value without Eq or Show constraints. |
Instances
class WrapParam a where Source #
Class for wrapping raw values into Param. For types with Show and Eq, it uses ExpectValue to enable comparison and display. For other types, it uses ValueWrapper.
Instances
| WrapParam Text Source # | |
| WrapParam String Source # | |
| WrapParam Integer Source # | |
| WrapParam Bool Source # | |
| WrapParam Char Source # | |
| WrapParam Double Source # | |
| WrapParam Float Source # | |
| WrapParam Int Source # | |
| WrapParam a Source # | |
Defined in Test.MockCat.Param | |
| (Show a, Eq a) => WrapParam (Maybe a) Source # | |
| (Show a, Eq a) => WrapParam [a] Source # | |
Defined in Test.MockCat.Param | |
expect :: (a -> Bool) -> String -> Param a Source #
Create a conditional parameter with a label. When calling a mock function, if the argument does not satisfy this condition, an error occurs. In this case, the specified label is included in the error message.
expect (>5) ">5"
expect_ :: (a -> Bool) -> Param a Source #
Create a conditional parameter without a label. The error message is displayed as "[some condition]".
expect_ (>5)
Make a parameter to which any value is expected to apply.
Use with type application to specify the type: any @String
f <- mock $ any ~> True
class ProjectionArgs params Source #
Class for projecting the arguments of the parameter.
Minimal complete definition
projArgs :: ProjectionArgs params => params -> ArgsOf params Source #
class ProjectionReturn param Source #
Minimal complete definition
Instances
| ProjectionReturn (Head :> Param r) Source # | |
| ProjectionReturn (Param a :> Param r) Source # | |
| (ProjectionReturn rest, ReturnOf (Param a :> rest) ~ ReturnOf rest) => ProjectionReturn (Param a :> rest) Source # | |
Defined in Test.MockCat.Param | |
projReturn :: ProjectionReturn param => param -> ReturnOf param Source #
returnValue :: (ProjectionReturn params, ReturnOf params ~ Param r) => params -> r Source #
class ToParamArg a where Source #
Methods
toParamArg :: a -> Normalize a Source #
Instances
| (Normalize a ~ Param a, WrapParam a) => ToParamArg a Source # | |
Defined in Test.MockCat.Param Methods toParamArg :: a -> Normalize a Source # | |
| ToParamArg (Param a) Source # | |
Defined in Test.MockCat.Param | |
| Typeable (a -> b) => ToParamArg (a -> b) Source # | |
Defined in Test.MockCat.Param Methods toParamArg :: (a -> b) -> Normalize (a -> b) Source # | |