@@ -2,21 +2,21 @@ module Test.Main where
22
33import Prelude
44
5- import Control.Monad.Eff (Eff ())
65import Control.Monad.Eff.Console (log )
7- import Data.Maybe (Maybe (..))
8- import Data.Maybe.Unsafe (fromJust )
6+
7+ import Data.Argonaut.Core (Json , JNull , toObject , toArray , toString , toNumber , toBoolean , toNull , fromObject , foldJsonObject , fromNumber , fromArray , foldJsonArray , fromString , foldJsonString , foldJsonNumber , fromBoolean , foldJsonBoolean , fromNull , foldJsonNull , foldJson , isObject , isArray , isString , isNumber , isBoolean , isNull )
8+ import Data.Argonaut.Parser (jsonParser )
9+ import Data.Argonaut.Printer (printJson )
10+ import Data.Array as A
911import Data.Either (isLeft , isRight , Either (..))
10- import Data.Tuple (Tuple (..))
1112import Data.Foldable (for_ )
12- import qualified Data.Array as A
13- import qualified Data.StrMap as M
13+ import Data.Maybe (Maybe (..), fromJust )
14+ import Data.StrMap as M
15+ import Data.Tuple (Tuple (..))
1416
15- import Data.Argonaut.Core
16- import Data.Argonaut.Parser
17- import Data.Argonaut.Printer
17+ import Partial.Unsafe (unsafePartial )
1818
19- import Test.StrongCheck (assert , (<?>), quickCheck , Result ())
19+ import Test.StrongCheck (SC , assert , (<?>), quickCheck , Result ())
2020
2121foreign import thisIsNull :: Json
2222foreign import thisIsBoolean :: Json
@@ -26,7 +26,7 @@ foreign import thisIsArray :: Json
2626foreign import thisIsObject :: Json
2727foreign import nil :: JNull
2828
29- isTest :: Eff _ Unit
29+ isTest :: SC () Unit
3030isTest = do
3131 assert (isNull thisIsNull <?> " Error in null test" )
3232 assert (isBoolean thisIsBoolean <?> " Error in boolean test" )
@@ -35,7 +35,7 @@ isTest = do
3535 assert (isArray thisIsArray <?> " Error in array test" )
3636 assert (isObject thisIsObject <?> " Error in object test" )
3737
38- foldTest :: Eff _ Unit
38+ foldTest :: SC () Unit
3939foldTest = do
4040 assert (foldFn thisIsNull == " null" <?> " Error in foldJson null" )
4141 assert (foldFn thisIsBoolean == " boolean" <?> " Error in foldJson boolean" )
@@ -44,7 +44,6 @@ foldTest = do
4444 assert (foldFn thisIsArray == " array" <?> " Error in foldJson array" )
4545 assert (foldFn thisIsObject == " object" <?> " Error in foldJson object" )
4646
47-
4847foldFn :: Json -> String
4948foldFn = foldJson
5049 (const " null" )
@@ -55,7 +54,7 @@ foldFn = foldJson
5554 (const " object" )
5655
5756cases :: Array Json
58- cases =
57+ cases =
5958 [ thisIsNull
6059 , thisIsBoolean
6160 , thisIsNumber
@@ -64,7 +63,7 @@ cases =
6463 , thisIsObject
6564 ]
6665
67- foldXXX :: Eff _ Unit
66+ foldXXX :: SC () Unit
6867foldXXX = do
6968 assert ((foldJsonNull " not null" (const " null" ) <$> cases) ==
7069 [" null" , " not null" , " not null" , " not null" , " not null" , " not null" ] <?>
@@ -88,7 +87,7 @@ foldXXX = do
8887 " Error in foldJsonObject" )
8988
9089
91- fromTest :: Eff _ Unit
90+ fromTest :: SC () Unit
9291fromTest = do
9392 assert ((foldJsonNull false (const true ) (fromNull nil)) <?> " Error in fromNull" )
9493 quickCheck (\bool -> foldJsonBoolean Nothing Just (fromBoolean bool) == Just bool <?> " Error in fromBoolean" )
@@ -105,7 +104,7 @@ fromTest = do
105104 in (foldJsonObject Nothing Just (fromObject sm) == Just sm)
106105 <?> " Error in fromObject" )
107106
108- toTest :: Eff _ Unit
107+ toTest :: SC () Unit
109108toTest = do
110109 assert (assertion toNull thisIsNull " Error in toNull" )
111110 assert (assertion toBoolean thisIsBoolean " Error in toBoolean" )
@@ -117,25 +116,25 @@ toTest = do
117116 assertion :: forall a . (Eq a ) => (Json -> Maybe a ) -> Json -> String -> Result
118117 assertion fn j msg =
119118 let forCases = A .catMaybes (fn <$> cases)
120- exact = A .singleton $ fromJust $ fn j
119+ exact = A .singleton $ unsafePartial fromJust $ fn j
121120 in forCases == exact <?> msg
122121
123122
124- parserTest :: Eff _ Unit
123+ parserTest :: SC () Unit
125124parserTest = do
126125 assert ((isRight (jsonParser " {\" foo\" : 1}" )) <?> " Error in jsonParser" )
127126 assert ((isLeft (jsonParser " \\\f fff" )) <?> " Error in jsonParser" )
128127
129- printJsonTest :: Eff _ Unit
128+ printJsonTest :: SC () Unit
130129printJsonTest = do
131130 for_ cases (assert <<< assertion)
132131 where
133132 assertion :: Json -> Result
134133 assertion j = ((jsonParser (printJson j)) == Right j) <?> " Error in printJson"
135134
136- main :: Eff _ Unit
135+ main :: SC () Unit
137136main = do
138- log " isXxx tests"
137+ log " isXxx tests"
139138 isTest
140139 log " foldJson tests"
141140 foldTest
@@ -147,5 +146,5 @@ main = do
147146 toTest
148147 log " jsonParser tests"
149148 parserTest
150- log " printJson tests"
149+ log " printJson tests"
151150 printJsonTest
0 commit comments