module TestInstances where import Control.Error (hush) import Test.QuickCheck.Gen (suchThatMap, elements) import Test.QuickCheck.Instances () import Test.QuickCheck.Arbitrary.Generic import qualified Data.MIME as MIME import qualified Data.XML.Types as XML import qualified Network.Protocol.XMPP as XMPP import qualified Network.Protocol.XMPP.Internal as XMPP import qualified Data.Text.IDN.StringPrep as SP instance Arbitrary XML.Instruction where arbitrary = genericArbitrary shrink = genericShrink instance Arbitrary XML.Node where arbitrary = genericArbitrary shrink = genericShrink instance Arbitrary XML.Content where arbitrary = genericArbitrary shrink = genericShrink instance Arbitrary XML.Name where arbitrary = genericArbitrary shrink = genericShrink instance Arbitrary XML.Element where arbitrary = genericArbitrary shrink = genericShrink instance Arbitrary XMPP.Resource where arbitrary = XMPP.Resource <$> suchThatMap arbitrary (hush . SP.stringprep SP.xmppResource SP.defaultFlags) instance Arbitrary XMPP.Domain where arbitrary = XMPP.Domain <$> suchThatMap arbitrary (hush . SP.stringprep SP.nameprep SP.defaultFlags) instance Arbitrary XMPP.Node where arbitrary = XMPP.Node <$> suchThatMap arbitrary (hush . SP.stringprep SP.xmppNode SP.defaultFlags) instance Arbitrary XMPP.JID where arbitrary = XMPP.JID <$> arbitrary <*> arbitrary <*> arbitrary instance Arbitrary XMPP.IQType where arbitrary = elements [ XMPP.IQGet, XMPP.IQSet, XMPP.IQResult, XMPP.IQError ] instance Arbitrary XMPP.IQ where arbitrary = XMPP.IQ <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary instance Arbitrary MIME.Domain where arbitrary = genericArbitrary shrink = genericShrink