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 4444| AtomicBoolean | AtomicBooleanSerializer | ` true ` |
4545| AtomicLong | AtomicLongSerializer | ` 22 ` |
4646| 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
178178 public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/concurrent/atomic/AtomicLong;)V
179179}
180180
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+
181190public final class io/ks3/java/util/LocaleSerializer : kotlinx/serialization/KSerializer {
182191 public static final field INSTANCE Lio/ks3/java/util/LocaleSerializer;
183192 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
1212import io.ks3.java.time.LocalTimeAsStringSerializer
1313import io.ks3.java.time.OffsetDateTimeAsStringSerializer
1414import io.ks3.java.time.YearMonthAsStringSerializer
15+ import io.ks3.java.util.CurrencySerializer
1516import io.ks3.java.util.LocaleSerializer
1617import io.ks3.java.util.UuidSerializer
1718import kotlinx.serialization.Serializable
@@ -24,6 +25,7 @@ import java.time.LocalDateTime
2425import java.time.LocalTime
2526import java.time.OffsetDateTime
2627import java.time.YearMonth
28+ import java.util.Currency
2729import java.util.Locale
2830import java.util.UUID
2931
@@ -78,3 +80,7 @@ typealias LocaleAsString =
7880typealias UuidAsString =
7981 @Serializable(with = UuidSerializer ::class )
8082 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