assumpta-core-0.1.0.2: Core functionality for an SMTP client

Safe HaskellNone
LanguageHaskell2010

Network.Mail.Assumpta.Mock

Description

Provides MockSmtp, a mock instance of MonadSmtp, which simply records (via use of a Writer) any bytes sent through it. (Making it technically a "spy", I think -- see https://martinfowler.com/articles/mocksArentStubs.html.)

Plus a transformer version, MockSmtpT.

Sample use:

>>> runMockSmtp (noop >> quit)
"NOOP\r\nQUIT\r\n"

For a slightly longer example, see "simple-client-session-mock-bs.hs" in the "examples" directory.

Synopsis

Documentation

newtype MockSmtpT m a Source #

Concrete transformer for mock MonadSmtp monads.

Constructors

MockSmtpT 
Instances
MonadTrans MockSmtpT Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Methods

lift :: Monad m => m a -> MockSmtpT m a #

Monad m => MonadWriter ByteString (MockSmtpT m) Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Monad m => Monad (MockSmtpT m) Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Methods

(>>=) :: MockSmtpT m a -> (a -> MockSmtpT m b) -> MockSmtpT m b #

(>>) :: MockSmtpT m a -> MockSmtpT m b -> MockSmtpT m b #

return :: a -> MockSmtpT m a #

fail :: String -> MockSmtpT m a #

Functor m => Functor (MockSmtpT m) Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Methods

fmap :: (a -> b) -> MockSmtpT m a -> MockSmtpT m b #

(<$) :: a -> MockSmtpT m b -> MockSmtpT m a #

MonadFix m => MonadFix (MockSmtpT m) Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Methods

mfix :: (a -> MockSmtpT m a) -> MockSmtpT m a #

Applicative m => Applicative (MockSmtpT m) Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Methods

pure :: a -> MockSmtpT m a #

(<*>) :: MockSmtpT m (a -> b) -> MockSmtpT m a -> MockSmtpT m b #

liftA2 :: (a -> b -> c) -> MockSmtpT m a -> MockSmtpT m b -> MockSmtpT m c #

(*>) :: MockSmtpT m a -> MockSmtpT m b -> MockSmtpT m b #

(<*) :: MockSmtpT m a -> MockSmtpT m b -> MockSmtpT m a #

MonadIO m => MonadIO (MockSmtpT m) Source # 
Instance details

Defined in Network.Mail.Assumpta.Mock

Methods

liftIO :: IO a -> MockSmtpT m a #

Monad m => MonadSmtp (MockSmtpT m) Source #

In this mock monad, send writes to the underlying Writer; expectCode and tlsUpgrade are no-ops; and getReply returns an empty list. (In breach of the req. that a reply always contains at least one line.)

Instance details

Defined in Network.Mail.Assumpta.Mock

liftMockSmtpT :: Monad m => m a -> MockSmtpT m a Source #

Lift into MockSmtpT.

runMockSmtp :: MockSmtp a -> ByteString Source #

Run an MonadSmtp computation using a mock, and return the ByteString content written.