1+ using SharedKernel . Helpers ;
2+
3+ namespace SharedKernel . Tests ;
4+
5+ public class PhoneUtilTests
6+ {
7+ [ Theory ]
8+ [ InlineData ( "+37493910593" , "+37493910593" ) ]
9+ [ InlineData ( "37493910593" , "+37493910593" ) ]
10+ [ InlineData ( "093910593" , "+37493910593" ) ]
11+ [ InlineData ( "93910593" , "+37493910593" ) ]
12+ [ InlineData ( "(374)93910593" , "+37493910593" ) ]
13+ // tolerant separators
14+ [ InlineData ( "+374 93 910 593" , "+37493910593" ) ]
15+ [ InlineData ( "374-93-910-593" , "+37493910593" ) ]
16+ [ InlineData ( "(374) 93 910 593" , "+37493910593" ) ]
17+ public void Formats_Armenian_Numbers_When_Valid ( string input , string expected )
18+ {
19+ var ok = PhoneUtil . TryFormatArmenianMsisdn ( input , out var formatted ) ;
20+ Assert . True ( ok ) ;
21+ Assert . Equal ( expected , formatted ) ;
22+ }
23+
24+ [ Theory ]
25+ [ InlineData ( "+12025550199" ) ] // foreign
26+ [ InlineData ( "441234567890" ) ] // foreign
27+ [ InlineData ( "+++37493910593" ) ] // invalid
28+ [ InlineData ( "37493A10593" ) ] // invalid char
29+ [ InlineData ( "(374)1234567" ) ] // only 7 digits after prefix
30+ [ InlineData ( "123456789" ) ] // 9 digits but not starting with 0
31+ public void Returns_Original_When_Not_Armenian ( string input )
32+ {
33+ var ok = PhoneUtil . TryFormatArmenianMsisdn ( input , out var formatted ) ;
34+ Assert . False ( ok ) ;
35+ Assert . Equal ( input , formatted ) ;
36+ }
37+
38+ [ Fact ]
39+ public void Empty_String_Returns_False_And_Null ( )
40+ {
41+ var ok = PhoneUtil . TryFormatArmenianMsisdn ( "" , out var formatted ) ;
42+ Assert . False ( ok ) ;
43+ Assert . Null ( formatted ) ;
44+ }
45+
46+ [ Fact ]
47+ public void Whitespace_String_Returns_False_And_Null ( )
48+ {
49+ var ok = PhoneUtil . TryFormatArmenianMsisdn ( " " , out var formatted ) ;
50+ Assert . False ( ok ) ;
51+ Assert . Null ( formatted ) ;
52+ }
53+
54+ [ Fact ]
55+ public void Null_Returns_False_And_Null ( )
56+ {
57+ var ok = PhoneUtil . TryFormatArmenianMsisdn ( null , out var formatted ) ;
58+ Assert . False ( ok ) ;
59+ Assert . Null ( formatted ) ;
60+ }
61+ }
0 commit comments