Skip to content

Commit 64822bf

Browse files
committed
add UT for empty upn.
1 parent a4fe9d9 commit 64822bf

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

IdentityCore/tests/MSIDBrowserNativeMessageGetTokenResponseTests.m

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,19 @@
3434
@interface MSIDTokenResponseMock : MSIDTokenResponse
3535

3636
@property (nonatomic) NSDictionary *responseJson;
37+
@property (nonatomic) BOOL returnNilAccounUpn;
3738

3839
@end
3940

4041
@implementation MSIDTokenResponseMock
4142

43+
- (NSString *)accountUpn
44+
{
45+
if (self.returnNilAccounUpn) return nil;
46+
47+
return [super accountUpn];
48+
}
49+
4250
- (NSDictionary *)jsonDictionary
4351
{
4452
return self.responseJson;
@@ -98,4 +106,38 @@ - (void)testJsonDictionary_whenPayloadExist_shouldBeCorrect
98106
XCTAssertEqualObjects(expectedJson, [response jsonDictionary]);
99107
}
100108

109+
- (void)testJsonDictionary_whenNoUpnInReponse_shouldUseProvidedUpn
110+
{
111+
NSString *idToken = [MSIDTestIdTokenUtil idTokenWithPreferredUsername:DEFAULT_TEST_ID_TOKEN_USERNAME
112+
subject:DEFAULT_TEST_ID_TOKEN_SUBJECT];
113+
114+
NSDictionary *jsonInput = @{@"id_token": idToken};
115+
116+
MSIDTokenResponseMock *tokenResponseMock = [[MSIDTokenResponseMock alloc] initWithJSONDictionary:jsonInput error:nil];
117+
tokenResponseMock.returnNilAccounUpn = YES;
118+
tokenResponseMock.responseJson = @{@"some_key": @"some_value"};
119+
120+
__auto_type operationTokenResponse = [[MSIDBrokerOperationTokenResponse alloc] initWithDeviceInfo:nil];
121+
operationTokenResponse.tokenResponse = tokenResponseMock;
122+
123+
__auto_type response = [[MSIDBrowserNativeMessageGetTokenResponse alloc] initWithTokenResponse:operationTokenResponse];
124+
response.state = @"1234";
125+
response.accountUpn = @"[email protected]";
126+
127+
__auto_type expectedJson = @{
128+
@"account": @{
129+
@"id": tokenResponseMock.accountIdentifier,
130+
@"userName": @"[email protected]"
131+
},
132+
@"properties": @{
133+
@"UPN": @"[email protected]"
134+
},
135+
@"state": @"1234",
136+
@"some_key": @"some_value"
137+
};
138+
139+
XCTAssertNotNil([response jsonDictionary]);
140+
XCTAssertEqualObjects(expectedJson, [response jsonDictionary]);
141+
}
142+
101143
@end

0 commit comments

Comments
 (0)