microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.4

Branches

Tags

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

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Extensions/Microsoft.Teams.Extensions.Graph.Tests/ContextExtensionsTests.cs

62lines · modecode

1using Microsoft.Graph;
2using Microsoft.Teams.Api.Activities;
3using Microsoft.Teams.Api.Auth;
4using Microsoft.Teams.Apps;
5
6using Moq;
7
8namespace Microsoft.Teams.Extensions.Graph.Tests;
9
10public class ContextExtensionsTests
11{
12 [Fact]
13 public void ContextExtensions_GetUserGraphClient_ShouldThrowException()
14 {
15 // Arrange
16 var context = new Mock<IContext<IActivity>>();
17 context.Setup(c => c.UserGraphToken).Returns((JsonWebToken?)null);
18
19 // Act & Assert
20 Assert.Throws<InvalidOperationException>(() => context.Object.GetUserGraphClient());
21 }
22
23
24 [Fact]
25 public void ContextExtensions_GetUserGraphClient_ShouldReturnGraphClient()
26 {
27 // Arrange
28 var token = "eyJhbGciOiJIUzI1NiJ9.eyJSb2xlIjoiQWRtaW4iLCJJc3N1ZXIiOiJJc3N1ZXIiLCJVc2VybmFtZSI6IkphdmFJblVzZSIsImV4cCI6MTc1MzI1MjAzNSwiaWF0IjoxNzUzMjUyMDM1fQ.J-DWberQuMBSnAECP0jmK-zX6BzB4o-rMEshkR0mN-A";
29 var jwtToken = new JsonWebToken(token);
30 var context = new Mock<IContext<IActivity>>();
31 context.Setup(c => c.UserGraphToken).Returns(jwtToken);
32 context.Setup(c => c.Extra).Returns(new Dictionary<string, object?>());
33
34 // Act
35 var graphClient = context.Object.GetUserGraphClient();
36
37 // Assert
38 Assert.NotNull(graphClient);
39 Assert.True(context.Object.Extra.ContainsKey("UserGraphClient"));
40 Assert.IsType<GraphServiceClient>(context.Object.Extra["UserGraphClient"]);
41 }
42
43 [Fact]
44 public void ContextExtensions_GetUserGraphClient_ShouldReturnSingleGraphClient()
45 {
46 // Arrange
47 var token = "eyJhbGciOiJIUzI1NiJ9.eyJSb2xlIjoiQWRtaW4iLCJJc3N1ZXIiOiJJc3N1ZXIiLCJVc2VybmFtZSI6IkphdmFJblVzZSIsImV4cCI6MTc1MzI1MjAzNSwiaWF0IjoxNzUzMjUyMDM1fQ.J-DWberQuMBSnAECP0jmK-zX6BzB4o-rMEshkR0mN-A";
48 var jwtToken = new JsonWebToken(token);
49 var credentials = new Mock<Azure.Core.TokenCredential>();
50 var graphClientMock = new GraphServiceClient(credentials.Object);
51 var context = new Mock<IContext<IActivity>>();
52 context.Setup(c => c.UserGraphToken).Returns(jwtToken);
53 context.Setup(c => c.Extra.TryGetValue("UserGraphClient", out It.Ref<object>.IsAny!)).Returns((string key, out object value) => { value = graphClientMock; return true; });
54
55 // Act
56 var graphClient = context.Object.GetUserGraphClient();
57
58 // Assert
59 Assert.NotNull(graphClient);
60 Assert.Equal(graphClientMock, graphClient);
61 }
62}