packages feed

mattermost-api-qc (empty) → 30802.1.0

raw patch · 5 files changed

+156/−0 lines, 5 filesdep +QuickCheckdep +basedep +containerssetup-changed

Dependencies added: QuickCheck, base, containers, mattermost-api, text, time

Files

+ ChangeLog.md view
@@ -0,0 +1,15 @@+# Revision history for mattermost-api-qc++## 30802.1.0  -- 2017-05-13++* Switched from Arbitrary instances to Gen x functions.+* Removed dependency on quickcheck-instances+* Updated for mattermost-api version 30802.1.0++## 30802.0.0  -- 2017-05-11++* Updated for mattermost-api version 30802.0.0+	+## 30701.1.0  -- 2017-05-09++* First version.
+ LICENSE view
@@ -0,0 +1,13 @@+Copyright (c) 2017 Kevin Quick++Permission to use, copy, modify, and/or distribute this software for any purpose+with or without fee is hereby granted, provided that the above copyright notice+and this permission notice appear in all copies.++THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF+THIS SOFTWARE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ mattermost-api-qc.cabal view
@@ -0,0 +1,30 @@+name:                mattermost-api-qc+version:             30802.1.0+synopsis:            QuickCheck instances for the Mattermost client API library+homepage:            https://github.com/matterhorn-chat/mattermost-api-qc+license:             ISC+license-file:        LICENSE+author:              Kevin Quick+maintainer:          kquick@galois.com+copyright:           2017 Kevin Quick+category:            Testing+build-type:          Simple+extra-source-files:  ChangeLog.md+cabal-version:       >=1.10+tested-with:         GHC == 8.0.2++source-repository    head+  type: git+  location: https://github.com/matterhorn-chat/mattermost-api-qc.git++library+  exposed-modules:     Network.Mattermost.QuickCheck+  build-depends:       base >=4.4 && <5+                     , containers+                     , mattermost-api == 30802.1.0+                     , QuickCheck+                     , text+                     , time+  hs-source-dirs:      src+  default-language:    Haskell2010+  ghc-options:         -Wall
+ src/Network/Mattermost/QuickCheck.hs view
@@ -0,0 +1,96 @@+module Network.Mattermost.QuickCheck where++import qualified Data.Sequence as Seq+import qualified Data.Text as T+import           Data.Time.Calendar (Day(..))+import           Data.Time.Clock (UTCTime(..), secondsToDiffTime)+import           Network.Mattermost.Types+import           Test.QuickCheck+++genText :: Gen T.Text+genText = sized $ \s ->+          oneof [ return T.empty+                 , return $ T.singleton 'a'+                 , return $ T.singleton '1'+                 , return $ T.pack "b2"+                 , return $ T.singleton ' '+                 , return $ T.singleton '\n'+                 , return $ T.singleton '\r'+                 , return $ T.singleton '\t'+                 , return $ T.pack " \n\r\t"+                 , T.pack <$> vectorOf s arbitrary+                 ]++genMaybe :: Gen a -> Gen (Maybe a)+genMaybe g = frequency [ (1, return Nothing)+                       , (11, Just <$> g)+                       ]++genSeq :: Gen a -> Gen (Seq.Seq a)+genSeq g = sized $ \s ->+           frequency [ (1, return Seq.empty)+                     , (9, Seq.fromList <$> vectorOf s g)+                     ]++genTime :: Gen UTCTime+genTime = UTCTime+           <$> (ModifiedJulianDay <$> (2000 +) <$> arbitrary)+           <*> (secondsToDiffTime <$> choose (0, 86400))++genPostId :: Gen PostId+genPostId = PI . Id <$> genText++genChannelId :: Gen ChannelId+genChannelId = CI . Id <$> genText++genFileId :: Gen FileId+genFileId = FI . Id <$> genText++genUserId :: Gen UserId+genUserId = UI . Id <$> genText++genType :: Gen Type+genType = oneof [ return Ordinary+                , return Direct+                , return Private+                , return Group+                , return SystemHeaderChange+                , Unknown <$> genText+                ]++genPostProps :: Gen PostProps+genPostProps = PostProps+               <$> genMaybe genText+               <*> genMaybe genText+               <*> attached+               <*> genMaybe genText+               <*> genMaybe genText+++attached :: Gen (Maybe (Seq.Seq PostPropAttachment))+attached = oneof [ return Nothing+                 , Just <$> (genSeq genPostPropAttachment)+                 ]++genPostPropAttachment :: Gen PostPropAttachment+genPostPropAttachment = PostPropAttachment <$> genText <*> genText++genPost :: Gen Post+genPost = Post+          <$> genMaybe genPostId+          <*> genMaybe genPostId+          <*> genPostProps+          <*> genText+          <*> genSeq genFileId+          <*> genPostId+          <*> genType+          <*> genText+          <*> genMaybe genTime+          <*> genText+          <*> genTime+          <*> genMaybe genUserId+          <*> genTime+          <*> genMaybe genPostId+          <*> genChannelId+          <*> arbitrary