Skip to content

Commit 1b5c0da

Browse files
committed
#45 - Add test for Json Alias annotation
1 parent a348233 commit 1b5c0da

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.example.customer.alias;
2+
3+
import io.avaje.jsonb.Json;
4+
5+
@Json
6+
public record WithAlias(int id, @Json.JsonAlias({"something", "something2"}) String alias, String message) {
7+
8+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.example.customer.alias;
2+
3+
import io.avaje.jsonb.JsonType;
4+
import io.avaje.jsonb.Jsonb;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.assertj.core.api.Assertions.assertThat;
8+
9+
class WithAliasTest {
10+
Jsonb jsonb = Jsonb.builder().build();
11+
12+
@Test
13+
void toJsonFromJson() {
14+
var bean = new WithAlias(42, "foo", "bar");
15+
String asJson = jsonb.toJson(bean);
16+
assertThat(asJson).isEqualTo("{\"id\":42,\"alias\":\"foo\",\"message\":\"bar\"}");
17+
18+
JsonType<WithAlias> type = jsonb.type(WithAlias.class);
19+
WithAlias fromJson = type.fromJson(asJson);
20+
21+
assertThat(fromJson).isEqualTo(bean);
22+
assertThat(type.fromJson("{\"id\":42,\"something\":\"foo\",\"message\":\"bar\"}")).isEqualTo(bean);
23+
assertThat(type.fromJson("{\"id\":42,\"something2\":\"foo\",\"message\":\"bar\"}")).isEqualTo(bean);
24+
assertThat(type.fromJson("{\"id\":42,\"alias\":\"foo\",\"message\":\"bar\"}")).isEqualTo(bean);
25+
}
26+
}

jsonb-generator/src/main/java/io/avaje/jsonb/generator/FieldReader.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,15 +304,12 @@ void writeFromJsonSwitch(Append writer, boolean defaultConstructor, String varNa
304304
if (unmapped) {
305305
return;
306306
}
307-
308307
if (aliases != null) {
309-
310308
for (final String alias : aliases) {
311309
writer.append(" case \"%s\":", alias);
312310
writer.eol();
313311
}
314312
}
315-
316313
writer.append(" case \"%s\": {", propertyName).eol();
317314
if (!deserialize) {
318315
writer.append(" reader.skipValue();");

0 commit comments

Comments
 (0)