microsoft/teams.net

Public

mirrored fromhttps://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
b9bc522d242ad42cba49791c95c73c0f2c1d2358

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Plugins.AspNetCore.Tests/Extensions/TeamsValidationSettingsTests.cs

107lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4using Microsoft.Teams.Api.Auth;
5using Microsoft.Teams.Plugins.AspNetCore.Extensions;
6
7namespace Microsoft.Teams.Plugins.AspNetCore.Tests.Extensions;
8
9public class TeamsValidationSettingsTests
10{
11 [Fact]
12 public void DefaultConstructor_UsesPublicCloud()
13 {
14 var settings = new TeamsValidationSettings();
15
16 Assert.Equal("https://login.botframework.com/v1/.well-known/openidconfiguration", settings.OpenIdMetadataUrl);
17 Assert.Equal("https://login.microsoftonline.com", settings.LoginEndpoint);
18 Assert.Contains("https://api.botframework.com", settings.Issuers);
19 }
20
21 [Fact]
22 public void USGovCloud_HasCorrectSettings()
23 {
24 var settings = new TeamsValidationSettings(CloudEnvironment.USGov);
25
26 Assert.Equal("https://login.botframework.azure.us/v1/.well-known/openidconfiguration", settings.OpenIdMetadataUrl);
27 Assert.Equal("https://login.microsoftonline.us", settings.LoginEndpoint);
28 Assert.Contains("https://api.botframework.us", settings.Issuers);
29 }
30
31 [Fact]
32 public void ChinaCloud_HasCorrectSettings()
33 {
34 var settings = new TeamsValidationSettings(CloudEnvironment.China);
35
36 Assert.Equal("https://login.botframework.azure.cn/v1/.well-known/openidconfiguration", settings.OpenIdMetadataUrl);
37 Assert.Equal("https://login.partner.microsoftonline.cn", settings.LoginEndpoint);
38 Assert.Contains("https://api.botframework.azure.cn", settings.Issuers);
39 }
40
41 [Fact]
42 public void AllClouds_IncludeEmulatorIssuers()
43 {
44 var clouds = new[] { CloudEnvironment.Public, CloudEnvironment.USGov, CloudEnvironment.USGovDoD, CloudEnvironment.China };
45
46 foreach (var cloud in clouds)
47 {
48 var settings = new TeamsValidationSettings(cloud);
49
50 // Emulator issuers should always be present
51 Assert.Contains(settings.Issuers, i => i.Contains("d6d49420-f39b-4df7-a1dc-d59a935871db"));
52 Assert.Contains(settings.Issuers, i => i.Contains("f8cdef31-a31e-4b4a-93e4-5f571e91255a"));
53 }
54 }
55
56 [Fact]
57 public void GetTenantSpecificOpenIdMetadataUrl_UsesCloudLoginEndpoint()
58 {
59 var settings = new TeamsValidationSettings(CloudEnvironment.USGov);
60
61 var url = settings.GetTenantSpecificOpenIdMetadataUrl("my-tenant");
62
63 Assert.Equal("https://login.microsoftonline.us/my-tenant/v2.0/.well-known/openid-configuration", url);
64 }
65
66 [Fact]
67 public void GetTenantSpecificOpenIdMetadataUrl_DefaultsToCommon()
68 {
69 var settings = new TeamsValidationSettings(CloudEnvironment.China);
70
71 var url = settings.GetTenantSpecificOpenIdMetadataUrl(null);
72
73 Assert.Equal("https://login.partner.microsoftonline.cn/common/v2.0/.well-known/openid-configuration", url);
74 }
75
76 [Fact]
77 public void GetValidIssuersForTenant_UsesCloudLoginEndpoint()
78 {
79 var settings = new TeamsValidationSettings(CloudEnvironment.USGov);
80
81 var issuers = settings.GetValidIssuersForTenant("my-tenant").ToList();
82
83 Assert.Single(issuers);
84 Assert.Equal("https://login.microsoftonline.us/my-tenant/", issuers[0]);
85 }
86
87 [Fact]
88 public void GetValidIssuersForTenant_ReturnsEmptyForNullTenant()
89 {
90 var settings = new TeamsValidationSettings(CloudEnvironment.USGov);
91
92 var issuers = settings.GetValidIssuersForTenant(null).ToList();
93
94 Assert.Empty(issuers);
95 }
96
97 [Fact]
98 public void AddDefaultAudiences_AddsClientIdAndApiPrefix()
99 {
100 var settings = new TeamsValidationSettings(CloudEnvironment.USGov);
101
102 settings.AddDefaultAudiences("my-client-id");
103
104 Assert.Contains("my-client-id", settings.Audiences);
105 Assert.Contains("api://my-client-id", settings.Audiences);
106 }
107}