44package com .microsoft .aad .msal4j ;
55
66import labapi .*;
7+ import org .junit .jupiter .api .AfterEach ;
8+ import org .junit .jupiter .api .BeforeAll ;
9+ import org .junit .jupiter .api .BeforeEach ;
710import org .slf4j .Logger ;
811import org .slf4j .LoggerFactory ;
9- import org .testng .Assert ;
10- import org .testng .annotations .Test ;
12+ import org .junit .jupiter .api .Test ;
13+ import org .junit .jupiter .api .TestInstance ;
14+ import org .junit .jupiter .params .ParameterizedTest ;
15+ import org .junit .jupiter .params .provider .MethodSource ;
16+ import static org .junit .jupiter .api .Assertions .assertEquals ;
17+ import static org .junit .jupiter .api .Assertions .assertNotEquals ;
18+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
1119
1220import java .net .MalformedURLException ;
1321import java .net .URI ;
1725import java .util .Map ;
1826import java .util .concurrent .ExecutionException ;
1927
20- public class AcquireTokenInteractiveIT extends SeleniumTest {
28+ @ TestInstance (TestInstance .Lifecycle .PER_CLASS )
29+ class AcquireTokenInteractiveIT extends SeleniumTest {
2130 private final static Logger LOG = LoggerFactory .getLogger (AuthorizationCodeIT .class );
2231
2332 private Config cfg ;
2433
25- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
26- public void acquireTokenInteractive_ManagedUser (String environment ) {
34+
35+ @ BeforeAll
36+ public void setupUserProvider () {
37+ setUpLapUserProvider ();
38+ }
39+
40+ @ AfterEach
41+ public void stopBrowser () {
42+ cleanUp ();
43+ }
44+
45+ @ BeforeEach
46+ public void startBrowser () {
47+ startUpBrowser ();
48+ }
49+
50+ @ ParameterizedTest
51+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
52+ void acquireTokenInteractive_ManagedUser (String environment ) {
2753 cfg = new Config (environment );
2854
2955 User user = labUserProvider .getDefaultUser (cfg .azureEnvironment );
3056 assertAcquireTokenCommon (user , cfg .organizationsAuthority (), cfg .graphDefaultScope ());
3157 }
3258
3359 @ Test ()
34- public void acquireTokenInteractive_ADFSv2019_OnPrem () {
60+ void acquireTokenInteractive_ADFSv2019_OnPrem () {
3561 User user = labUserProvider .getOnPremAdfsUser (FederationProvider .ADFS_2019 );
3662 assertAcquireTokenCommon (user , TestConstants .ADFS_AUTHORITY , TestConstants .ADFS_SCOPE );
3763 }
3864
39- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
40- public void acquireTokenInteractive_ADFSv2019_Federated (String environment ) {
65+ @ ParameterizedTest
66+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
67+ void acquireTokenInteractive_ADFSv2019_Federated (String environment ) {
4168 cfg = new Config (environment );
4269
4370 User user = labUserProvider .getFederatedAdfsUser (cfg .azureEnvironment , FederationProvider .ADFS_2019 );
4471 assertAcquireTokenCommon (user , cfg .organizationsAuthority (), cfg .graphDefaultScope ());
4572 }
4673
47- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
48- public void acquireTokenInteractive_ADFSv4_Federated (String environment ) {
74+ @ ParameterizedTest
75+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
76+ void acquireTokenInteractive_ADFSv4_Federated (String environment ) {
4977 cfg = new Config (environment );
5078
5179 User user = labUserProvider .getFederatedAdfsUser (cfg .azureEnvironment , FederationProvider .ADFS_4 );
5280 assertAcquireTokenCommon (user , cfg .organizationsAuthority (), cfg .graphDefaultScope ());
5381 }
5482
55- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
56- public void acquireTokenInteractive_ADFSv3_Federated (String environment ) {
83+ @ ParameterizedTest
84+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
85+ void acquireTokenInteractive_ADFSv3_Federated (String environment ) {
5786 cfg = new Config (environment );
5887
5988 User user = labUserProvider .getFederatedAdfsUser (cfg .azureEnvironment , FederationProvider .ADFS_3 );
6089 assertAcquireTokenCommon (user , cfg .organizationsAuthority (), cfg .graphDefaultScope ());
6190 }
6291
63- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
64- public void acquireTokenInteractive_ADFSv2_Federated (String environment ) {
92+ @ ParameterizedTest
93+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
94+ void acquireTokenInteractive_ADFSv2_Federated (String environment ) {
6595 cfg = new Config (environment );
6696
6797 User user = labUserProvider .getFederatedAdfsUser (cfg .azureEnvironment , FederationProvider .ADFS_2 );
6898 assertAcquireTokenCommon (user , cfg .organizationsAuthority (), cfg .graphDefaultScope ());
6999 }
70100
71- @ Test
72- public void acquireTokenInteractive_Ciam () {
73- User user = labUserProvider .getCiamUser ();
74-
75- Map <String , String > extraQueryParameters = new HashMap <>();
76- extraQueryParameters .put ("dc" ,"ESTS-PUB-EUS-AZ1-FD000-TEST1" );
77-
78- PublicClientApplication pca ;
79- try {
80- pca = PublicClientApplication .builder (
81- user .getAppId ()).
82- authority ("https://" + user .getLabName () + ".ciamlogin.com/" )
83- .build ();
84- } catch (MalformedURLException ex ) {
85- throw new RuntimeException (ex .getMessage ());
86- }
87-
88- IAuthenticationResult result ;
89- try {
90- URI url = new URI ("http://localhost:8080" );
91-
92- SystemBrowserOptions browserOptions =
93- SystemBrowserOptions
94- .builder ()
95- .openBrowserAction (new SeleniumOpenBrowserAction (user , pca ))
96- .build ();
97-
98- InteractiveRequestParameters parameters = InteractiveRequestParameters
99- .builder (url )
100- .scopes (Collections .singleton (TestConstants .GRAPH_DEFAULT_SCOPE ))
101- .extraQueryParameters (extraQueryParameters )
102- .systemBrowserOptions (browserOptions )
103- .build ();
104-
105- result = pca .acquireToken (parameters ).get ();
106-
107- } catch (Exception e ) {
108- LOG .error ("Error acquiring token with authCode: " + e .getMessage ());
109- throw new RuntimeException ("Error acquiring token with authCode: " + e .getMessage ());
110- }
111-
112- assertTokenResultNotNull (result );
113- Assert .assertEquals (user .getUpn (), result .account ().username ());
114- }
115-
116- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
117- public void acquireTokenWithAuthorizationCode_B2C_Local (String environment ) {
101+ @ ParameterizedTest
102+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
103+ void acquireTokenWithAuthorizationCode_B2C_Local (String environment ) {
118104 cfg = new Config (environment );
119105
120106 User user = labUserProvider .getB2cUser (cfg .azureEnvironment , B2CProvider .LOCAL );
121107 assertAcquireTokenB2C (user , TestConstants .B2C_AUTHORITY );
122108 }
123109
124- @ Test (dataProvider = "environments" , dataProviderClass = EnvironmentsProvider .class )
125- public void acquireTokenWithAuthorizationCode_B2C_LegacyFormat (String environment ) {
110+ @ ParameterizedTest
111+ @ MethodSource ("com.microsoft.aad.msal4j.EnvironmentsProvider#createData" )
112+ void acquireTokenWithAuthorizationCode_B2C_LegacyFormat (String environment ) {
126113 cfg = new Config (environment );
127114
128115 User user = labUserProvider .getB2cUser (cfg .azureEnvironment , B2CProvider .LOCAL );
129116 assertAcquireTokenB2C (user , TestConstants .B2C_AUTHORITY_LEGACY_FORMAT );
130117 }
131118
132119 @ Test
133- public void acquireTokenInteractive_ManagedUser_InstanceAware () {
120+ void acquireTokenInteractive_ManagedUser_InstanceAware () {
134121 cfg = new Config (AzureEnvironment .AZURE );
135122
136123 User user = labUserProvider .getDefaultUser (AzureEnvironment .AZURE_US_GOVERNMENT );
@@ -154,7 +141,7 @@ private void assertAcquireTokenCommon(User user, String authority, String scope)
154141 scope );
155142
156143 assertTokenResultNotNull (result );
157- Assert . assertEquals (user .getUpn (), result .account ().username ());
144+ assertEquals (user .getUpn (), result .account ().username ());
158145 }
159146
160147 private void assertAcquireTokenB2C (User user , String authority ) {
@@ -187,13 +174,13 @@ private void assertAcquireTokenInstanceAware(User user) {
187174 IAuthenticationResult result = acquireTokenInteractive_instanceAware (user , pca , cfg .graphDefaultScope ());
188175
189176 assertTokenResultNotNull (result );
190- Assert . assertEquals (user .getUpn (), result .account ().username ());
177+ assertEquals (user .getUpn (), result .account ().username ());
191178
192179 //This test is using a client app with the login.microsoftonline.com config to get tokens for a login.microsoftonline.us user,
193180 // so when using instance aware the result's environment will be for the user/account and not the client app
194- Assert . assertNotEquals (pca .authenticationAuthority .host , result .environment ());
195- Assert . assertEquals (result .account ().environment (), result .environment ());
196- Assert . assertEquals (result .account ().environment (), pca .getAccounts ().join ().iterator ().next ().environment ());
181+ assertNotEquals (pca .authenticationAuthority .host , result .environment ());
182+ assertEquals (result .account ().environment (), result .environment ());
183+ assertEquals (result .account ().environment (), pca .getAccounts ().join ().iterator ().next ().environment ());
197184
198185 IAuthenticationResult cachedResult ;
199186 try {
@@ -203,17 +190,7 @@ private void assertAcquireTokenInstanceAware(User user) {
203190 }
204191
205192 //Ensure that the cached environment matches the original auth result environment (.us) instead of the client app's (.com)
206- Assert .assertEquals (result .account ().environment (), cachedResult .environment ());
207- }
208-
209- //@Test
210- public void acquireTokensInHomeAndGuestClouds_ArlingtonAccount () throws MalformedURLException , ExecutionException , InterruptedException {
211- acquireTokensInHomeAndGuestClouds (AzureEnvironment .AZURE_US_GOVERNMENT );
212- }
213-
214- //@Test
215- public void acquireTokensInHomeAndGuestClouds_MooncakeAccount () throws MalformedURLException , ExecutionException , InterruptedException {
216- acquireTokensInHomeAndGuestClouds (AzureEnvironment .AZURE_CHINA );
193+ assertEquals (result .account ().environment (), cachedResult .environment ());
217194 }
218195
219196 private IAuthenticationResult acquireTokenSilently (IPublicClientApplication pca , IAccount account , String scope ) throws InterruptedException , ExecutionException , MalformedURLException {
@@ -251,11 +228,11 @@ public void afterCacheAccess(ITokenCacheAccessContext iTokenCacheAccessContext)
251228
252229 IAuthenticationResult result = acquireTokenInteractive (user , publicCloudPca , TestConstants .USER_READ_SCOPE );
253230 assertTokenResultNotNull (result );
254- Assert . assertEquals (user .getHomeUPN (), result .account ().username ());
231+ assertEquals (user .getHomeUPN (), result .account ().username ());
255232
256233 publicCloudPca .removeAccount (publicCloudPca .getAccounts ().join ().iterator ().next ()).join ();
257234
258- Assert . assertEquals (publicCloudPca .getAccounts ().join ().size (), 0 );
235+ assertEquals (publicCloudPca .getAccounts ().join ().size (), 0 );
259236 }
260237
261238 private IAuthenticationResult acquireTokenInteractive (
@@ -289,9 +266,9 @@ private IAuthenticationResult acquireTokenInteractive(
289266 }
290267
291268 private void assertTokenResultNotNull (IAuthenticationResult result ) {
292- Assert . assertNotNull (result );
293- Assert . assertNotNull (result .accessToken ());
294- Assert . assertNotNull (result .idToken ());
269+ assertNotNull (result );
270+ assertNotNull (result .accessToken ());
271+ assertNotNull (result .idToken ());
295272 }
296273
297274 private IAuthenticationResult acquireTokenInteractive_instanceAware (
0 commit comments