Skip to content

Commit 4d1e659

Browse files
committed
More test assertions for generic and named tuples
1 parent 35167c0 commit 4d1e659

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

jsoniter-scala-macros/shared/src/test/scala-3/com/github/plokhotnyuk/jsoniter_scala/macros/JsonCodecMakerNewTypeSpec.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,12 @@ class JsonCodecMakerNewTypeSpec extends VerifyingSpec {
6868
verifySerDeser(make[Byte *: Short *: Int *: Long *: EmptyTuple], (1: Byte, 2: Short, 3, 4L), "[1,2,3,4]")
6969
verifySerDeser(make[Byte *: Short *: Tuple2[Int, Long]], (1: Byte, 2: Short, 3, 4L), "[1,2,3,4]")
7070
verifySerDeser(make[Tuple.Concat[(Byte, Short), (Int, Long)]], (1: Byte, 2: Short, 3, 4L), "[1,2,3,4]")
71+
verifySerDeser(make[Tuple.Append[(Byte, Short), Int]], (1: Byte, 2: Short, 3), "[1,2,3]")
7172
verifySerDeser(make[Tuple.Drop[(Long, Int, String), 1]], (1, "VVV"), """[1,"VVV"]""")
7273
verifySerDeser(make[Tuple.Take[(Int, String, Long), 2]], (1, "VVV"), """[1,"VVV"]""")
74+
verifySerDeser(make[Tuple.Zip[Tuple1[Int], Tuple1[String]]], (1, "VVV") *: EmptyTuple, """[[1,"VVV"]]""")
75+
verifySerDeser(make[Tuple.Map[(Int, String), Option]], (Some(1), Some("VVV")), """[1,"VVV"]""")
76+
verifySerDeser(make[Tuple.InverseMap[(Option[Int], Option[String]), Option]], (1, "VVV"), """[1,"VVV"]""")
7377
}
7478
"serialize and deserialize immutable arrays" in {
7579
val json = """{"aa":[[1,2],[3,4]],"a":[1,2,3,4]}"""

jsoniter-scala-next-tests/shared/src/test/scala-3/com/github/plokhotnyuk/jsoniter_scala/macros/JsonCodecMakerNamedTupleSpec.scala

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,20 @@ class JsonCodecMakerNamedTupleSpec extends VerifyingSpec {
1010
verifySerDeser(make[(i: Int)], (i = 1), """{"i":1}""")
1111
verifySerDeser(make[(i: Int, s: String)], (i = 1, s = "VVV"), """{"i":1,"s":"VVV"}""")
1212
}
13-
"serialize and deserialize tuples derived from named tuples" in {
14-
verifySerDeser(make[NamedTuple.DropNames[(i: Int, s: String)]], (1, "VVV"), """[1,"VVV"]""")
15-
}
16-
"serialize and deserialize tuples derived from tuples" in {
17-
verifySerDeser(make[Tuple.Reverse[(Long, Int, Short, Byte)]], (1: Byte, 2: Short, 3, 4L), """[1,2,3,4]""")
18-
}
1913
"serialize and deserialize generic named tuples" in {
2014
type GenericNamedTuple[A, B] = (a: A, b: B)
2115

22-
verifySerDeser(make[GenericNamedTuple[Option[Int], List[String]]], (a = Some(1), b = List("VVV")),
23-
"""{"a":1,"b":["VVV"]}""")
16+
verifySerDeser(make[GenericNamedTuple[Option[Int], List[String]]], (a = Some(1), b = List("VVV")), """{"a":1,"b":["VVV"]}""")
2417
}
2518
"serialize and deserialize higher-kind named tuples" in {
2619
type HKNamedTuple[F[_], G[_]] = (i: F[Int], s: G[String])
2720

28-
verifySerDeser(make[HKNamedTuple[Option, List]], (i = Some(1), s = List("VVV")),
29-
"""{"i":1,"s":["VVV"]}""")
21+
verifySerDeser(make[HKNamedTuple[Option, List]], (i = Some(1), s = List("VVV")), """{"i":1,"s":["VVV"]}""")
3022
}
3123
"serialize and deserialize complex named tuples" in {
24+
case class Record(i: Int, s: String)
25+
26+
verifySerDeser(make[NamedTuple.From[Record]], (i = 1, s = "VVV"), """{"i":1,"s":"VVV"}""")
3227
verifySerDeser(make[NamedTuple.Reverse[(i: Int, s: String)]], (s = "VVV", i = 1), """{"s":"VVV","i":1}""")
3328
verifySerDeser(make[NamedTuple.Concat[(i: Int), (s: String)]], (i = 1, s = "VVV"), """{"i":1,"s":"VVV"}""")
3429
verifySerDeser(make[NamedTuple.Tail[(l: Long, i: Int, s: String)]], (i = 1, s = "VVV"), """{"i":1,"s":"VVV"}""")
@@ -47,6 +42,8 @@ class JsonCodecMakerNamedTupleSpec extends VerifyingSpec {
4742
((i = 1, s = "VVV"), (l = 2L)), """[{"i":1,"s":"VVV"},{"l":2}]""")
4843
verifySerDeser(make[NamedTuple.Zip[(i: Int, s: String), (i: Long, s: String)]],
4944
(i = (1, 2L), s = ("VVV", "WWW")), """{"i":[1,2],"s":["VVV","WWW"]}""")
45+
verifySerDeser(make[NamedTuple.Map[(i: Int, s: String), Option]],
46+
(i = Some(1), s = Some("VVV")), """{"i":1,"s":"VVV"}""")
5047
}
5148
"serialize and deserialize nested named tuples" in {
5249
verifySerDeser(make[(i: Int, t: (d: Double, s: String))], (i = 1, t = (d = 2.0, s = "VVV")),
@@ -71,5 +68,10 @@ class JsonCodecMakerNamedTupleSpec extends VerifyingSpec {
7168
verifySerDeser(make[List[(i: Int, s: String)]], List((i = 1, s = "VVV"), (i = 2, s = "WWW")),
7269
"""[{"i":1,"s":"VVV"},{"i":2,"s":"WWW"}]""")
7370
}
71+
"serialize and deserialize generic and named tuples" in {
72+
verifySerDeser(make[Tuple.++[(Byte, Short), (Int, Long)]], (1: Byte, 2: Short, 3, 4L), "[1,2,3,4]")
73+
verifySerDeser(make[Tuple.Reverse[(String, Int)]], (1, "VVV"), """[1,"VVV"]""")
74+
verifySerDeser(make[NamedTuple.DropNames[(i: Int, s: String)]], (1, "VVV"), """[1,"VVV"]""")
75+
}
7476
}
7577
}

0 commit comments

Comments
 (0)