Skip to content

Commit 4454d52

Browse files
author
Poscat
committed
Add generic test cases for TaggedFlatObject
1 parent 4ec8d6a commit 4454d52

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

tests/Encoders.hs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,16 @@ gNullaryParseJSONTaggedObject :: Value -> Parser Nullary
8888
gNullaryParseJSONTaggedObject = genericParseJSON optsTaggedObject
8989

9090

91+
gNullaryToJSONTaggedFlatObject :: Nullary -> Value
92+
gNullaryToJSONTaggedFlatObject = genericToJSON optsTaggedFlatObject
93+
94+
gNullaryToEncodingTaggedFlatObject :: Nullary -> Encoding
95+
gNullaryToEncodingTaggedFlatObject = genericToEncoding optsTaggedFlatObject
96+
97+
gNullaryParseJSONTaggedFlatObject :: Value -> Parser Nullary
98+
gNullaryParseJSONTaggedFlatObject = genericParseJSON optsTaggedFlatObject
99+
100+
91101
gNullaryToJSONObjectWithSingleField :: Nullary -> Value
92102
gNullaryToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
93103

@@ -217,6 +227,25 @@ gSomeTypeLiftParseJSONTaggedObject :: LiftParseJSON SomeType a
217227
gSomeTypeLiftParseJSONTaggedObject = genericLiftParseJSON optsTaggedObject
218228

219229

230+
gSomeTypeToJSONTaggedFlatObject :: SomeType Int -> Value
231+
gSomeTypeToJSONTaggedFlatObject = genericToJSON optsTaggedFlatObject
232+
233+
gSomeTypeToEncodingTaggedFlatObject :: SomeType Int -> Encoding
234+
gSomeTypeToEncodingTaggedFlatObject = genericToEncoding optsTaggedFlatObject
235+
236+
gSomeTypeParseJSONTaggedFlatObject :: Value -> Parser (SomeType Int)
237+
gSomeTypeParseJSONTaggedFlatObject = genericParseJSON optsTaggedFlatObject
238+
239+
gSomeTypeLiftToEncodingTaggedFlatObject :: LiftToEncoding SomeType a
240+
gSomeTypeLiftToEncodingTaggedFlatObject = genericLiftToEncoding optsTaggedFlatObject
241+
242+
gSomeTypeLiftToJSONTaggedFlatObject :: LiftToJSON SomeType a
243+
gSomeTypeLiftToJSONTaggedFlatObject = genericLiftToJSON optsTaggedFlatObject
244+
245+
gSomeTypeLiftParseJSONTaggedFlatObject :: LiftParseJSON SomeType a
246+
gSomeTypeLiftParseJSONTaggedFlatObject = genericLiftParseJSON optsTaggedFlatObject
247+
248+
220249
gSomeTypeToJSONObjectWithSingleField :: SomeType Int -> Value
221250
gSomeTypeToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
222251

tests/Options.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ optsOmitNothingFields = optsDefault
3939
{ omitNothingFields = True
4040
}
4141

