2020-12-20 08:36:11 +01:00
|
|
|
// Copyright (c) Umbraco.
|
|
|
|
|
// See LICENSE for more details.
|
|
|
|
|
|
2020-04-30 09:27:34 +01:00
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Security.Claims;
|
|
|
|
|
using NUnit.Framework;
|
2021-02-18 11:06:02 +01:00
|
|
|
using Umbraco.Extensions;
|
2020-04-30 09:27:34 +01:00
|
|
|
|
2022-06-21 08:09:38 +02:00
|
|
|
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core;
|
|
|
|
|
|
|
|
|
|
public class ClaimsIdentityExtensionsTests
|
2020-04-30 09:27:34 +01:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
[Test]
|
|
|
|
|
public void FindFirstValue_WhenIdentityIsNull_ExpectArgumentNullException()
|
|
|
|
|
{
|
|
|
|
|
ClaimsIdentity identity = null;
|
|
|
|
|
Assert.Throws<ArgumentNullException>(() => identity.FindFirstValue("test"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void FindFirstValue_WhenClaimNotPresent_ExpectNull()
|
|
|
|
|
{
|
|
|
|
|
var identity = new ClaimsIdentity(new List<Claim>());
|
|
|
|
|
var value = identity.FindFirstValue("test");
|
|
|
|
|
Assert.IsNull(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void FindFirstValue_WhenMatchingClaimPresent_ExpectCorrectValue()
|
2020-04-30 09:27:34 +01:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
var expectedClaim = new Claim("test", "123", "string", "Umbraco");
|
|
|
|
|
var identity = new ClaimsIdentity(new List<Claim> { expectedClaim });
|
|
|
|
|
|
|
|
|
|
var value = identity.FindFirstValue("test");
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(expectedClaim.Value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void FindFirstValue_WhenMultipleMatchingClaimsPresent_ExpectFirstValue()
|
|
|
|
|
{
|
|
|
|
|
var expectedClaim = new Claim("test", "123", "string", "Umbraco");
|
|
|
|
|
var dupeClaim = new Claim(expectedClaim.Type, Guid.NewGuid().ToString());
|
|
|
|
|
var identity = new ClaimsIdentity(new List<Claim> { expectedClaim, dupeClaim });
|
|
|
|
|
|
|
|
|
|
var value = identity.FindFirstValue("test");
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(expectedClaim.Value, value);
|
2020-04-30 09:27:34 +01:00
|
|
|
}
|
|
|
|
|
}
|