chore(avs): adjust arbitrary instances to ensure check succeeding
This commit is contained in:
parent
ebd557ff0a
commit
5793acfbbb
@ -27,7 +27,13 @@ instance Arbitrary AvsDataCardColor where
|
|||||||
shrink = genericShrink
|
shrink = genericShrink
|
||||||
|
|
||||||
instance Arbitrary AvsDataPersonCard where
|
instance Arbitrary AvsDataPersonCard where
|
||||||
arbitrary = genericArbitrary
|
arbitrary = do
|
||||||
|
proto <- genericArbitrary
|
||||||
|
return $ proto { avsDataStreet = null2nothing $ avsDataStreet proto
|
||||||
|
, avsDataPostalCode = null2nothing $ avsDataPostalCode proto
|
||||||
|
, avsDataCity = null2nothing $ avsDataCity proto
|
||||||
|
, avsDataFirm = null2nothing $ avsDataFirm proto
|
||||||
|
}
|
||||||
shrink = genericShrink
|
shrink = genericShrink
|
||||||
|
|
||||||
instance Arbitrary AvsStatusPerson where
|
instance Arbitrary AvsStatusPerson where
|
||||||
@ -35,7 +41,10 @@ instance Arbitrary AvsStatusPerson where
|
|||||||
shrink = genericShrink
|
shrink = genericShrink
|
||||||
|
|
||||||
instance Arbitrary AvsDataPerson where
|
instance Arbitrary AvsDataPerson where
|
||||||
arbitrary = genericArbitrary
|
arbitrary = do
|
||||||
|
proto <- genericArbitrary
|
||||||
|
return $ proto { avsPersonInternalPersonalNo = null2nothing $ avsPersonInternalPersonalNo proto}
|
||||||
|
|
||||||
shrink = genericShrink
|
shrink = genericShrink
|
||||||
|
|
||||||
instance Arbitrary AvsPersonLicence where
|
instance Arbitrary AvsPersonLicence where
|
||||||
@ -86,17 +95,17 @@ spec = do
|
|||||||
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
||||||
lawsCheckHspec (Proxy @AvsCardNo)
|
lawsCheckHspec (Proxy @AvsCardNo)
|
||||||
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
||||||
lawsCheckHspec (Proxy @AvsDataPersonCard)
|
lawsCheckHspec (Proxy @AvsDataPersonCard) --iso failed
|
||||||
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
||||||
lawsCheckHspec (Proxy @AvsDataPerson)
|
lawsCheckHspec (Proxy @AvsDataPerson) --iso failed
|
||||||
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
||||||
lawsCheckHspec (Proxy @AvsPersonLicence)
|
lawsCheckHspec (Proxy @AvsPersonLicence)
|
||||||
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
||||||
lawsCheckHspec (Proxy @AvsLicenceResponse)
|
lawsCheckHspec (Proxy @AvsLicenceResponse)
|
||||||
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
[ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ]
|
||||||
lawsCheckHspec (Proxy @AvsResponsePerson)
|
lawsCheckHspec (Proxy @AvsResponsePerson) --iso failed
|
||||||
[ eqLaws, showLaws, showReadLaws, jsonLaws]
|
[ eqLaws, showLaws, showReadLaws, jsonLaws]
|
||||||
lawsCheckHspec (Proxy @AvsResponseStatus)
|
lawsCheckHspec (Proxy @AvsResponseStatus) --iso failed
|
||||||
[ eqLaws, showLaws, showReadLaws, jsonLaws]
|
[ eqLaws, showLaws, showReadLaws, jsonLaws]
|
||||||
lawsCheckHspec (Proxy @AvsResponseGetLicences)
|
lawsCheckHspec (Proxy @AvsResponseGetLicences)
|
||||||
[ eqLaws, showLaws, showReadLaws, jsonLaws]
|
[ eqLaws, showLaws, showReadLaws, jsonLaws]
|
||||||
@ -130,3 +139,42 @@ spec = do
|
|||||||
p2@AvsDataPersonCard{avsDataValid=v2, avsDataValidTo=t2, avsDataIssueDate=d2} ->
|
p2@AvsDataPersonCard{avsDataValid=v2, avsDataValidTo=t2, avsDataIssueDate=d2} ->
|
||||||
(v1 == v2 && t1 == t2 && d1 /= d2) ==> compare p1 p2 == compare d1 d2
|
(v1 == v2 && t1 == t2 && d1 /= d2) ==> compare p1 p2 == compare d1 d2
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
{-
|
||||||
|
Failures:
|
||||||
|
uniworx-test-yesod> test/TestImport.hs:165:43:
|
||||||
|
uniworx-test-yesod> 1) Utils.Types.AvsDataPersonCard.ToJSON/FromJSON Partial Isomorphism
|
||||||
|
uniworx-test-yesod> Falsified (after 1 test and 4 shrinks):
|
||||||
|
uniworx-test-yesod> Description: Right == Data.Aeson.eitherDecode . Data.Aeson.encode
|
||||||
|
uniworx-test-yesod> a = AvsDataPersonCard {avsDataValid = False, avsDataValidTo = Nothing, avsDataIssueDate = Nothing, avsDataCardColor = AvsCardColorMisc "", avsDataCardAreas = fromList "", avsDataStreet = Nothing, avsDataPostalCode = Nothing, avsDataCity = Just "", avsDataFirm = Nothing, avsDataCardNo = AvsCardNo {avsCardNo = ""}, avsDataVersionNo = ""}
|
||||||
|
uniworx-test-yesod> Data.Aeson.encode a = "{\"CardNo\":\"\",\"CardAreas\":\"\",\"CardColor\":\"\",\"VersionNo\":\"\",\"Valid\":\"False\"}"
|
||||||
|
uniworx-test-yesod> Data.Aeson.eitherDecode (Data.Aeson.encode a) = Right (AvsDataPersonCard {avsDataValid = False, avsDataValidTo = Nothing, avsDataIssueDate = Nothing, avsDataCardColor = AvsCardColorMisc "", avsDataCardAreas = fromList "", avsDataStreet = Nothing, avsDataPostalCode = Nothing, avsDataCity = Nothing, avsDataFirm = Nothing, avsDataCardNo = AvsCardNo {avsCardNo = ""}, avsDataVersionNo = ""})
|
||||||
|
uniworx-test-yesod> To rerun use: --match "/Utils.Types/AvsDataPersonCard/ToJSON/FromJSON/Partial Isomorphism/"
|
||||||
|
uniworx-test-yesod> test/TestImport.hs:165:43:
|
||||||
|
uniworx-test-yesod> 2) Utils.Types.AvsDataPerson.ToJSON/FromJSON Partial Isomorphism
|
||||||
|
uniworx-test-yesod> Falsified (after 1 test):
|
||||||
|
uniworx-test-yesod> Description: Right == Data.Aeson.eitherDecode . Data.Aeson.encode
|
||||||
|
uniworx-test-yesod> a = AvsDataPerson {avsPersonFirstName = "", avsPersonLastName = "", avsPersonInternalPersonalNo = Just "", avsPersonPersonNo = 0, avsPersonPersonID = AvsPersonId {avsPersonId = 0}, avsPersonPersonCards = fromList []}
|
||||||
|
uniworx-test-yesod> Data.Aeson.encode a = "{\"PersonNo\":0,\"personCards\":[],\"LastName\":\"\",\"FirstName\":\"\",\"PersonID\":0}"
|
||||||
|
uniworx-test-yesod> Data.Aeson.eitherDecode (Data.Aeson.encode a) = Right (AvsDataPerson {avsPersonFirstName = "", avsPersonLastName = "", avsPersonInternalPersonalNo = Nothing, avsPersonPersonNo = 0, avsPersonPersonID = AvsPersonId {avsPersonId = 0}, avsPersonPersonCards = fromList []})
|
||||||
|
uniworx-test-yesod> To rerun use: --match "/Utils.Types/AvsDataPerson/ToJSON/FromJSON/Partial Isomorphism/"
|
||||||
|
uniworx-test-yesod> test/TestImport.hs:165:43:
|
||||||
|
uniworx-test-yesod> 3) Utils.Types.AvsResponsePerson.ToJSON/FromJSON Partial Isomorphism
|
||||||
|
uniworx-test-yesod> Falsified (after 3 tests and 12 shrinks):
|
||||||
|
uniworx-test-yesod> Description: Right == Data.Aeson.eitherDecode . Data.Aeson.encode
|
||||||
|
uniworx-test-yesod> a = AvsResponsePerson (fromList [AvsDataPerson {avsPersonFirstName = "", avsPersonLastName = "", avsPersonInternalPersonalNo = Nothing, avsPersonPersonNo = 0, avsPersonPersonID = AvsPersonId {avsPersonId = 0}, avsPersonPersonCards = fromList [AvsDataPersonCard {avsDataValid = False, avsDataValidTo = Nothing, avsDataIssueDate = Nothing, avsDataCardColor = AvsCardColorMisc "", avsDataCardAreas = fromList "", avsDataStreet = Nothing, avsDataPostalCode = Nothing, avsDataCity = Nothing, avsDataFirm = Just "", avsDataCardNo = AvsCardNo {avsCardNo = ""}, avsDataVersionNo = ""}]}])
|
||||||
|
uniworx-test-yesod> Data.Aeson.encode a = "[{\"PersonNo\":0,\"personCards\":[{\"CardNo\":\"\",\"CardAreas\":\"\",\"CardColor\":\"\",\"VersionNo\":\"\",\"Valid\":\"False\"}],\"LastName\":\"\",\"FirstName\":\"\",\"PersonID\":0}]"
|
||||||
|
uniworx-test-yesod> Data.Aeson.eitherDecode (Data.Aeson.encode a) = Right (AvsResponsePerson (fromList [AvsDataPerson {avsPersonFirstName = "", avsPersonLastName = "", avsPersonInternalPersonalNo = Nothing, avsPersonPersonNo = 0, avsPersonPersonID = AvsPersonId {avsPersonId = 0}, avsPersonPersonCards = fromList [AvsDataPersonCard {avsDataValid = False, avsDataValidTo = Nothing, avsDataIssueDate = Nothing, avsDataCardColor = AvsCardColorMisc "", avsDataCardAreas = fromList "", avsDataStreet = Nothing, avsDataPostalCode = Nothing, avsDataCity = Nothing, avsDataFirm = Nothing, avsDataCardNo = AvsCardNo {avsCardNo = ""}, avsDataVersionNo = ""}]}]))
|
||||||
|
uniworx-test-yesod> To rerun use: --match "/Utils.Types/AvsResponsePerson/ToJSON/FromJSON/Partial Isomorphism/"
|
||||||
|
uniworx-test-yesod> test/TestImport.hs:165:43:
|
||||||
|
uniworx-test-yesod> 4) Utils.Types.AvsResponseStatus.ToJSON/FromJSON Partial Isomorphism
|
||||||
|
uniworx-test-yesod> Falsified (after 2 tests and 6 shrinks):
|
||||||
|
uniworx-test-yesod> Description: Right == Data.Aeson.eitherDecode . Data.Aeson.encode
|
||||||
|
uniworx-test-yesod> a = AvsResponseStatus (fromList [AvsStatusPerson {avsStatusPersonID = AvsPersonId {avsPersonId = 0}, avsStatusPersonCardStatus = fromList [AvsDataPersonCard {avsDataValid = False, avsDataValidTo = Nothing, avsDataIssueDate = Nothing, avsDataCardColor = AvsCardColorGrün, avsDataCardAreas = fromList "", avsDataStreet = Nothing, avsDataPostalCode = Nothing, avsDataCity = Nothing, avsDataFirm = Just "", avsDataCardNo = AvsCardNo {avsCardNo = ""}, avsDataVersionNo = ""}]}])
|
||||||
|
uniworx-test-yesod> Data.Aeson.encode a = "[{\"PersonID\":0,\"personCardStatus\":[{\"CardNo\":\"\",\"CardAreas\":\"\",\"CardColor\":\"Gr\195\188n\",\"VersionNo\":\"\",\"Valid\":\"False\"}]}]"
|
||||||
|
uniworx-test-yesod> Data.Aeson.eitherDecode (Data.Aeson.encode a) = Right (AvsResponseStatus (fromList [AvsStatusPerson {avsStatusPersonID = AvsPersonId {avsPersonId = 0}, avsStatusPersonCardStatus = fromList [AvsDataPersonCard {avsDataValid = False, avsDataValidTo = Nothing, avsDataIssueDate = Nothing, avsDataCardColor = AvsCardColorGrün, avsDataCardAreas = fromList "", avsDataStreet = Nothing, avsDataPostalCode = Nothing, avsDataCity = Nothing, avsDataFirm = Nothing, avsDataCardNo = AvsCardNo {avsCardNo = ""}, avsDataVersionNo = ""}]}]))
|
||||||
|
uniworx-test-yesod> To rerun use: --match "/Utils.Types/AvsResponseStatus/ToJSON/FromJSON/Partial Isomorphism/"
|
||||||
|
|
||||||
|
|
||||||
|
-}
|
||||||
Reference in New Issue
Block a user