File tree Expand file tree Collapse file tree 5 files changed +48
-0
lines changed
jvmMain/kotlin/io/ks3/java
jvmTest/kotlin/io/ks3/java/util Expand file tree Collapse file tree 5 files changed +48
-0
lines changed Original file line number Diff line number Diff line change 44
44
| AtomicBoolean | AtomicBooleanSerializer | ` true ` |
45
45
| AtomicLong | AtomicLongSerializer | ` 22 ` |
46
46
| Locale | LocaleSerializer | ` "en_US" ` |
47
+ | Currency | CurrencySerializer | ` "AUD" ` |
Original file line number Diff line number Diff line change @@ -178,6 +178,15 @@ public final class io/ks3/java/util/AtomicLongSerializer : kotlinx/serialization
178
178
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/concurrent/atomic/AtomicLong;)V
179
179
}
180
180
181
+ public final class io/ks3/java/util/CurrencySerializer : kotlinx/serialization/KSerializer {
182
+ public static final field INSTANCE Lio/ks3/java/util/CurrencySerializer;
183
+ public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
184
+ public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/Currency;
185
+ public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
186
+ public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
187
+ public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/Currency;)V
188
+ }
189
+
181
190
public final class io/ks3/java/util/LocaleSerializer : kotlinx/serialization/KSerializer {
182
191
public static final field INSTANCE Lio/ks3/java/util/LocaleSerializer;
183
192
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import io.ks3.java.time.LocalDateTimeAsStringSerializer
12
12
import io.ks3.java.time.LocalTimeAsStringSerializer
13
13
import io.ks3.java.time.OffsetDateTimeAsStringSerializer
14
14
import io.ks3.java.time.YearMonthAsStringSerializer
15
+ import io.ks3.java.util.CurrencySerializer
15
16
import io.ks3.java.util.LocaleSerializer
16
17
import io.ks3.java.util.UuidSerializer
17
18
import kotlinx.serialization.Serializable
@@ -24,6 +25,7 @@ import java.time.LocalDateTime
24
25
import java.time.LocalTime
25
26
import java.time.OffsetDateTime
26
27
import java.time.YearMonth
28
+ import java.util.Currency
27
29
import java.util.Locale
28
30
import java.util.UUID
29
31
@@ -78,3 +80,7 @@ typealias LocaleAsString =
78
80
typealias UuidAsString =
79
81
@Serializable(with = UuidSerializer ::class )
80
82
UUID
83
+
84
+ typealias CurrencyAsString =
85
+ @Serializable(with = CurrencySerializer ::class )
86
+ Currency
Original file line number Diff line number Diff line change
1
+ package io.ks3.java.util
2
+
3
+ import io.ks3.standard.stringSerializer
4
+ import kotlinx.serialization.KSerializer
5
+ import java.util.Currency
6
+
7
+ object CurrencySerializer : KSerializer<Currency> by stringSerializer(Currency : :getInstance)
Original file line number Diff line number Diff line change
1
+ package io.ks3.java.util
2
+
3
+ import io.kotest.core.spec.style.FreeSpec
4
+ import io.kotest.matchers.shouldBe
5
+ import io.kotest.property.Arb
6
+ import io.kotest.property.arbitrary.map
7
+ import io.kotest.property.arbitrary.of
8
+ import io.ks3.test.generateSerializerTests
9
+ import kotlinx.serialization.json.Json
10
+ import java.util.Currency
11
+
12
+ class CurrencySerializerTest :
13
+ FreeSpec (
14
+ {
15
+ include(
16
+ generateSerializerTests(
17
+ CurrencySerializer ,
18
+ Arb .of(Currency .getAvailableCurrencies()).map { it },
19
+ ),
20
+ )
21
+ " sample" {
22
+ Json .encodeToString(CurrencySerializer , Currency .getInstance(" AUD" )) shouldBe " \" AUD\" "
23
+ }
24
+ },
25
+ )
You can’t perform that action at this time.
0 commit comments