@@ -12,72 +12,102 @@ import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks
12
12
class CirceCodecsSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyChecks {
13
13
" CirceCodecsSpec codecs" should {
14
14
" decode and encode Byte" in {
15
- Decoder [Byte ].decodeJson(Json .fromFloatOrNull(1.0f )).getOrElse( 0 .toByte) shouldBe 1 .toByte
16
- Decoder [Byte ].decodeJson(Json .fromDoubleOrNull(1.0 )).getOrElse( 0 .toByte) shouldBe 1 .toByte
17
- Decoder [Byte ].decodeJson(Json .fromBigInt(1 )).getOrElse( 0 .toByte) shouldBe 1 .toByte
18
- Decoder [Byte ].decodeJson(Json .fromBigDecimal(1.0 )).getOrElse( 0 .toByte) shouldBe 1 .toByte
19
- Decoder [Byte ].decodeJson(Json .fromString(" 001" )).getOrElse( 0 .toByte) shouldBe 1 .toByte
15
+ Decoder [Byte ].decodeJson(Json .fromFloatOrNull(1.0f )) shouldBe Right ( 1 .toByte)
16
+ Decoder [Byte ].decodeJson(Json .fromDoubleOrNull(1.0 )) shouldBe Right ( 1 .toByte)
17
+ Decoder [Byte ].decodeJson(Json .fromBigInt(1 )) shouldBe Right ( 1 .toByte)
18
+ Decoder [Byte ].decodeJson(Json .fromBigDecimal(1.0 )) shouldBe Right ( 1 .toByte)
19
+ Decoder [Byte ].decodeJson(Json .fromString(" 001" )) shouldBe Right ( 1 .toByte)
20
20
Decoder [Byte ].decodeJson(Json .fromString(" 1" )) shouldBe Left (DecodingFailure (" Byte" , Nil ))
21
21
Decoder [Byte ].decodeJson(Json .fromString(" 1 " )) shouldBe Left (DecodingFailure (" Byte" , Nil ))
22
+ Decoder [Byte ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" Byte" , Nil ))
23
+ Decoder [Byte ].decodeJson(Json .fromString(" 128" )) shouldBe Left (DecodingFailure (" Byte" , Nil ))
24
+ Decoder [Byte ].decodeJson(Json .fromString(" -129" )) shouldBe Left (DecodingFailure (" Byte" , Nil ))
25
+ Decoder [Byte ].decodeJson(Json .fromBigDecimal(0.123 )) shouldBe Left (DecodingFailure (" Byte" , Nil ))
26
+ Decoder [Byte ].decodeJson(Json .fromBigDecimal(BigDecimal (" 92233720368547758080" ))) shouldBe Left (DecodingFailure (" Byte" , Nil ))
27
+ Decoder [Byte ].decodeJson(Json .fromBigDecimal(BigDecimal (" 9223372036854775808" ))) shouldBe Left (DecodingFailure (" Byte" , Nil ))
28
+ Decoder [Byte ].decodeJson(Json .fromBigDecimal(BigDecimal (" -9223372036854775809" ))) shouldBe Left (DecodingFailure (" Byte" , Nil ))
29
+ Decoder [Byte ].decodeJson(Json .fromBigDecimal(BigDecimal (" 0000000000000000000" ))) shouldBe Right (0 .toByte)
22
30
forAll(arbitrary[Byte ], minSuccessful(10000 )) { x =>
23
- Decoder [Byte ].decodeJson(Json .fromString(x.toString)).getOrElse( null ) shouldBe x
31
+ Decoder [Byte ].decodeJson(Json .fromString(x.toString)) shouldBe Right (x)
24
32
}
25
33
forAll(arbitrary[Byte ], minSuccessful(10000 )) { x =>
26
- Decoder [Byte ].decodeJson(Json .fromInt(x)).getOrElse( null ) shouldBe x
34
+ Decoder [Byte ].decodeJson(Json .fromInt(x)) shouldBe Right (x)
27
35
}
28
36
forAll(arbitrary[Byte ], minSuccessful(10000 )) { x =>
29
37
Encoder [Byte ].apply(x) shouldBe Json .fromInt(x)
30
38
}
31
39
}
32
40
" decode and encode Short" in {
33
- Decoder [Short ].decodeJson(Json .fromFloatOrNull(1.0f )).getOrElse( 0 .toShort) shouldBe 1 .toShort
34
- Decoder [Short ].decodeJson(Json .fromDoubleOrNull(1.0 )).getOrElse( 0 .toShort) shouldBe 1 .toShort
35
- Decoder [Short ].decodeJson(Json .fromBigInt(1 )).getOrElse( 0 .toShort) shouldBe 1 .toShort
36
- Decoder [Short ].decodeJson(Json .fromBigDecimal(1.0 )).getOrElse( 0 .toShort) shouldBe 1 .toShort
37
- Decoder [Short ].decodeJson(Json .fromString(" 001" )).getOrElse( 0 .toShort) shouldBe 1 .toShort
41
+ Decoder [Short ].decodeJson(Json .fromFloatOrNull(1.0f )) shouldBe Right ( 1 .toShort)
42
+ Decoder [Short ].decodeJson(Json .fromDoubleOrNull(1.0 )) shouldBe Right ( 1 .toShort)
43
+ Decoder [Short ].decodeJson(Json .fromBigInt(1 )) shouldBe Right ( 1 .toShort)
44
+ Decoder [Short ].decodeJson(Json .fromBigDecimal(1.0 )) shouldBe Right ( 1 .toShort)
45
+ Decoder [Short ].decodeJson(Json .fromString(" 001" )) shouldBe Right ( 1 .toShort)
38
46
Decoder [Short ].decodeJson(Json .fromString(" 1" )) shouldBe Left (DecodingFailure (" Short" , Nil ))
39
47
Decoder [Short ].decodeJson(Json .fromString(" 1 " )) shouldBe Left (DecodingFailure (" Short" , Nil ))
48
+ Decoder [Short ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" Short" , Nil ))
49
+ Decoder [Short ].decodeJson(Json .fromString(" 32768" )) shouldBe Left (DecodingFailure (" Short" , Nil ))
50
+ Decoder [Short ].decodeJson(Json .fromString(" -32769" )) shouldBe Left (DecodingFailure (" Short" , Nil ))
51
+ Decoder [Short ].decodeJson(Json .fromBigDecimal(0.123 )) shouldBe Left (DecodingFailure (" Short" , Nil ))
52
+ Decoder [Short ].decodeJson(Json .fromBigDecimal(BigDecimal (" 92233720368547758080" ))) shouldBe Left (DecodingFailure (" Short" , Nil ))
53
+ Decoder [Short ].decodeJson(Json .fromBigDecimal(BigDecimal (" 9223372036854775808" ))) shouldBe Left (DecodingFailure (" Short" , Nil ))
54
+ Decoder [Short ].decodeJson(Json .fromBigDecimal(BigDecimal (" -9223372036854775809" ))) shouldBe Left (DecodingFailure (" Short" , Nil ))
55
+ Decoder [Short ].decodeJson(Json .fromBigDecimal(BigDecimal (" 0000000000000000000" ))) shouldBe Right (0 .toShort)
40
56
forAll(arbitrary[Short ], minSuccessful(10000 )) { x =>
41
- Decoder [Short ].decodeJson(Json .fromString(x.toString)).getOrElse( null ) shouldBe x
57
+ Decoder [Short ].decodeJson(Json .fromString(x.toString)) shouldBe Right (x)
42
58
}
43
59
forAll(arbitrary[Short ], minSuccessful(10000 )) { x =>
44
- Decoder [Short ].decodeJson(Json .fromInt(x)).getOrElse( null ) shouldBe x
60
+ Decoder [Short ].decodeJson(Json .fromInt(x)) shouldBe Right (x)
45
61
}
46
62
forAll(arbitrary[Short ], minSuccessful(10000 )) { x =>
47
63
Encoder [Short ].apply(x) shouldBe Json .fromInt(x)
48
64
}
49
65
}
50
66
" decode and encode Int" in {
51
- Decoder [Int ].decodeJson(Json .fromFloatOrNull(1.0f )).getOrElse( 0 ) shouldBe 1
52
- Decoder [Int ].decodeJson(Json .fromDoubleOrNull(1.0 )).getOrElse( 0 ) shouldBe 1
53
- Decoder [Int ].decodeJson(Json .fromBigInt(1 )).getOrElse( 0 ) shouldBe 1
54
- Decoder [Int ].decodeJson(Json .fromBigDecimal(1.0 )).getOrElse( 0 ) shouldBe 1
55
- Decoder [Int ].decodeJson(Json .fromString(" 001" )).getOrElse( 0 ) shouldBe 1
67
+ Decoder [Int ].decodeJson(Json .fromFloatOrNull(1.0f )) shouldBe Right ( 1 )
68
+ Decoder [Int ].decodeJson(Json .fromDoubleOrNull(1.0 )) shouldBe Right ( 1 )
69
+ Decoder [Int ].decodeJson(Json .fromBigInt(1 )) shouldBe Right ( 1 )
70
+ Decoder [Int ].decodeJson(Json .fromBigDecimal(1.0 )) shouldBe Right ( 1 )
71
+ Decoder [Int ].decodeJson(Json .fromString(" 001" )) shouldBe Right ( 1 )
56
72
Decoder [Int ].decodeJson(Json .fromString(" 1" )) shouldBe Left (DecodingFailure (" Int" , Nil ))
57
73
Decoder [Int ].decodeJson(Json .fromString(" 1 " )) shouldBe Left (DecodingFailure (" Int" , Nil ))
74
+ Decoder [Int ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" Int" , Nil ))
75
+ Decoder [Int ].decodeJson(Json .fromString(" 2147483648" )) shouldBe Left (DecodingFailure (" Int" , Nil ))
76
+ Decoder [Int ].decodeJson(Json .fromString(" -2147483649" )) shouldBe Left (DecodingFailure (" Int" , Nil ))
77
+ Decoder [Int ].decodeJson(Json .fromBigDecimal(0.123 )) shouldBe Left (DecodingFailure (" Int" , Nil ))
78
+ Decoder [Int ].decodeJson(Json .fromBigDecimal(BigDecimal (" 92233720368547758080" ))) shouldBe Left (DecodingFailure (" Int" , Nil ))
79
+ Decoder [Int ].decodeJson(Json .fromBigDecimal(BigDecimal (" 9223372036854775808" ))) shouldBe Left (DecodingFailure (" Int" , Nil ))
80
+ Decoder [Int ].decodeJson(Json .fromBigDecimal(BigDecimal (" -9223372036854775809" ))) shouldBe Left (DecodingFailure (" Int" , Nil ))
81
+ Decoder [Int ].decodeJson(Json .fromBigDecimal(BigDecimal (" 0000000000000000000" ))) shouldBe Right (0 )
58
82
forAll(arbitrary[Int ], minSuccessful(10000 )) { x =>
59
- Decoder [Int ].decodeJson(Json .fromString(x.toString)).getOrElse( null ) shouldBe x
83
+ Decoder [Int ].decodeJson(Json .fromString(x.toString)) shouldBe Right (x)
60
84
}
61
85
forAll(arbitrary[Int ], minSuccessful(10000 )) { x =>
62
- Decoder [Int ].decodeJson(Json .fromInt(x)).getOrElse( null ) shouldBe x
86
+ Decoder [Int ].decodeJson(Json .fromInt(x)) shouldBe Right (x)
63
87
}
64
88
forAll(arbitrary[Int ], minSuccessful(10000 )) { x =>
65
89
Encoder [Int ].apply(x) shouldBe Json .fromInt(x)
66
90
}
67
91
}
68
92
" decode and encode Long" in {
69
- Decoder [Long ].decodeJson(Json .fromFloatOrNull(1.0f )).getOrElse( 0L ) shouldBe 1L
70
- Decoder [Long ].decodeJson(Json .fromDoubleOrNull(1.0 )).getOrElse( 0L ) shouldBe 1L
71
- Decoder [Long ].decodeJson(Json .fromBigInt(1 )).getOrElse( 0L ) shouldBe 1L
72
- Decoder [Long ].decodeJson(Json .fromBigDecimal(1.0 )).getOrElse( 0L ) shouldBe 1L
73
- Decoder [Long ].decodeJson(Json .fromString(" 001" )).getOrElse( 0L ) shouldBe 1L
93
+ Decoder [Long ].decodeJson(Json .fromFloatOrNull(1.0f )) shouldBe Right ( 1L )
94
+ Decoder [Long ].decodeJson(Json .fromDoubleOrNull(1.0 )) shouldBe Right ( 1L )
95
+ Decoder [Long ].decodeJson(Json .fromBigInt(1 )) shouldBe Right ( 1L )
96
+ Decoder [Long ].decodeJson(Json .fromBigDecimal(1.0 )) shouldBe Right ( 1L )
97
+ Decoder [Long ].decodeJson(Json .fromString(" 001" )) shouldBe Right ( 1L )
74
98
Decoder [Long ].decodeJson(Json .fromString(" 1" )) shouldBe Left (DecodingFailure (" Long" , Nil ))
75
99
Decoder [Long ].decodeJson(Json .fromString(" 1 " )) shouldBe Left (DecodingFailure (" Long" , Nil ))
100
+ Decoder [Long ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" Long" , Nil ))
101
+ Decoder [Long ].decodeJson(Json .fromBigDecimal(0.123 )) shouldBe Left (DecodingFailure (" Long" , Nil ))
102
+ Decoder [Long ].decodeJson(Json .fromBigDecimal(BigDecimal (" 92233720368547758080" ))) shouldBe Left (DecodingFailure (" Long" , Nil ))
103
+ Decoder [Long ].decodeJson(Json .fromBigDecimal(BigDecimal (" 9223372036854775808" ))) shouldBe Left (DecodingFailure (" Long" , Nil ))
104
+ Decoder [Long ].decodeJson(Json .fromBigDecimal(BigDecimal (" -9223372036854775809" ))) shouldBe Left (DecodingFailure (" Long" , Nil ))
105
+ Decoder [Long ].decodeJson(Json .fromBigDecimal(BigDecimal (" 0000000000000000000" ))) shouldBe Right (0 )
76
106
forAll(arbitrary[Long ], minSuccessful(10000 )) { x =>
77
- Decoder [Long ].decodeJson(Json .fromString(x.toString)).getOrElse( null ) shouldBe x
107
+ Decoder [Long ].decodeJson(Json .fromString(x.toString)) shouldBe Right (x)
78
108
}
79
109
forAll(arbitrary[Long ], minSuccessful(10000 )) { x =>
80
- Decoder [Long ].decodeJson(Json .fromLong(x)).getOrElse( null ) shouldBe x
110
+ Decoder [Long ].decodeJson(Json .fromLong(x)) shouldBe Right (x)
81
111
}
82
112
forAll(arbitrary[Long ], minSuccessful(10000 )) { x =>
83
113
Encoder [Long ].apply(x) shouldBe Json .fromLong(x)
@@ -91,6 +121,7 @@ class CirceCodecsSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyC
91
121
Decoder [Float ].decodeJson(Json .fromString(" 001.0" )).getOrElse(0.0f ) shouldBe 1.0f
92
122
Decoder [Float ].decodeJson(Json .fromString(" 1.0" )) shouldBe Left (DecodingFailure (" Float" , Nil ))
93
123
Decoder [Float ].decodeJson(Json .fromString(" 1.0 " )) shouldBe Left (DecodingFailure (" Float" , Nil ))
124
+ Decoder [Float ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" Float" , Nil ))
94
125
forAll(arbitrary[Float ], minSuccessful(10000 )) { x =>
95
126
Decoder [Float ].decodeJson(Json .fromString(x.toString)).getOrElse(null ) shouldBe x
96
127
}
@@ -109,6 +140,7 @@ class CirceCodecsSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyC
109
140
Decoder [Double ].decodeJson(Json .fromString(" 001.0" )).getOrElse(0.0 ) shouldBe 1.0
110
141
Decoder [Double ].decodeJson(Json .fromString(" 1.0" )) shouldBe Left (DecodingFailure (" Double" , Nil ))
111
142
Decoder [Double ].decodeJson(Json .fromString(" 1.0 " )) shouldBe Left (DecodingFailure (" Double" , Nil ))
143
+ Decoder [Double ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" Double" , Nil ))
112
144
forAll(arbitrary[Double ], minSuccessful(10000 )) { x =>
113
145
Decoder [Double ].decodeJson(Json .fromString(x.toString)).getOrElse(null ) shouldBe x
114
146
}
@@ -127,6 +159,7 @@ class CirceCodecsSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyC
127
159
Decoder [BigInt ].decodeJson(Json .fromString(" 001" )).getOrElse(null ) shouldBe BigInt (1 )
128
160
Decoder [BigInt ].decodeJson(Json .fromString(" 1" )) shouldBe Left (DecodingFailure (" BigInt" , Nil ))
129
161
Decoder [BigInt ].decodeJson(Json .fromString(" 1 " )) shouldBe Left (DecodingFailure (" BigInt" , Nil ))
162
+ Decoder [BigInt ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" BigInt" , Nil ))
130
163
forAll(arbitrary[BigInt ], minSuccessful(10000 )) { x =>
131
164
Decoder [BigInt ].decodeJson(Json .fromString(x.toString)).getOrElse(null ) shouldBe x
132
165
}
@@ -145,6 +178,7 @@ class CirceCodecsSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyC
145
178
Decoder [BigDecimal ].decodeJson(Json .fromString(" 001.0" )).getOrElse(null ) shouldBe BigDecimal (1.0 )
146
179
Decoder [BigDecimal ].decodeJson(Json .fromString(" 1.0" )) shouldBe Left (DecodingFailure (" BigDecimal" , Nil ))
147
180
Decoder [BigDecimal ].decodeJson(Json .fromString(" 1.0 " )) shouldBe Left (DecodingFailure (" BigDecimal" , Nil ))
181
+ Decoder [BigDecimal ].decodeJson(Json .fromBoolean(true )) shouldBe Left (DecodingFailure (" BigDecimal" , Nil ))
148
182
forAll(arbitrary[BigDecimal ], minSuccessful(10000 )) { x =>
149
183
val y = x.apply(JsonReader .bigDecimalMathContext)
150
184
Decoder [BigDecimal ].decodeJson(Json .fromString(x.toString)).getOrElse(null ) shouldBe y
0 commit comments