diff --git a/test/Utils/TypesSpec.hs b/test/Utils/TypesSpec.hs index 238dc0bec..61a58f39f 100644 --- a/test/Utils/TypesSpec.hs +++ b/test/Utils/TypesSpec.hs @@ -27,7 +27,13 @@ instance Arbitrary AvsDataCardColor where shrink = genericShrink 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 instance Arbitrary AvsStatusPerson where @@ -35,7 +41,10 @@ instance Arbitrary AvsStatusPerson where shrink = genericShrink instance Arbitrary AvsDataPerson where - arbitrary = genericArbitrary + arbitrary = do + proto <- genericArbitrary + return $ proto { avsPersonInternalPersonalNo = null2nothing $ avsPersonInternalPersonalNo proto} + shrink = genericShrink instance Arbitrary AvsPersonLicence where @@ -86,17 +95,17 @@ spec = do [ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ] lawsCheckHspec (Proxy @AvsCardNo) [ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ] - lawsCheckHspec (Proxy @AvsDataPersonCard) + lawsCheckHspec (Proxy @AvsDataPersonCard) --iso failed [ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ] - lawsCheckHspec (Proxy @AvsDataPerson) + lawsCheckHspec (Proxy @AvsDataPerson) --iso failed [ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ] lawsCheckHspec (Proxy @AvsPersonLicence) [ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ] lawsCheckHspec (Proxy @AvsLicenceResponse) [ eqLaws, ordLaws, showLaws, showReadLaws, jsonLaws ] - lawsCheckHspec (Proxy @AvsResponsePerson) + lawsCheckHspec (Proxy @AvsResponsePerson) --iso failed [ eqLaws, showLaws, showReadLaws, jsonLaws] - lawsCheckHspec (Proxy @AvsResponseStatus) + lawsCheckHspec (Proxy @AvsResponseStatus) --iso failed [ eqLaws, showLaws, showReadLaws, jsonLaws] lawsCheckHspec (Proxy @AvsResponseGetLicences) [ eqLaws, showLaws, showReadLaws, jsonLaws] @@ -130,3 +139,42 @@ spec = do p2@AvsDataPersonCard{avsDataValid=v2, avsDataValidTo=t2, avsDataIssueDate=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/" + + +-} \ No newline at end of file