Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data MatchResult where
- NoMatch :: Int -> MatchResult
- Match :: MatchResult
- class Typeable cls => MockableBase (cls :: (Type -> Type) -> Constraint) where
- data Action cls :: Symbol -> (Type -> Type) -> Type -> Type
- data Matcher cls :: Symbol -> (Type -> Type) -> Type -> Type
- showAction :: Action cls name m a -> String
- showMatcher :: Maybe (Action cls name m a) -> Matcher cls name m b -> String
- matchAction :: Matcher cls name m a -> Action cls name m a -> MatchResult
- class MockableBase cls => Mockable (cls :: (Type -> Type) -> Constraint) where
- setupMockable :: (MonadIO m, Typeable m) => proxy cls -> MockT m ()
Documentation
data MatchResult where Source #
The result of matching a
with an Matcher
a
. Because the
types should already guarantee that the methods match, all that's left is to
match arguments.Action
b
NoMatch :: Int -> MatchResult | No match. The int is the number of arguments that don't match. |
Match :: MatchResult | Match. Stores a witness to the equality of return types. |
class Typeable cls => MockableBase (cls :: (Type -> Type) -> Constraint) where Source #
A base class for Monad
subclasses whose methods can be mocked. You
usually want to generate this instance using makeMockable
,
makeMockableBase
, deriveMockable
, or
deriveMockableBase
. It's just boilerplate.
data Action cls :: Symbol -> (Type -> Type) -> Type -> Type Source #
An action that is performed. This data type will have one constructor for each method.
data Matcher cls :: Symbol -> (Type -> Type) -> Type -> Type Source #
A specification for matching actions. The actual arguments should be replaced with predicates.
showAction :: Action cls name m a -> String Source #
Gets a text description of an Action
, for use in error messages.
showMatcher :: Maybe (Action cls name m a) -> Matcher cls name m b -> String Source #
Gets a text description of a Matcher
, for use in error messages.
matchAction :: Matcher cls name m a -> Action cls name m a -> MatchResult Source #
class MockableBase cls => Mockable (cls :: (Type -> Type) -> Constraint) where Source #
A class for Monad
subclasses whose methods can be mocked. This class
augments MockableBase
with a setup method that is run before HMock touches
the Monad
subclass for the first time. The default implementation does
nothing, but you can derive your own instances that add setup behavior.
Nothing