Skip to content

Commit 6ca4fda

Browse files
Copilotgladjohn
andauthored
Decouple Microsoft.Identity.Lab.Api from MSTest transitive dependency (#5880)
* initial * mestest removed --------- Co-authored-by: Gladwin Johnson <90415114+gladjohn@users.noreply.github.com>
1 parent 18667e6 commit 6ca4fda

File tree

40 files changed

+208
-124
lines changed

40 files changed

+208
-124
lines changed

LibsAndSamples.sln

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Identity.Client.K
194194
EndProject
195195
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Identity.Lab.Api", "src\client\Microsoft.Identity.Lab.Api\Microsoft.Identity.Lab.Api.csproj", "{5EC9968E-2CB0-0CBB-6FBA-CBEEBB26FCEA}"
196196
EndProject
197+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Identity.Test.Common", "tests\Microsoft.Identity.Test.Common\Microsoft.Identity.Test.Common.csproj", "{F484DC37-BB44-45B5-A78E-06819D261F53}"
198+
EndProject
197199
Global
198200
GlobalSection(SolutionConfigurationPlatforms) = preSolution
199201
Debug + MobileApps|Any CPU = Debug + MobileApps|Any CPU
@@ -1988,6 +1990,48 @@ Global
19881990
{5EC9968E-2CB0-0CBB-6FBA-CBEEBB26FCEA}.Release|x64.Build.0 = Release|Any CPU
19891991
{5EC9968E-2CB0-0CBB-6FBA-CBEEBB26FCEA}.Release|x86.ActiveCfg = Release|Any CPU
19901992
{5EC9968E-2CB0-0CBB-6FBA-CBEEBB26FCEA}.Release|x86.Build.0 = Release|Any CPU
1993+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|Any CPU.ActiveCfg = Debug + MobileApps|Any CPU
1994+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|Any CPU.Build.0 = Debug + MobileApps|Any CPU
1995+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|ARM.ActiveCfg = Debug + MobileApps|Any CPU
1996+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|ARM.Build.0 = Debug + MobileApps|Any CPU
1997+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|ARM64.ActiveCfg = Debug + MobileApps|Any CPU
1998+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|ARM64.Build.0 = Debug + MobileApps|Any CPU
1999+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|iPhone.ActiveCfg = Debug + MobileApps|Any CPU
2000+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|iPhone.Build.0 = Debug + MobileApps|Any CPU
2001+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|iPhoneSimulator.ActiveCfg = Debug + MobileApps|Any CPU
2002+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|iPhoneSimulator.Build.0 = Debug + MobileApps|Any CPU
2003+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|x64.ActiveCfg = Debug + MobileApps|Any CPU
2004+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|x64.Build.0 = Debug + MobileApps|Any CPU
2005+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|x86.ActiveCfg = Debug + MobileApps|Any CPU
2006+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug + MobileApps|x86.Build.0 = Debug + MobileApps|Any CPU
2007+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2008+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|Any CPU.Build.0 = Debug|Any CPU
2009+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|ARM.ActiveCfg = Debug|Any CPU
2010+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|ARM.Build.0 = Debug|Any CPU
2011+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|ARM64.ActiveCfg = Debug|Any CPU
2012+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|ARM64.Build.0 = Debug|Any CPU
2013+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|iPhone.ActiveCfg = Debug|Any CPU
2014+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|iPhone.Build.0 = Debug|Any CPU
2015+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
2016+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
2017+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|x64.ActiveCfg = Debug|Any CPU
2018+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|x64.Build.0 = Debug|Any CPU
2019+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|x86.ActiveCfg = Debug|Any CPU
2020+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Debug|x86.Build.0 = Debug|Any CPU
2021+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|Any CPU.ActiveCfg = Release|Any CPU
2022+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|Any CPU.Build.0 = Release|Any CPU
2023+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|ARM.ActiveCfg = Release|Any CPU
2024+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|ARM.Build.0 = Release|Any CPU
2025+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|ARM64.ActiveCfg = Release|Any CPU
2026+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|ARM64.Build.0 = Release|Any CPU
2027+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|iPhone.ActiveCfg = Release|Any CPU
2028+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|iPhone.Build.0 = Release|Any CPU
2029+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
2030+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
2031+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|x64.ActiveCfg = Release|Any CPU
2032+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|x64.Build.0 = Release|Any CPU
2033+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|x86.ActiveCfg = Release|Any CPU
2034+
{F484DC37-BB44-45B5-A78E-06819D261F53}.Release|x86.Build.0 = Release|Any CPU
19912035
EndGlobalSection
19922036
GlobalSection(SolutionProperties) = preSolution
19932037
HideSolutionNode = FALSE
@@ -2046,6 +2090,7 @@ Global
20462090
{CE282240-0806-EB91-87E4-D791DC86DEE8} = {34BE693E-3496-45A4-B1D2-D3A0E068EEDB}
20472091
{425EAEBE-595F-0037-6FDC-2D08D5184705} = {1A37FD75-94E9-4D6F-953A-0DABBD7B49E9}
20482092
{5EC9968E-2CB0-0CBB-6FBA-CBEEBB26FCEA} = {9B0B5396-4D95-4C15-82ED-DC22B5A3123F}
2093+
{F484DC37-BB44-45B5-A78E-06819D261F53} = {9B0B5396-4D95-4C15-82ED-DC22B5A3123F}
20492094
EndGlobalSection
20502095
GlobalSection(ExtensibilityGlobals) = postSolution
20512096
SolutionGuid = {020399A9-DC27-4B82-9CAA-EF488665AC27}

src/client/Microsoft.Identity.Client/Properties/InternalsVisibleTo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
[assembly: InternalsVisibleTo("Microsoft.Identity.Client.Extensions.Msal" + KeyTokens.MSAL)]
2626
[assembly: InternalsVisibleTo("Microsoft.Identity.Test.Unit" + KeyTokens.MSAL)]
27+
[assembly: InternalsVisibleTo("Microsoft.Identity.Test.Common" + KeyTokens.MSAL)]
2728
[assembly: InternalsVisibleTo("Microsoft.Identity.Client.Extensions.Web" + KeyTokens.MSAL)]
2829
[assembly: InternalsVisibleTo("Microsoft.Identity.Client.Extensions.Web.UnitTests" + KeyTokens.MSAL)]
2930

src/client/Microsoft.Identity.Lab.Api/Internal/TestConstants.cs

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using Microsoft.Identity.Client.Internal;
1111
using Microsoft.Identity.Client.OAuth2;
1212
using Microsoft.Identity.Client.Utils;
13-
using Microsoft.Identity.Test.Common.Core.Mocks;
1413
using Microsoft.VisualStudio.TestTools.UnitTesting;
1514

1615
namespace Microsoft.Identity.Test.Unit
@@ -1100,9 +1099,9 @@ internal static MsalTokenResponse CreateMsalTokenResponse(string tenantId = null
11001099
{
11011100
return new MsalTokenResponse
11021101
{
1103-
IdToken = MockHelpers.CreateIdToken(UniqueId, DisplayableId, tenantId),
1102+
IdToken = CreateIdToken(UniqueId, DisplayableId, tenantId),
11041103
AccessToken = "access-token",
1105-
ClientInfo = MockHelpers.CreateClientInfo(),
1104+
ClientInfo = CreateClientInfo(),
11061105
ExpiresIn = 3599,
11071106
CorrelationId = "correlation-id",
11081107
RefreshToken = "refresh-token",
@@ -1111,6 +1110,58 @@ internal static MsalTokenResponse CreateMsalTokenResponse(string tenantId = null
11111110
};
11121111
}
11131112

1113+
/// <summary>
1114+
/// Creates a base64-encoded client info string using the provided UID and UTID, or returns a default client info if not specified. Optionally creates client info for S2S scenarios when specified.
1115+
/// </summary>
1116+
/// <param name="uid"></param>
1117+
/// <param name="utid"></param>
1118+
/// <param name="CreateClientInfoForS2S"></param>
1119+
/// <returns></returns>
1120+
public static string CreateClientInfo(string uid = TestConstants.Uid, string utid = TestConstants.Utid, bool CreateClientInfoForS2S = false)
1121+
{
1122+
if (CreateClientInfoForS2S)
1123+
{
1124+
return Base64UrlHelpers.Encode("{\"authz\":[\"value1\",\"value2\"]}");
1125+
}
1126+
1127+
return Base64UrlHelpers.Encode("{\"uid\":\"" + uid + "\",\"utid\":\"" + utid + "\"}");
1128+
}
1129+
1130+
/// <summary>
1131+
/// Creates an ID token using the default tenant identifier.
1132+
/// </summary>
1133+
/// <param name="uniqueId">The unique user/object identifier to include as the OID claim.</param>
1134+
/// <param name="displayableId">The displayable identifier to include as the preferred username claim.</param>
1135+
/// <returns>A serialized mock ID token string.</returns>
1136+
public static string CreateIdToken(string uniqueId, string displayableId)
1137+
{
1138+
return CreateIdToken(uniqueId, displayableId, TestConstants.Utid);
1139+
}
1140+
1141+
/// <summary>
1142+
/// Creates an ID token using the provided tenant identifier.
1143+
/// </summary>
1144+
/// <param name="uniqueId">The unique user/object identifier to include as the OID claim.</param>
1145+
/// <param name="displayableId">The displayable identifier to include as the preferred username claim.</param>
1146+
/// <param name="tenantId">The tenant identifier to include as the TID claim.</param>
1147+
/// <returns>A serialized mock ID token string.</returns>
1148+
public static string CreateIdToken(string uniqueId, string displayableId, string tenantId)
1149+
{
1150+
string id = "{\"aud\": \"e854a4a7-6c34-449c-b237-fc7a28093d84\"," +
1151+
"\"iss\": \"https://login.microsoftonline.com/6c3d51dd-f0e5-4959-b4ea-a80c4e36fe5e/v2.0/\"," +
1152+
"\"iat\": 1455833828," +
1153+
"\"nbf\": 1455833828," +
1154+
"\"exp\": 1455837728," +
1155+
"\"ipaddr\": \"131.107.159.117\"," +
1156+
"\"name\": \"Marrrrrio Bossy\"," +
1157+
"\"oid\": \"" + uniqueId + "\"," +
1158+
"\"preferred_username\": \"" + displayableId + "\"," +
1159+
"\"sub\": \"K4_SGGxKqW1SxUAmhg6C1F6VPiFzcx-Qd80ehIEdFus\"," +
1160+
"\"tid\": \"" + tenantId + "\"," +
1161+
"\"ver\": \"2.0\"}";
1162+
return string.Format(CultureInfo.InvariantCulture, "someheader.{0}.somesignature", Base64UrlHelpers.Encode(id));
1163+
}
1164+
11141165
/// <summary>
11151166
/// Creates a sample MSAL token response with a broker token source.
11161167
/// </summary>
@@ -1119,9 +1170,9 @@ internal static MsalTokenResponse CreateMsalTokenResponseWithTokenSource()
11191170
{
11201171
return new MsalTokenResponse
11211172
{
1122-
IdToken = MockHelpers.CreateIdToken(UniqueId, DisplayableId),
1173+
IdToken = CreateIdToken(UniqueId, DisplayableId),
11231174
AccessToken = "access-token",
1124-
ClientInfo = MockHelpers.CreateClientInfo(),
1175+
ClientInfo = CreateClientInfo(),
11251176
ExpiresIn = 3599,
11261177
CorrelationId = "correlation-id",
11271178
RefreshToken = "refresh-token",

src/client/Microsoft.Identity.Lab.Api/Microsoft.Identity.Lab.Api.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
</ItemGroup>
2626

2727
<ItemGroup>
28-
<PackageReference Include="Microsoft.NET.Test.Sdk" />
29-
<PackageReference Include="MSTest.TestFramework" />
3028
<PackageReference Include="Newtonsoft.Json" />
3129
<PackageReference Include="NSubstitute" />
3230
<PackageReference Include="NSubstitute.Analyzers.CSharp">
@@ -43,6 +41,7 @@
4341
</ItemGroup>
4442

4543
<ItemGroup>
44+
<ProjectReference Include="..\..\..\tests\Microsoft.Identity.Test.Common\Microsoft.Identity.Test.Common.csproj" />
4645
<ProjectReference Include="..\Microsoft.Identity.Client.Extensions.Msal\Microsoft.Identity.Client.Extensions.Msal.csproj" />
4746
<ProjectReference Include="..\Microsoft.Identity.Client\Microsoft.Identity.Client.csproj" />
4847
</ItemGroup>

0 commit comments

Comments
 (0)