chore(avs): add test cases and fix bugs
This commit is contained in:
parent
7a717923b2
commit
3587e5cc75
@ -63,13 +63,6 @@ instance FromJSON AvsDataCardColor where
|
|||||||
_ -> pure $ AvsCardColorMisc t
|
_ -> pure $ AvsCardColorMisc t
|
||||||
parseJSON invalid = prependFailure "parsing AvsDataCardColor failed, " (typeMismatch "String" invalid)
|
parseJSON invalid = prependFailure "parsing AvsDataCardColor failed, " (typeMismatch "String" invalid)
|
||||||
|
|
||||||
|
|
||||||
data AvsStatusPerson = AvsStatusPerson
|
|
||||||
{ avsStatusPersonID :: AvsPersonId
|
|
||||||
, avsStatusPersonCardStatus :: Set AvsDataPersonCard
|
|
||||||
}
|
|
||||||
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
|
||||||
|
|
||||||
data AvsDataPersonCard = AvsDataPersonCard
|
data AvsDataPersonCard = AvsDataPersonCard
|
||||||
{ avsDataCardAreas :: Set Char -- logically a set of upper-case letters
|
{ avsDataCardAreas :: Set Char -- logically a set of upper-case letters
|
||||||
, avsDataCardColor :: AvsDataCardColor
|
, avsDataCardColor :: AvsDataCardColor
|
||||||
@ -117,8 +110,15 @@ instance ToJSON AvsDataPersonCard where
|
|||||||
, "PostalCode" .= avsDataPostalCode
|
, "PostalCode" .= avsDataPostalCode
|
||||||
]
|
]
|
||||||
|
|
||||||
|
data AvsStatusPerson = AvsStatusPerson
|
||||||
|
{ avsStatusPersonID :: AvsPersonId
|
||||||
|
, avsStatusPersonCardStatus :: Set AvsDataPersonCard
|
||||||
|
}
|
||||||
|
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
||||||
|
|
||||||
|
|
||||||
deriveJSON defaultOptions
|
deriveJSON defaultOptions
|
||||||
{ fieldLabelModifier = \case { "avsDataPersonCardStatus" -> "personCardStatus"; others -> dropCamel 2 others }
|
{ fieldLabelModifier = \case { "avsStatusPersonCardStatus" -> "personCardStatus"; others -> dropCamel 2 others }
|
||||||
, omitNothingFields = True
|
, omitNothingFields = True
|
||||||
, tagSingleConstructors = False
|
, tagSingleConstructors = False
|
||||||
, rejectUnknownFields = False
|
, rejectUnknownFields = False
|
||||||
|
|||||||
14
testdata/avs_json.hs
vendored
14
testdata/avs_json.hs
vendored
@ -10,7 +10,19 @@ import Utils.Avs
|
|||||||
|
|
||||||
|
|
||||||
status1 :: B.ByteString
|
status1 :: B.ByteString
|
||||||
status1 = fromString "[{\"PersonID\":10233,\"personCardStatus\":[{\"CardNo\":\"01234567\",\"VersionNo\":\"4\",\"CardColor\":\"Gelb\",\"CardAreas\":\"LY\",\"Valid\":\"true\"},{\"CardNo\":\"00001111\",\"VersionNo\":\"4\",\"CardColor\":\"Rot\",\"CardAreas\":\"F\",\"Valid\":\"true\"}]},{\"PersonID\":10444,\"personCardStatus\":[{\"CardNo\":\"11111111\",\"VersionNo\":\"4\",\"CardColor\":\"Gelb\",\"CardAreas\":\"LF\",\"Valid\":\"false\"}]}]"
|
status1 = fromString "[{\"PersonID\":10233,\"personCardStatus\":[{\"CardNo\":\"01234567\",\"VersionNo\":\"4\",\"CardColor\":\"Rot\",\"CardAreas\":\"LY\",\"Valid\":\"true\"},{\"CardNo\":\"00001111\",\"VersionNo\":\"4\",\"CardColor\":\"Rot\",\"CardAreas\":\"F\",\"Valid\":\"true\"}]},{\"PersonID\":10444,\"personCardStatus\":[{\"CardNo\":\"11111111\",\"VersionNo\":\"4\",\"CardColor\":\"Gelb\",\"CardAreas\":\"LF\",\"Valid\":\"false\"}]}]"
|
||||||
|
|
||||||
test1 :: Either String AvsResponseStatus
|
test1 :: Either String AvsResponseStatus
|
||||||
test1 = eitherDecode status1
|
test1 = eitherDecode status1
|
||||||
|
|
||||||
|
person1 :: B.ByteString
|
||||||
|
person1 = fromString "[{\"PersonID\":518870,\"PersonNo\":508870,\"InternalPersonalNo\":\"00057138\",\"LastName\":\"Jost\",\"FirstName\":\"Steffen\",\"personCards\":[{\"Firm\":\"AVN-AR2\",\"City\":null,\"Street\":null,\"PostalCode\":null,\"CardNo\":\"00158446\",\"VersionNo\":\"4\",\"CardColor\":\"Gelb\",\"CardAreas\":\"\",\"Valid\":\"true\",\"ValidTo\":\"2024-05-20\",\"IssueDate\":\"2019-09-02\"}]}]"
|
||||||
|
|
||||||
|
test2 :: Either String AvsResponsePerson
|
||||||
|
test2 = eitherDecode person1
|
||||||
|
|
||||||
|
person2 :: B.ByteString
|
||||||
|
person2 = fromString "[{\"PersonID\":4026895,\"PersonNo\":1200216,\"InternalPersonalNo\":\"00056057\",\"LastName\":\"Zatschker\",\"FirstName\":\"Laura\",\"personCards\":[{\"Firm\":\"AVN-SR1\",\"City\":null,\"Street\":null,\"PostalCode\":null,\"CardNo\":\"00048614\",\"VersionNo\":\"4\",\"CardColor\":\"Gelb\",\"CardAreas\":\"F\",\"Valid\":\"true\",\"ValidTo\":\"2024-01-15\",\"IssueDate\":\"2020-03-18\"}]}]"
|
||||||
|
|
||||||
|
test3 :: Either String AvsResponsePerson
|
||||||
|
test3 = eitherDecode person2
|
||||||
|
|||||||
Reference in New Issue
Block a user