@@ -77,10 +77,19 @@ public void TestEnums()
77
77
Assert . Equal ( expectSchema , actual ) ;
78
78
}
79
79
[ Fact ]
80
- public void TestAliases ( )
80
+ public void TestAliasesList ( )
81
81
{
82
- var expectSchema = "{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" ClassWithAliases\" ,\" aliases\" :[\" InterLives\" ,\" CountrySide\" ],\" fields\" :[{\" name\" :\" City\" ,\" aliases\" :[\" TownHall\" ,\" Province\" ],\" type\" :[\" null\" ,\" string\" ],\" default\" :null},{\" name\" :\" State\" ,\" type\" :[\" null\" ,\" string\" ],\" default\" :null},{\" name\" :\" Movie\" ,\" aliases\" :[\" PopularMovie\" ],\" type\" :[\" null\" ,{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" InnerAliases\" ,\" fields\" :[{\" name\" :\" Container\" ,\" aliases\" :[\" Media\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" MediaContainer\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" Flv\" ,\" Mp3\" ,\" Avi\" ,\" Mp4\" ]}},{\" name\" :\" Title\" ,\" type\" :[\" null\" ,\" string\" ],\" default\" :null}]}],\" default\" :null},{\" name\" :\" Popular\" ,\" aliases\" :[\" PopularMediaType\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" MediaType\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" Video\" ,\" Audio\" ]}},{\" name\" :\" Movies\" ,\" aliases\" :[\" MovieCollection\" ],\" type\" :[\" null\" ,{\" type\" :\" array\" ,\" items\" :{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" MovieAliase\" ,\" aliases\" :[\" Movies_Aliase\" ],\" fields\" :[{\" name\" :\" Dated\" ,\" aliases\" :[\" DateCreated\" ],\" type\" :\" long\" },{\" name\" :\" Year\" ,\" aliases\" :[\" ReleaseYear\" ],\" type\" :\" int\" },{\" name\" :\" Month\" ,\" aliases\" :[\" ReleaseMonth\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" Month\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" January\" ,\" February\" ,\" March\" ,\" April\" ,\" June\" ,\" July\" ]}}]}}]},{\" name\" :\" YearlyMovies\" ,\" aliases\" :[\" MoviesByYear\" ],\" type\" :[\" null\" ,{\" type\" :\" map\" ,\" values\" :{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" MovieAliase\" ,\" aliases\" :[\" Movies_Aliase\" ],\" fields\" :[{\" name\" :\" Dated\" ,\" aliases\" :[\" DateCreated\" ],\" type\" :\" long\" },{\" name\" :\" Year\" ,\" aliases\" :[\" ReleaseYear\" ],\" type\" :\" int\" },{\" name\" :\" Month\" ,\" aliases\" :[\" ReleaseMonth\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" Month\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" January\" ,\" February\" ,\" March\" ,\" April\" ,\" June\" ,\" July\" ]}}]}}]}]}" ;
83
- var actual = typeof ( ClassWithAliases ) . GetSchema ( ) ;
82
+ var expectSchema = "{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" ClassWithAliasesWithList\" ,\" aliases\" :[\" InterLives\" ,\" CountrySide\" ],\" fields\" :[{\" name\" :\" City\" ,\" aliases\" :[\" TownHall\" ,\" Province\" ],\" type\" :[\" null\" ,\" string\" ],\" default\" :null},{\" name\" :\" State\" ,\" type\" :[\" null\" ,\" string\" ],\" default\" :null},{\" name\" :\" Movie\" ,\" aliases\" :[\" PopularMovie\" ],\" type\" :[\" null\" ,{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" InnerAliases\" ,\" fields\" :[{\" name\" :\" Container\" ,\" aliases\" :[\" Media\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" MediaContainer\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" Flv\" ,\" Mp3\" ,\" Avi\" ,\" Mp4\" ]}},{\" name\" :\" Title\" ,\" type\" :[\" null\" ,\" string\" ],\" default\" :null}]}],\" default\" :null},{\" name\" :\" Popular\" ,\" aliases\" :[\" PopularMediaType\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" MediaType\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" Video\" ,\" Audio\" ]}},{\" name\" :\" Movies\" ,\" aliases\" :[\" MovieCollection\" ],\" type\" :[\" null\" ,{\" type\" :\" array\" ,\" items\" :{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" MovieAliase\" ,\" aliases\" :[\" Movies_Aliase\" ],\" fields\" :[{\" name\" :\" Dated\" ,\" aliases\" :[\" DateCreated\" ],\" type\" :\" long\" },{\" name\" :\" Year\" ,\" aliases\" :[\" ReleaseYear\" ],\" type\" :\" int\" },{\" name\" :\" Month\" ,\" aliases\" :[\" ReleaseMonth\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" Month\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" January\" ,\" February\" ,\" March\" ,\" April\" ,\" June\" ,\" July\" ]}}]}}]}]}" ;
83
+ var actual = typeof ( ClassWithAliasesWithList ) . GetSchema ( ) ;
84
+ _output . WriteLine ( actual ) ;
85
+
86
+ Assert . Equal ( expectSchema , actual ) ;
87
+ }
88
+ [ Fact ]
89
+ public void TestAliasesDictionary ( )
90
+ {
91
+ var expectSchema = "{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" ClassWithAliasesWithDictionary\" ,\" aliases\" :[\" InterLives\" ,\" CountrySide\" ],\" fields\" :[{\" name\" :\" City\" ,\" aliases\" :[\" TownHall\" ,\" Province\" ],\" type\" :[\" null\" ,\" string\" ],\" default\" :null},{\" name\" :\" State\" ,\" type\" :[\" null\" ,\" string\" ],\" default\" :null},{\" name\" :\" Movie\" ,\" aliases\" :[\" PopularMovie\" ],\" type\" :[\" null\" ,{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" InnerAliases\" ,\" fields\" :[{\" name\" :\" Container\" ,\" aliases\" :[\" Media\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" MediaContainer\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" Flv\" ,\" Mp3\" ,\" Avi\" ,\" Mp4\" ]}},{\" name\" :\" Title\" ,\" type\" :[\" null\" ,\" string\" ],\" default\" :null}]}],\" default\" :null},{\" name\" :\" Popular\" ,\" aliases\" :[\" PopularMediaType\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" MediaType\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" Video\" ,\" Audio\" ]}},{\" name\" :\" YearlyMovies\" ,\" aliases\" :[\" MoviesByYear\" ],\" type\" :[\" null\" ,{\" type\" :\" map\" ,\" values\" :{\" type\" :\" record\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" name\" :\" MovieAliase\" ,\" aliases\" :[\" Movies_Aliase\" ],\" fields\" :[{\" name\" :\" Dated\" ,\" aliases\" :[\" DateCreated\" ],\" type\" :\" long\" },{\" name\" :\" Year\" ,\" aliases\" :[\" ReleaseYear\" ],\" type\" :\" int\" },{\" name\" :\" Month\" ,\" aliases\" :[\" ReleaseMonth\" ],\" type\" :{\" type\" :\" enum\" ,\" name\" :\" Month\" ,\" namespace\" :\" AvroSchemaGenerator.Tests\" ,\" symbols\" :[\" January\" ,\" February\" ,\" March\" ,\" April\" ,\" June\" ,\" July\" ]}}]}}]}]}" ;
92
+ var actual = typeof ( ClassWithAliasesWithDictionary ) . GetSchema ( ) ;
84
93
_output . WriteLine ( actual ) ;
85
94
86
95
Assert . Equal ( expectSchema , actual ) ;
@@ -184,7 +193,7 @@ public class Person
184
193
}
185
194
186
195
[ Aliases ( "InterLives" , "CountrySide" ) ]
187
- public sealed class ClassWithAliases
196
+ public sealed class ClassWithAliasesWithList
188
197
{
189
198
[ Aliases ( "TownHall" , "Province" ) ]
190
199
public string City { get ; set ; }
@@ -197,6 +206,19 @@ public sealed class ClassWithAliases
197
206
198
207
[ Aliases ( "MovieCollection" ) ]
199
208
public List < MovieAliase > Movies { get ; set ; }
209
+ }
210
+
211
+ [ Aliases ( "InterLives" , "CountrySide" ) ]
212
+ public sealed class ClassWithAliasesWithDictionary
213
+ {
214
+ [ Aliases ( "TownHall" , "Province" ) ]
215
+ public string City { get ; set ; }
216
+ public string State { get ; set ; }
217
+ [ Aliases ( "PopularMovie" ) ]
218
+ public InnerAliases Movie { get ; set ; }
219
+
220
+ [ Aliases ( "PopularMediaType" ) ]
221
+ public MediaType Popular { get ; set ; }
200
222
201
223
[ Aliases ( "MoviesByYear" ) ]
202
224
public Dictionary < int , MovieAliase > YearlyMovies { get ; set ; }
0 commit comments