From 55074a07fdb847749e4f57c6c2eac4ffab1d48b6 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 18 Feb 2016 21:59:00 +0000 Subject: Api tests for Thermoprint.Server --- server/src/Thermoprint/Server/Queue.hs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'server/src/Thermoprint/Server') diff --git a/server/src/Thermoprint/Server/Queue.hs b/server/src/Thermoprint/Server/Queue.hs index cc87886..3c8fb9e 100644 --- a/server/src/Thermoprint/Server/Queue.hs +++ b/server/src/Thermoprint/Server/Queue.hs @@ -46,6 +46,11 @@ import Data.Foldable import Data.Monoid import Data.Ord +import Test.QuickCheck.Arbitrary (Arbitrary(..), CoArbitrary(..)) +import Test.QuickCheck.Gen (Gen, scale) +import Test.QuickCheck.Instances +import Test.QuickCheck.Modifiers + -- | Zipper for 'Seq QueueEntry' with additional support for 'PrintingError' in the section after point data Queue = Queue { pending :: Seq QueueEntry -- ^ Pending jobs, closest last @@ -54,6 +59,14 @@ data Queue = Queue } deriving (Typeable, Generic, NFData, Show) +instance Arbitrary Queue where + arbitrary = Queue + <$> scale (`div` 2) arbitrary + <*> arbitrary + <*> scale (`div` 2) arbitrary + +instance CoArbitrary Queue + class HasQueue a where extractQueue :: a -> TVar Queue @@ -73,6 +86,12 @@ data QueueEntry = QueueEntry } deriving (Typeable, Generic, NFData, Eq, Ord, Show) +instance Arbitrary QueueEntry where + arbitrary = QueueEntry <$> (fromIntegral . getNonNegative <$> (arbitrary :: Gen (NonNegative Integer))) <*> arbitrary + +instance CoArbitrary QueueEntry where + coarbitrary QueueEntry{..} = coarbitrary created . coarbitrary (fromIntegral jobId :: Integer) + data QueueItem = Pending Int QueueEntry | Current QueueEntry | History Int QueueEntry (Maybe PrintingError) instance Eq QueueItem where -- cgit v1.2.3