Revision 942a9a6a htest/Test/Ganeti/Query/Query.hs

b/htest/Test/Ganeti/Query/Query.hs
68 68
    run (query cluster False (Query QRNode [field] EmptyFilter)) >>= resultProp
69 69
  QueryFieldsResult fdefs' <-
70 70
    resultProp $ queryFields (QueryFields QRNode [field])
71
  stop $ printTestCase ("Got unknown fields via query (" ++ show fdefs ++ ")")
72
         (hasUnknownFields fdefs) .&&.
73
         printTestCase ("Got unknown result status via query (" ++
74
                        show fdata ++ ")")
75
           (all (all ((/= RSUnknown) . rentryStatus)) fdata) .&&.
76
         printTestCase ("Got unknown fields via query fields (" ++ show fdefs'
77
                        ++ ")") (hasUnknownFields fdefs')
71
  stop $ conjoin
72
         [ printTestCase ("Got unknown fields via query (" ++
73
                          show fdefs ++ ")") (hasUnknownFields fdefs)
74
         , printTestCase ("Got unknown result status via query (" ++
75
                          show fdata ++ ")")
76
           (all (all ((/= RSUnknown) . rentryStatus)) fdata)
77
         , printTestCase ("Got unknown fields via query fields (" ++
78
                          show fdefs'++ ")") (hasUnknownFields fdefs')
79
         ]
78 80

  
79 81
-- | Tests that an unknown field is returned as such.
80 82
prop_queryNode_Unknown :: Property
......
86 88
    run (query cluster False (Query QRNode [field] EmptyFilter)) >>= resultProp
87 89
  QueryFieldsResult fdefs' <-
88 90
    resultProp $ queryFields (QueryFields QRNode [field])
89
  stop $ printTestCase ("Got known fields via query (" ++ show fdefs ++ ")")
90
         (not $ hasUnknownFields fdefs) .&&.
91
         printTestCase ("Got /= ResultUnknown result status via query (" ++
92
                        show fdata ++ ")")
93
           (all (all ((== RSUnknown) . rentryStatus)) fdata) .&&.
94
         printTestCase ("Got a Just in a result value (" ++
95
                        show fdata ++ ")")
96
           (all (all (isNothing . rentryValue)) fdata) .&&.
97
         printTestCase ("Got known fields via query fields (" ++ show fdefs'
98
                        ++ ")") (not $ hasUnknownFields fdefs')
91
  stop $ conjoin
92
         [ printTestCase ("Got known fields via query (" ++ show fdefs ++ ")")
93
           (not $ hasUnknownFields fdefs)
94
         , printTestCase ("Got /= ResultUnknown result status via query (" ++
95
                          show fdata ++ ")")
96
           (all (all ((== RSUnknown) . rentryStatus)) fdata)
97
         , printTestCase ("Got a Just in a result value (" ++
98
                          show fdata ++ ")")
99
           (all (all (isNothing . rentryValue)) fdata)
100
         , printTestCase ("Got known fields via query fields (" ++ show fdefs'
101
                          ++ ")") (not $ hasUnknownFields fdefs')
102
         ]
99 103

  
100 104
-- | Checks that a result type is conforming to a field definition.
101 105
checkResultType :: FieldDefinition -> ResultEntry -> Property
......
128 132
  forAll (elements (Map.keys nodeFieldsMap)) $ \field -> monadicIO $ do
129 133
  QueryResult fdefs fdata <-
130 134
    run (query cfg False (Query QRNode [field] EmptyFilter)) >>= resultProp
131
  stop $ printTestCase ("Inconsistent result entries (" ++ show fdata ++ ")")
132
         (conjoin $ map (conjoin . zipWith checkResultType fdefs) fdata) .&&.
133
         printTestCase "Wrong field definitions length"
134
           (length fdefs ==? 1) .&&.
135
         printTestCase "Wrong field result rows length"
136
           (all ((== 1) . length) fdata) .&&.
137
         printTestCase "Wrong number of result rows"
135
  stop $ conjoin
136
         [ printTestCase ("Inconsistent result entries (" ++ show fdata ++ ")")
137
           (conjoin $ map (conjoin . zipWith checkResultType fdefs) fdata)
138
         , printTestCase "Wrong field definitions length"
139
           (length fdefs ==? 1)
140
         , printTestCase "Wrong field result rows length"
141
           (all ((== 1) . length) fdata)
142
         , printTestCase "Wrong number of result rows"
138 143
           (length fdata ==? numnodes)
144
         ]
139 145

  
140 146
-- | Test that queryFields with empty fields list returns all node fields.
141 147
case_queryNode_allfields :: Assertion
......
155 161
  forAll (choose (0, maxNodes) >>= genEmptyCluster) $ \cluster ->
156 162
   forAll (elements (Map.keys groupFieldsMap)) $ \field -> monadicIO $ do
157 163
   QueryResult fdefs fdata <-
158
     run (query cluster False (Query QRGroup [field] EmptyFilter)) >>= resultProp
164
     run (query cluster False (Query QRGroup [field] EmptyFilter)) >>=
165
         resultProp
159 166
   QueryFieldsResult fdefs' <-
160 167
     resultProp $ queryFields (QueryFields QRGroup [field])
161
   stop $ printTestCase ("Got unknown fields via query (" ++ show fdefs ++ ")")
162
         (hasUnknownFields fdefs) .&&.
163
          printTestCase ("Got unknown result status via query (" ++
164
                         show fdata ++ ")")
165
           (all (all ((/= RSUnknown) . rentryStatus)) fdata) .&&.
166
          printTestCase ("Got unknown fields via query fields (" ++ show fdefs'
167
                        ++ ")") (hasUnknownFields fdefs')
168
   stop $ conjoin
169
    [ printTestCase ("Got unknown fields via query (" ++ show fdefs ++ ")")
170
         (hasUnknownFields fdefs)
171
    , printTestCase ("Got unknown result status via query (" ++
172
                     show fdata ++ ")")
173
      (all (all ((/= RSUnknown) . rentryStatus)) fdata)
174
    , printTestCase ("Got unknown fields via query fields (" ++ show fdefs'
175
                     ++ ")") (hasUnknownFields fdefs')
176
    ]
168 177

  
169 178
prop_queryGroup_Unknown :: Property
170 179
prop_queryGroup_Unknown =
......
175 184
    run (query cluster False (Query QRGroup [field] EmptyFilter)) >>= resultProp
176 185
  QueryFieldsResult fdefs' <-
177 186
    resultProp $ queryFields (QueryFields QRGroup [field])
178
  stop $ printTestCase ("Got known fields via query (" ++ show fdefs ++ ")")
179
         (not $ hasUnknownFields fdefs) .&&.
180
         printTestCase ("Got /= ResultUnknown result status via query (" ++
181
                        show fdata ++ ")")
182
           (all (all ((== RSUnknown) . rentryStatus)) fdata) .&&.
183
         printTestCase ("Got a Just in a result value (" ++
184
                        show fdata ++ ")")
185
           (all (all (isNothing . rentryValue)) fdata) .&&.
186
         printTestCase ("Got known fields via query fields (" ++ show fdefs'
187
                        ++ ")") (not $ hasUnknownFields fdefs')
187
  stop $ conjoin
188
         [ printTestCase ("Got known fields via query (" ++ show fdefs ++ ")")
189
           (not $ hasUnknownFields fdefs)
190
         , printTestCase ("Got /= ResultUnknown result status via query (" ++
191
                          show fdata ++ ")")
192
           (all (all ((== RSUnknown) . rentryStatus)) fdata)
193
         , printTestCase ("Got a Just in a result value (" ++
194
                          show fdata ++ ")")
195
           (all (all (isNothing . rentryValue)) fdata)
196
         , printTestCase ("Got known fields via query fields (" ++ show fdefs'
197
                          ++ ")") (not $ hasUnknownFields fdefs')
198
         ]
188 199

  
189 200
prop_queryGroup_types :: Property
190 201
prop_queryGroup_types =
......
193 204
  forAll (elements (Map.keys groupFieldsMap)) $ \field -> monadicIO $ do
194 205
  QueryResult fdefs fdata <-
195 206
    run (query cfg False (Query QRGroup [field] EmptyFilter)) >>= resultProp
196
  stop $ printTestCase ("Inconsistent result entries (" ++ show fdata ++ ")")
197
         (conjoin $ map (conjoin . zipWith checkResultType fdefs) fdata) .&&.
198
         printTestCase "Wrong field definitions length"
199
           (length fdefs ==? 1) .&&.
200
         printTestCase "Wrong field result rows length"
207
  stop $ conjoin
208
         [ printTestCase ("Inconsistent result entries (" ++ show fdata ++ ")")
209
           (conjoin $ map (conjoin . zipWith checkResultType fdefs) fdata)
210
         , printTestCase "Wrong field definitions length" (length fdefs ==? 1)
211
         , printTestCase "Wrong field result rows length"
201 212
           (all ((== 1) . length) fdata)
213
         ]
202 214

  
203 215
case_queryGroup_allfields :: Assertion
204 216
case_queryGroup_allfields = do

Also available in: Unified diff