Skip to content

Commit 5b6e59b

Browse files
ImmutablesTest - data classes moved to the same file
1 parent 351a936 commit 5b6e59b

File tree

5 files changed

+42
-51
lines changed

5 files changed

+42
-51
lines changed

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Circle.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11

22
package cz.habarta.typescript.generator;
33

4+
import com.fasterxml.jackson.annotation.JsonSubTypes;
5+
import com.fasterxml.jackson.annotation.JsonTypeInfo;
6+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
7+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
8+
import org.immutables.value.Value;
49
import org.junit.Assert;
510
import org.junit.Test;
611

@@ -38,4 +43,41 @@ public void testImmutables() {
3843
Assert.assertEquals(expected, output);
3944
}
4045

46+
47+
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "kind")
48+
@JsonSubTypes({
49+
@JsonSubTypes.Type(value = Square.class, name = "square"),
50+
@JsonSubTypes.Type(value = Rectangle.class, name = "rectangle"),
51+
@JsonSubTypes.Type(value = Circle.class, name = "circle"),
52+
})
53+
public static interface Shape {
54+
}
55+
56+
public static class Square implements Shape {
57+
public double size;
58+
}
59+
60+
@Value.Immutable
61+
@JsonSerialize(as = ImmutableRectangle.class)
62+
@JsonDeserialize(as = ImmutableRectangle.class)
63+
public static abstract class Rectangle implements Shape {
64+
public abstract double width();
65+
public abstract double height();
66+
67+
public static Rectangle.Builder builder() {
68+
return new Rectangle.Builder();
69+
}
70+
71+
public static final class Builder extends ImmutableRectangle.Builder {}
72+
}
73+
74+
@Value.Immutable
75+
@JsonSerialize(as = ImmutableCircle.class)
76+
@JsonDeserialize(as = ImmutableCircle.class)
77+
public static interface Circle extends Shape {
78+
double radius();
79+
80+
final class Builder extends ImmutableCircle.Builder {}
81+
}
82+
4183
}

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Rectangle.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Shape.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Square.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)