22
33import java .util .Collections ;
44import java .util .List ;
5+ import java .util .Locale ;
56import java .util .regex .Matcher ;
67import java .util .regex .Pattern ;
8+ import java .util .stream .Stream ;
79
810import org .junit .jupiter .api .RepeatedTest ;
911import org .junit .jupiter .api .Test ;
12+ import org .junit .jupiter .params .ParameterizedTest ;
13+ import org .junit .jupiter .params .provider .Arguments ;
14+ import org .junit .jupiter .params .provider .MethodSource ;
1015
1116import static org .assertj .core .api .Assertions .assertThat ;
1217import static org .mockito .Mockito .doReturn ;
@@ -20,22 +25,31 @@ void testUsername() {
2025 assertThat (faker .credentials ().username ()).matches ("^(\\ w+)\\ .(\\ w+)$" );
2126 }
2227
23- @ Test
24- void testUsernameWithSpaces () {
28+ @ ParameterizedTest
29+ @ MethodSource ("userNameWithSpacesProvider" )
30+ @ SuppressWarnings ("removal" )
31+ void testUsernameWithSpaces (String firstName , String lastName , String expected ) {
32+ Locale locale = new Locale ("TR" );
2533 Name name = mock ();
26- doReturn ("Jin Quan" ).when (name ).firstName ();
27- doReturn ("D'Artagnan" ).when (name ).lastName ();
34+ doReturn (firstName ).when (name ).firstName ();
35+ doReturn (lastName ).when (name ).lastName ();
2836
29- BaseFaker mockedFaker = new BaseFaker () {
37+ BaseFaker mockedFaker = new BaseFaker (locale ) {
3038 @ Override
3139 public Name name () {
3240 return name ;
3341 }
3442 };
35- assertThat (mockedFaker .credentials ().username ())
36- .doesNotContain (" " , "'" )
37- .matches ("^(\\ w+)\\ .(\\ w+)$" )
38- .matches ("^\\ p{javaLowerCase}+\\ .\\ p{javaLowerCase}+$" );
43+
44+ assertThat (mockedFaker .internet ().username ())
45+ .isEqualTo (expected );
46+ }
47+
48+ private static Stream <Arguments > userNameWithSpacesProvider () {
49+ return Stream .of (
50+ Arguments .of ("Jin Quan" , "D'Artagnan" , "jinquan.dartagnan" ),
51+ Arguments .of ("Ivan Ivanov" , "Другой Язык" , "ıvanıvanov.другойязык" )
52+ );
3953 }
4054
4155 @ RepeatedTest (100 )
0 commit comments