mirror of
https://github.com/typeable/xml-isogen.git
synced 2024-10-04 04:57:45 +03:00
Upd: add tests, but they work
This commit is contained in:
parent
4340262a85
commit
6e11429d3d
@ -5,3 +5,4 @@ packages:
|
||||
|
||||
extra-deps:
|
||||
- dom-parser-3.0.0
|
||||
- generic-arbitrary-0.1.0
|
||||
|
@ -5,3 +5,4 @@ packages:
|
||||
|
||||
extra-deps:
|
||||
- dom-parser-3.0.0
|
||||
- generic-arbitrary-0.1.0
|
||||
|
@ -5,3 +5,4 @@ packages:
|
||||
|
||||
extra-deps:
|
||||
- dom-parser-3.0.0
|
||||
- generic-arbitrary-0.1.0
|
||||
|
26
test/Main.hs
26
test/Main.hs
@ -1,7 +1,31 @@
|
||||
{-# OPTIONS -fno-warn-unused-imports #-}
|
||||
module Main where
|
||||
|
||||
import Control.Exception
|
||||
import Text.XML
|
||||
import Data.Default
|
||||
import System.IO.Unsafe
|
||||
import Test.Hspec
|
||||
import Test.Hspec.QuickCheck
|
||||
import Test.QuickCheck
|
||||
import TestDefs
|
||||
import Text.XML.DOM.Parser
|
||||
import Text.XML.Writer
|
||||
|
||||
isomorphicFoo :: XmlRoot -> Property
|
||||
isomorphicFoo a = a === isogen
|
||||
where
|
||||
isogen :: XmlRoot
|
||||
isogen =
|
||||
let
|
||||
doc = document "Root" $ toXML a
|
||||
res = case runDomParser doc fromDom of
|
||||
Left e -> unsafePerformIO $ do
|
||||
pprint doc
|
||||
throwIO e
|
||||
Right a' -> a'
|
||||
in res
|
||||
|
||||
main :: IO ()
|
||||
main = return ()
|
||||
main = hspec $ do
|
||||
prop "isomorphic" isomorphicFoo
|
||||
|
@ -1,12 +1,14 @@
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
{-# OPTIONS -ddump-splices #-}
|
||||
|
||||
module TestDefs where
|
||||
|
||||
import Data.List.NonEmpty
|
||||
import Data.THGen.XML
|
||||
import GHC.Generics (Generic)
|
||||
import Test.QuickCheck.Arbitrary.Generic
|
||||
import Test.QuickCheck.Instances ()
|
||||
|
||||
"Bar" =:= enum
|
||||
& "baroque"
|
||||
@ -25,3 +27,23 @@ import Data.THGen.XML
|
||||
+ "Bar"
|
||||
? "Baz" [t|Text|]
|
||||
!% "Quux"
|
||||
?% "Muux" [t|XmlQuux|]
|
||||
|
||||
"Root" =:= record
|
||||
! "Foo"
|
||||
|
||||
deriving instance Generic XmlRoot
|
||||
|
||||
instance Arbitrary XmlRoot where
|
||||
arbitrary = genericArbitrary
|
||||
shrink = genericShrink
|
||||
|
||||
deriving instance Generic XmlFoo
|
||||
|
||||
instance Arbitrary XmlFoo where
|
||||
arbitrary = genericArbitrary
|
||||
shrink = genericShrink
|
||||
|
||||
instance Arbitrary (NonEmpty XmlBar) where
|
||||
arbitrary = genericArbitrary
|
||||
shrink = genericShrink
|
||||
|
@ -45,17 +45,35 @@ library
|
||||
hs-source-dirs: src
|
||||
|
||||
default-language: Haskell2010
|
||||
default-extensions: TemplateHaskell
|
||||
LambdaCase
|
||||
FlexibleInstances
|
||||
TypeFamilies
|
||||
TupleSections
|
||||
default-extensions: FlexibleInstances
|
||||
, LambdaCase
|
||||
, TemplateHaskell
|
||||
, TupleSections
|
||||
, TypeFamilies
|
||||
|
||||
test-suite spec
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: test
|
||||
main-is: Main.hs
|
||||
other-modules: TestDefs
|
||||
build-depends: base, xml-isogen
|
||||
build-depends: base
|
||||
, QuickCheck
|
||||
, data-default
|
||||
, dom-parser
|
||||
, generic-arbitrary
|
||||
, hspec
|
||||
, quickcheck-instances
|
||||
, semigroups
|
||||
, xml-conduit
|
||||
, xml-conduit-writer
|
||||
, xml-isogen
|
||||
default-language: Haskell2010
|
||||
default-extensions: DeriveGeneric
|
||||
, FlexibleInstances
|
||||
, LambdaCase
|
||||
, OverloadedStrings
|
||||
, StandaloneDeriving
|
||||
, TemplateHaskell
|
||||
, TupleSections
|
||||
, TypeFamilies
|
||||
ghc-options: -Wall -fno-warn-missing-signatures
|
||||
|
Loading…
Reference in New Issue
Block a user