Skip to content

Commit 5d7afb7

Browse files
committed
Add unit tests for onboarding IPC fields
- MsalBrokerRequestAdapterTests: verify onboardingSeedJson propagates from InteractiveTokenCommandParameters into BrokerRequest, and is null when not set - MsalBrokerResultAdapterTests: verify onboardingBlob round-trips through the Bundle (BrokerResult -> bundle -> BrokerResult), and is null when not set
1 parent c1cdb9c commit 5d7afb7

2 files changed

Lines changed: 99 additions & 0 deletions

File tree

common/src/test/java/com/microsoft/identity/common/internal/request/MsalBrokerRequestAdapterTests.java

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,4 +386,73 @@ public void testGetRequestBundleForAadDeviceIdRequest() {
386386
assertEquals(mockRedirectUri, brokerRequest.getRedirect());
387387
assertEquals(mockTenantId, brokerRequest.getTenantId());
388388
}
389+
390+
/**
391+
* Verify that {@code onboardingSeedJson} from {@link InteractiveTokenCommandParameters}
392+
* is propagated into {@link BrokerRequest} by
393+
* {@link MsalBrokerRequestAdapter#brokerRequestFromAcquireTokenParameters(InteractiveTokenCommandParameters)}.
394+
*/
395+
@Test
396+
public void test_brokerRequestFromAcquireTokenParameters_PropagatesOnboardingSeedJson() {
397+
final String seedJson = "{\"schema_version\":\"1.0.0\","
398+
+ "\"session_correlation_id\":\"abc-123\","
399+
+ "\"onboarding_mode\":\"brokered\"}";
400+
final Set<String> scopes = new HashSet<>();
401+
scopes.add("user.read");
402+
403+
final IPlatformComponents components = MockPlatformComponentsFactory.getNonFunctionalBuilder().build();
404+
final AndroidInteractiveTokenCommandParameters params = AndroidInteractiveTokenCommandParameters.builder()
405+
.platformComponents(components)
406+
.correlationId("987d8962-3f4d-4054-a852-ac0c4b6a602e")
407+
.clientId("aClientId")
408+
.redirectUri("msauth://com.example/foo")
409+
.applicationName("com.example")
410+
.applicationVersion("1.0.0")
411+
.sdkType(SdkType.MSAL)
412+
.sdkVersion("5.4.0")
413+
.authority(new AzureActiveDirectoryAuthority())
414+
.scopes(scopes)
415+
.authenticationScheme(new BearerAuthenticationSchemeInternal())
416+
.prompt(OpenIdConnectPromptParameter.LOGIN)
417+
.requiredBrokerProtocolVersion("10.0")
418+
.onboardingSeedJson(seedJson)
419+
.build();
420+
421+
final BrokerRequest brokerRequest =
422+
new MsalBrokerRequestAdapter().brokerRequestFromAcquireTokenParameters(params);
423+
424+
assertEquals(seedJson, brokerRequest.getOnboardingSeedJson());
425+
}
426+
427+
/**
428+
* Verify that when {@code onboardingSeedJson} is not set on the parameters,
429+
* the resulting {@link BrokerRequest} carries a null seed (i.e. no accidental default value).
430+
*/
431+
@Test
432+
public void test_brokerRequestFromAcquireTokenParameters_NoSeedJson_IsNull() {
433+
final Set<String> scopes = new HashSet<>();
434+
scopes.add("user.read");
435+
436+
final IPlatformComponents components = MockPlatformComponentsFactory.getNonFunctionalBuilder().build();
437+
final AndroidInteractiveTokenCommandParameters params = AndroidInteractiveTokenCommandParameters.builder()
438+
.platformComponents(components)
439+
.correlationId("987d8962-3f4d-4054-a852-ac0c4b6a602e")
440+
.clientId("aClientId")
441+
.redirectUri("msauth://com.example/foo")
442+
.applicationName("com.example")
443+
.applicationVersion("1.0.0")
444+
.sdkType(SdkType.MSAL)
445+
.sdkVersion("5.4.0")
446+
.authority(new AzureActiveDirectoryAuthority())
447+
.scopes(scopes)
448+
.authenticationScheme(new BearerAuthenticationSchemeInternal())
449+
.prompt(OpenIdConnectPromptParameter.LOGIN)
450+
.requiredBrokerProtocolVersion("10.0")
451+
.build();
452+
453+
final BrokerRequest brokerRequest =
454+
new MsalBrokerRequestAdapter().brokerRequestFromAcquireTokenParameters(params);
455+
456+
assertNull(brokerRequest.getOnboardingSeedJson());
457+
}
389458
}

common/src/test/java/com/microsoft/identity/common/internal/request/MsalBrokerResultAdapterTests.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,4 +658,34 @@ class MsalBrokerResultAdapterTests {
658658
resultString.contains(SchemaUtil.MISSING_FROM_THE_TOKEN_RESPONSE)
659659
)
660660
}
661+
662+
@Test
663+
fun testOnboardingBlob_RoundTripsThroughBundle() {
664+
val blobJson = """{"schema_version":"1.0.0","session_correlation_id":"abc-123","onboarding_mode":"brokered","blocking_errors":["BROKER_INSTALLATION_TRIGGERED"]}"""
665+
val brokerResult = BrokerResult.Builder()
666+
.clientId("aClientId")
667+
.correlationId("987d8962-3f4d-4054-a852-ac0c4b6a602e")
668+
.onboardingBlob(blobJson)
669+
.build()
670+
671+
val adapter = getInstance()
672+
val resultBundle = adapter.bundleFromBrokerResult(brokerResult, "10.0")
673+
val deserialized = adapter.brokerResultFromBundle(resultBundle)
674+
675+
assertEquals(blobJson, deserialized.onboardingBlob)
676+
}
677+
678+
@Test
679+
fun testOnboardingBlob_NotSet_DeserializesAsNull() {
680+
val brokerResult = BrokerResult.Builder()
681+
.clientId("aClientId")
682+
.correlationId("987d8962-3f4d-4054-a852-ac0c4b6a602e")
683+
.build()
684+
685+
val adapter = getInstance()
686+
val resultBundle = adapter.bundleFromBrokerResult(brokerResult, "10.0")
687+
val deserialized = adapter.brokerResultFromBundle(resultBundle)
688+
689+
assertNull(deserialized.onboardingBlob)
690+
}
661691
}

0 commit comments

Comments
 (0)