@@ -92,4 +92,66 @@ public void CanGetArgentinaStandardTime()
9292 var tz = TZConvert . GetTimeZoneInfo ( "Argentina Standard Time" ) ;
9393 Assert . NotNull ( tz ) ;
9494 }
95+
96+ [ Fact ]
97+ public void CanGetIanaCanonicalNameForAlias ( )
98+ {
99+ var result = TZConvert . TryGetIanaCanonicalName ( "Europe/Jersey" , out var canonicalIanaName ) ;
100+
101+ Assert . True ( result , $ "{ nameof ( TZConvert . TryGetIanaCanonicalName ) } should succeed for alias.") ;
102+ Assert . Equal ( "Europe/London" , canonicalIanaName ) ;
103+ }
104+
105+ [ Fact ]
106+ public void CanGetIanaCanonicalNameForCanonicalName ( )
107+ {
108+ var result = TZConvert . TryGetIanaCanonicalName ( "Africa/Maputo" , out var canonicalIanaName ) ;
109+
110+ Assert . True ( result , $ "{ nameof ( TZConvert . TryGetIanaCanonicalName ) } should succeed for canonical time zone name.") ;
111+ Assert . Equal ( "Africa/Maputo" , canonicalIanaName ) ;
112+ }
113+
114+ [ Theory ]
115+ [ InlineData ( null ) ]
116+ [ InlineData ( "" ) ]
117+ [ InlineData ( " " ) ]
118+ [ InlineData ( "NOT-A-TIME-ZONE" ) ]
119+ public void CannotGetIanaCanonicalNameForUnknownOrInvalidName ( string ? name )
120+ {
121+ var result = TZConvert . TryGetIanaCanonicalName ( name , out _ ) ;
122+
123+ Assert . False ( result , $ "{ nameof ( TZConvert . TryGetIanaCanonicalName ) } should fail for invalid or unknown time zone name.") ;
124+ }
125+
126+ [ Fact ]
127+ public void CanGetIanaCanonicalNameForAllKnownIanaTimeZones ( )
128+ {
129+ var names = TZConvert . KnownIanaTimeZoneNames . ToList ( ) ;
130+
131+ foreach ( var name in names )
132+ {
133+ var result = TZConvert . TryGetIanaCanonicalName ( name , out _ ) ;
134+
135+ Assert . True ( result , $ "{ nameof ( TZConvert . TryGetIanaCanonicalName ) } should succeed for \" { name } \" .") ;
136+ }
137+ }
138+
139+ [ Theory ]
140+ [ InlineData ( "Australia/Brisbane" ) ]
141+ [ InlineData ( "Antarctica/Troll" ) ]
142+ [ InlineData ( "America/Adak" ) ]
143+ public void CanFindCanonicalTimeZoneInCanonicalNames ( string name )
144+ {
145+ var result = TZConvert . KnownIanaCanonicalNames . Contains ( name ) ;
146+
147+ Assert . True ( result , $ "{ nameof ( TZConvert . KnownIanaCanonicalNames ) } should contain \" { name } \" .") ;
148+ }
149+
150+ [ Fact ]
151+ public void CannotFindAliasInCanonicalNames ( )
152+ {
153+ var result = TZConvert . KnownIanaCanonicalNames . Contains ( "Australia/Queensland" ) ;
154+
155+ Assert . False ( result , $ "{ nameof ( TZConvert . KnownIanaCanonicalNames ) } should not contain \" Australia/Queensland\" .") ;
156+ }
95157}
0 commit comments