@@ -4,7 +4,7 @@ module Main (main) where
4
4
5
5
import Network.JsonRpc.Server
6
6
import TestTypes
7
- import Data.List ((\\) , sort )
7
+ import Data.List ((\\) )
8
8
import Data.Aeson
9
9
import Data.Aeson.Types
10
10
import Data.Text (Text )
@@ -60,48 +60,48 @@ testEncodeErrorWithData = (fromByteString $ encode $ toJSON err) @?= Just testEr
60
60
errorData = ([' \x03BB ' ], True , () )
61
61
62
62
testInvalidJson :: Assertion
63
- testInvalidJson = checkResponseWithSubtract " 5" IdNull (- 32700 )
63
+ testInvalidJson = checkResponseWithSubtract " 5" idNull (- 32700 )
64
64
65
65
testInvalidJsonRpc :: Assertion
66
- testInvalidJsonRpc = checkResponseWithSubtract (encode $ object [" id" .= (10 :: Int )]) IdNull (- 32600 )
66
+ testInvalidJsonRpc = checkResponseWithSubtract (encode $ object [" id" .= (10 :: Int )]) idNull (- 32600 )
67
67
68
68
testEmptyBatchCall :: Assertion
69
- testEmptyBatchCall = checkResponseWithSubtract (encode emptyArray) IdNull (- 32600 )
69
+ testEmptyBatchCall = checkResponseWithSubtract (encode emptyArray) idNull (- 32600 )
70
70
71
71
testWrongVersion :: Assertion
72
- testWrongVersion = checkResponseWithSubtract (encode requestWrongVersion) IdNull (- 32600 )
72
+ testWrongVersion = checkResponseWithSubtract (encode requestWrongVersion) idNull (- 32600 )
73
73
where requestWrongVersion = Object $ H. insert versionKey (String " 1" ) hm
74
- Object hm = toJSON $ subtractRequestNamed [(" a1" , Number 4 )] (IdNumber 10 )
74
+ Object hm = toJSON $ subtractRequestNamed [(" a1" , Number 4 )] (idNumber 10 )
75
75
76
76
testMethodNotFound :: Assertion
77
77
testMethodNotFound = checkResponseWithSubtract (encode request) i (- 32601 )
78
78
where request = TestRequest " ad" Nothing (Just i)
79
- i = IdNumber 3
79
+ i = idNumber 3
80
80
81
81
testWrongMethodNameCapitalization :: Assertion
82
82
testWrongMethodNameCapitalization = checkResponseWithSubtract (encode request) i (- 32601 )
83
83
where request = TestRequest " Add" Nothing (Just i)
84
- i = IdNull
84
+ i = idNull
85
85
86
86
testMissingRequiredNamedArg :: Assertion
87
87
testMissingRequiredNamedArg = checkResponseWithSubtract (encode request) i (- 32602 )
88
88
where request = subtractRequestNamed [(" A1" , Number 1 ), (" a2" , Number 20 )] i
89
- i = IdNumber 2
89
+ i = idNumber 2
90
90
91
91
testMissingRequiredUnnamedArg :: Assertion
92
92
testMissingRequiredUnnamedArg = checkResponseWithSubtract (encode request) i (- 32602 )
93
93
where request = TestRequest " subtract 2" (Just $ Right $ V. fromList [Number 0 ]) (Just i)
94
- i = IdString " "
94
+ i = idString " "
95
95
96
96
testWrongArgType :: Assertion
97
97
testWrongArgType = checkResponseWithSubtract (encode request) i (- 32602 )
98
98
where request = subtractRequestNamed [(" a1" , Number 1 ), (" a2" , Bool True )] i
99
- i = IdString " ABC"
99
+ i = idString " ABC"
100
100
101
101
testDisallowExtraUnnamedArg :: Assertion
102
102
testDisallowExtraUnnamedArg = checkResponseWithSubtract (encode request) i (- 32602 )
103
103
where request = subtractRequestUnnamed (map Number [1 , 2 , 3 ]) i
104
- i = IdString " i"
104
+ i = idString " i"
105
105
106
106
testNoResponseToInvalidNotification :: Assertion
107
107
testNoResponseToInvalidNotification = runIdentity response @?= Nothing
@@ -114,8 +114,8 @@ testBatch = assert (fromJust (fromByteString =<< runIdentity response) `equalCon
114
114
response = call (toMethods [subtractMethod]) $ encode request
115
115
request = [subtractRequestNamed (toArgs 10 8 ) i1, subtractRequestNamed (toArgs 24 20 ) i2]
116
116
toArgs x y = [(" a1" , Number x), (" a2" , Number y)]
117
- i1 = IdString " 1"
118
- i2 = IdString " 2"
117
+ i1 = idString " 1"
118
+ i2 = idString " 2"
119
119
120
120
testBatchNotifications :: Assertion
121
121
testBatchNotifications = runState response 0 @?= (Nothing , 10 )
@@ -127,32 +127,32 @@ testAllowMissingVersion = (fromByteString =<< runIdentity response) @?= (Just $
127
127
where requestNoVersion = Object $ H. delete versionKey hm
128
128
Object hm = toJSON $ subtractRequestNamed [(" a1" , Number 1 )] i
129
129
response = call (toMethods [subtractMethod]) $ encode requestNoVersion
130
- i = IdNumber (- 1 )
130
+ i = idNumber (- 1 )
131
131
132
132
testAllowExtraNamedArg :: Assertion
133
133
testAllowExtraNamedArg = (fromByteString =<< runIdentity response) @?= (Just $ TestResponse i (Right $ Number (- 10 )))
134
134
where response = call (toMethods [subtractMethod]) $ encode request
135
135
request = subtractRequestNamed args i
136
136
args = [(" a1" , Number 10 ), (" a2" , Number 20 ), (" a3" , String " extra" )]
137
- i = IdString " ID"
137
+ i = idString " ID"
138
138
139
139
testDefaultNamedArg :: Assertion
140
140
testDefaultNamedArg = (fromByteString =<< runIdentity response) @?= (Just $ TestResponse i (Right $ Number 1000 ))
141
141
where response = call (toMethods [subtractMethod]) $ encode request
142
142
request = subtractRequestNamed args i
143
143
args = [(" a" , Number 500 ), (" a1" , Number 1000 )]
144
- i = IdNumber 3
144
+ i = idNumber 3
145
145
146
146
testDefaultUnnamedArg :: Assertion
147
147
testDefaultUnnamedArg = (fromByteString =<< runIdentity response) @?= (Just $ TestResponse i (Right $ Number 4 ))
148
148
where response = call (toMethods [subtractMethod]) $ encode request
149
149
request = subtractRequestUnnamed [Number 4 ] i
150
- i = IdNumber 0
150
+ i = idNumber 0
151
151
152
152
testNullId :: Assertion
153
- testNullId = (fromByteString =<< runIdentity response) @?= (Just $ TestResponse IdNull (Right $ Number (- 80 )))
153
+ testNullId = (fromByteString =<< runIdentity response) @?= (Just $ TestResponse idNull (Right $ Number (- 80 )))
154
154
where response = call (toMethods [subtractMethod]) $ encode request
155
- request = subtractRequestNamed args IdNull
155
+ request = subtractRequestNamed args idNull
156
156
args = [(" a2" , Number 70 ), (" a1" , Number (- 10 ))]
157
157
158
158
testNoArgs :: Assertion
@@ -167,14 +167,14 @@ testEmptyNamedArgs = compareGetTimeResult $ Just $ Left H.empty
167
167
testParallelizingTasks :: Assertion
168
168
testParallelizingTasks = assert $ do
169
169
a <- actual
170
- let ids = map fromIdNumber a
170
+ let ids = map rspId a
171
171
vals = map fromResult a
172
- return $ (sort ids == [1 , 2 ]) &&
173
- (sort vals == [" A" , " B" ])
172
+ return $ (equalContents ids $ map idNumber [1 , 2 ]) &&
173
+ (equalContents vals [" A" , " B" ])
174
174
where actual = (fromJust . fromByteString . fromJust) <$> (flip (callWithBatchStrategy parallelize) input =<< methods)
175
175
input = encode [ lockRequest 1 , unlockRequest (String " A" )
176
176
, unlockRequest (String " B" ), lockRequest 2 ]
177
- lockRequest i = TestRequest " lock" Nothing (Just $ IdNumber i)
177
+ lockRequest i = TestRequest " lock" Nothing (Just $ idNumber i)
178
178
unlockRequest str = TestRequest " unlock" (Just $ Right $ V. fromList [str]) Nothing
179
179
methods = createMethods <$> newEmptyMVar
180
180
createMethods lock = toMethods [lockMethod lock, unlockMethod lock]
@@ -185,7 +185,6 @@ testParallelizingTasks = assert $ do
185
185
where f :: String -> RpcResult IO ()
186
186
f val = liftIO $ putMVar lock val
187
187
fromResult r | Right (String str) <- rspResult r = str
188
- fromIdNumber r | IdNumber i <- rspId r = i
189
188
190
189
parallelize :: [IO a ] -> IO [a ]
191
190
parallelize tasks = do
@@ -205,7 +204,7 @@ compareGetTimeResult requestArgs = assertEqual "unexpected rpc response" expecte
205
204
((fromByteString . fromJust) <$> call (toMethods [getTimeMethod]) (encode getTimeRequest))
206
205
where expected = Just $ TestResponse i (Right $ Number 100 )
207
206
getTimeRequest = TestRequest " get_time_seconds" requestArgs (Just i)
208
- i = IdString " Id 1"
207
+ i = idString " Id 1"
209
208
210
209
subtractRequestNamed :: [(Text , Value )] -> TestId -> TestRequest
211
210
subtractRequestNamed args i = TestRequest " subtract 1" (Just $ Left $ H. fromList args) (Just i)
0 commit comments