42+
optsTaggedFlatObject :: Options
43+
optsTaggedFlatObject = optsDefault { allNullaryToStringTag = False, sumEncoding = TaggedFlatObject "tag"}
44+
4245
optsUntaggedValue :: Options
4346
optsUntaggedValue = optsDefault
4447
{ sumEncoding = UntaggedValue

tests/PropertyGeneric.hs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ genericTests =
2323
testProperty "string" (isString . gNullaryToJSONString)
2424
, testProperty "2ElemArray" (is2ElemArray . gNullaryToJSON2ElemArray)
2525
, testProperty "TaggedObject" (isNullaryTaggedObject . gNullaryToJSONTaggedObject)
26+
, testProperty "TaggedFlatObject" (isNullaryTaggedObject . gNullaryToJSONTaggedFlatObject)
2627
, testProperty "ObjectWithSingleField" (isObjectWithSingleField . gNullaryToJSONObjectWithSingleField)
2728
, testGroup "roundTrip" [
2829
testProperty "string" (toParseJSON gNullaryParseJSONString gNullaryToJSONString)
2930
, testProperty "2ElemArray" (toParseJSON gNullaryParseJSON2ElemArray gNullaryToJSON2ElemArray)
3031
, testProperty "TaggedObject" (toParseJSON gNullaryParseJSONTaggedObject gNullaryToJSONTaggedObject)
32+
, testProperty "TaggedFlatObject" (toParseJSON gNullaryParseJSONTaggedFlatObject gNullaryToJSONTaggedFlatObject)
3133
, testProperty "ObjectWithSingleField" (toParseJSON gNullaryParseJSONObjectWithSingleField gNullaryToJSONObjectWithSingleField)
3234
]
3335
]
@@ -38,14 +40,17 @@ genericTests =
3840
, testGroup "SomeType" [
3941
testProperty "2ElemArray" (is2ElemArray . gSomeTypeToJSON2ElemArray)
4042
, testProperty "TaggedObject" (isTaggedObject . gSomeTypeToJSONTaggedObject)
43+
, testProperty "TaggedFlatObject" (isTaggedObject . gSomeTypeToJSONTaggedFlatObject)
4144
, testProperty "ObjectWithSingleField" (isObjectWithSingleField . gSomeTypeToJSONObjectWithSingleField)
4245
, testGroup "roundTrip" [
4346
testProperty "2ElemArray" (toParseJSON gSomeTypeParseJSON2ElemArray gSomeTypeToJSON2ElemArray)
4447
, testProperty "TaggedObject" (toParseJSON gSomeTypeParseJSONTaggedObject gSomeTypeToJSONTaggedObject)
48+
, testProperty "TaggedFlatObject" (toParseJSON gSomeTypeParseJSONTaggedFlatObject gSomeTypeToJSONTaggedFlatObject)
4549
, testProperty "ObjectWithSingleField" (toParseJSON gSomeTypeParseJSONObjectWithSingleField gSomeTypeToJSONObjectWithSingleField)
4650

4751
, testProperty "2ElemArray unary" (toParseJSON1 gSomeTypeLiftParseJSON2ElemArray gSomeTypeLiftToJSON2ElemArray)
4852
, testProperty "TaggedObject unary" (toParseJSON1 gSomeTypeLiftParseJSONTaggedObject gSomeTypeLiftToJSONTaggedObject)
53+
, testProperty "TaggedFlatObject unary" (toParseJSON1 gSomeTypeLiftParseJSONTaggedFlatObject gSomeTypeLiftToJSONTaggedFlatObject)
4954
, testProperty "ObjectWithSingleField unary" (toParseJSON1 gSomeTypeLiftParseJSONObjectWithSingleField gSomeTypeLiftToJSONObjectWithSingleField)
5055
]
5156
]
@@ -70,6 +75,8 @@ genericTests =
7075
gNullaryToJSON2ElemArray `sameAs` gNullaryToEncoding2ElemArray
7176
, testProperty "NullaryTaggedObject" $
7277
gNullaryToJSONTaggedObject `sameAs` gNullaryToEncodingTaggedObject
78+
, testProperty "NullaryTaggedFlatObject" $
79+
gNullaryToJSONTaggedFlatObject `sameAs` gNullaryToEncodingTaggedFlatObject
7380
, testProperty "NullaryObjectWithSingleField" $
7481
gNullaryToJSONObjectWithSingleField `sameAs`
7582
gNullaryToEncodingObjectWithSingleField
@@ -94,6 +101,13 @@ genericTests =
94101
gSomeTypeLiftToJSONTaggedObject `sameAs1` gSomeTypeLiftToEncodingTaggedObject
95102
, testProperty "SomeTypeTaggedObject unary agree" $
96103
gSomeTypeToEncodingTaggedObject `sameAs1Agree` gSomeTypeLiftToEncodingTaggedObject
104+
105+
, testProperty "SomeTyptTaggedFlatObject" $
106+
gSomeTypeToJSONTaggedFlatObject `sameAs` gSomeTypeToEncodingTaggedFlatObject
107+
, testProperty "SomeTyptTaggedFlatObject unary" $
108+
gSomeTypeLiftToJSONTaggedFlatObject `sameAs1` gSomeTypeLiftToEncodingTaggedFlatObject
109+
, testProperty "SomeTyptTaggedFlatObject unary agree" $
110+
gSomeTypeToEncodingTaggedFlatObject `sameAs1Agree` gSomeTypeLiftToEncodingTaggedFlatObject
97111

98112
, testProperty "SomeTypeObjectWithSingleField" $
99113
gSomeTypeToJSONObjectWithSingleField `sameAs` gSomeTypeToEncodingObjectWithSingleField

0 commit comments

Comments
 (0)