@@ -16,6 +16,7 @@ record EmptyRecord() {}
1616 record StringRecord (String aString ) {}
1717
1818 record MultiValueRecord (String aString , Map <String , List <Boolean >> fancy ) {}
19+ record NestedMultiValueRecord (String aString , Map <String , List <Boolean >> fancy , MultiValueRecord record ) {}
1920
2021 @ Test
2122 void getValueSchema_emptyRecord () {
@@ -32,12 +33,16 @@ void getValueSchema_stringRecord() {
3233 StringRecord ::aString ,
3334 new StringValueMapper ()
3435 ))).getValueSchema ();
35- assertEquals (ValueSchema .ofStruct (Map .of ("aString" , ValueSchema .STRING )), valueSchema );
36+ assertEquals (ValueSchema .withMeta (
37+ "item_order" ,
38+ SerializedValue .of (List .of (SerializedValue .of ("aString" ))),
39+ ValueSchema .ofStruct (Map .of ("aString" , ValueSchema .STRING ))),
40+ valueSchema );
41+
3642 }
3743
38- @ Test
39- void getValueSchema_multiValueRecord () {
40- final var valueSchema = new RecordValueMapper <>(
44+ final RecordValueMapper <MultiValueRecord > getMultiValueRecordValueMapper () {
45+ return new RecordValueMapper <>(
4146 MultiValueRecord .class ,
4247 List .of (
4348 new RecordValueMapper .Component <>(
@@ -49,15 +54,65 @@ void getValueSchema_multiValueRecord() {
4954 "fancy" ,
5055 MultiValueRecord ::fancy ,
5156 new MapValueMapper <>(new StringValueMapper (), new ListValueMapper <>(new BooleanValueMapper ()))
57+ )));
58+ }
59+
60+ @ Test
61+ void getValueSchema_multiValueRecord () {
62+ final var valueSchema = getMultiValueRecordValueMapper ().getValueSchema ();
63+ assertEquals (
64+ ValueSchema .withMeta (
65+ "item_order" ,
66+ SerializedValue .of (List .of (SerializedValue .of ("aString" ), SerializedValue .of ("fancy" ))),
67+ ValueSchema .ofStruct (Map .of (
68+ "aString" , ValueSchema .STRING ,
69+ "fancy" , ValueSchema .ofSeries (ValueSchema .ofStruct (Map .of (
70+ "key" , ValueSchema .STRING ,
71+ "value" , ValueSchema .ofSeries (ValueSchema .BOOLEAN ))))))),
72+ valueSchema );
73+ }
74+
75+ @ Test
76+ void getValueSchema_nested () {
77+ final var valueSchema = new RecordValueMapper <>(
78+ NestedMultiValueRecord .class ,
79+ List .of (
80+ new RecordValueMapper .Component <>(
81+ "aString" ,
82+ NestedMultiValueRecord ::aString ,
83+ new StringValueMapper ()
84+ ),
85+ new RecordValueMapper .Component <>(
86+ "fancy" ,
87+ NestedMultiValueRecord ::fancy ,
88+ new MapValueMapper <>(new StringValueMapper (), new ListValueMapper <>(new BooleanValueMapper ()))
89+ ),
90+ new RecordValueMapper .Component <>(
91+ "record" ,
92+ NestedMultiValueRecord ::record ,
93+ getMultiValueRecordValueMapper ()
5294 ))).getValueSchema ();
53- assertEquals (ValueSchema .ofStruct (Map .of (
54- "aString" , ValueSchema .STRING ,
55- "fancy" , ValueSchema .ofSeries (
95+ assertEquals (
96+ ValueSchema .withMeta (
97+ "item_order" ,
98+ SerializedValue .of (List .of (
99+ SerializedValue .of ("aString" ),
100+ SerializedValue .of ("fancy" ),
101+ SerializedValue .of ("record" ))),
56102 ValueSchema .ofStruct (Map .of (
57- "key" , ValueSchema .STRING ,
58- "value" , ValueSchema .ofSeries (ValueSchema .BOOLEAN )
59- ))
60- ))), valueSchema );
103+ "aString" , ValueSchema .STRING ,
104+ "fancy" , ValueSchema .ofSeries (ValueSchema .ofStruct (Map .of (
105+ "key" , ValueSchema .STRING ,
106+ "value" , ValueSchema .ofSeries (ValueSchema .BOOLEAN )))),
107+ "record" , ValueSchema .withMeta (
108+ "item_order" ,
109+ SerializedValue .of (List .of (SerializedValue .of ("aString" ), SerializedValue .of ("fancy" ))),
110+ ValueSchema .ofStruct (Map .of (
111+ "aString" , ValueSchema .STRING ,
112+ "fancy" , ValueSchema .ofSeries (ValueSchema .ofStruct (Map .of (
113+ "key" , ValueSchema .STRING ,
114+ "value" , ValueSchema .ofSeries (ValueSchema .BOOLEAN )))))))))),
115+ valueSchema );
61116 }
62117
63118 @ Test
0 commit comments