File: System\Security\RightsManagement\UnsignedPublishLicenseTests.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\WindowsBase.Tests.csproj (WindowsBase.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Security.RightsManagement.Tests;
 
public class UnsignedPublishLicenseTests
{
    [Fact]
    public void Ctor_Default()
    {
        var license = new UnsignedPublishLicense();
        Assert.NotEqual(Guid.Empty, license.ContentId);
        Assert.Empty(license.Grants);
        Assert.Same(license.Grants, license.Grants);
        Assert.Empty(license.LocalizedNameDescriptionDictionary);
        Assert.Same(license.LocalizedNameDescriptionDictionary, license.LocalizedNameDescriptionDictionary);
        Assert.Null(license.Owner);
        Assert.Null(license.ReferralInfoName);
        Assert.Null(license.ReferralInfoUri);
    }
 
    [Theory]
    [InlineData("")]
    [InlineData("  ")]
    [InlineData("unsignedPublishLicense")]
    [InlineData("<xml></xml>")]
    public void Ctor_InvalidPublishLicenseTemplate_ThrowsRightsManagementException(string unsignedPublishLicense)
    {
        Assert.Throws<RightsManagementException>(() => new UnsignedPublishLicense(unsignedPublishLicense));
    }
 
    [Fact]
    public void Ctor_NullPublishLicenseTemplate_ThrowsArgumentNullException()
    {
        Assert.Throws<ArgumentNullException>("publishLicenseTemplate", () => new UnsignedPublishLicense(null));
    }
 
    public static IEnumerable<object[]> ContentId_TestData()
    {
        yield return new object[] { Guid.Empty };
        yield return new object[] { Guid.NewGuid() };
    }
 
    [Theory]
    [MemberData(nameof(ContentId_TestData))]
    public void ContentId_Set_GetReturnsExpected(Guid value)
    {
        var license = new UnsignedPublishLicense
        {
            ContentId = value
        };
        Assert.Equal(value, license.ContentId);
 
        // Set same.
        license.ContentId = value;
        Assert.Equal(value, license.ContentId);
    }
 
    public static IEnumerable<object?[]> Owner_TestData()
    {
        yield return new object?[] { null };
        yield return new object?[] { new ContentUser("name", AuthenticationType.Windows) };
        yield return new object?[] { new ContentUser("name", AuthenticationType.Passport) };
        yield return new object?[] { new ContentUser("name", AuthenticationType.WindowsPassport) };
        yield return new object?[] { new ContentUser("anyone", AuthenticationType.Internal) };
        yield return new object?[] { new ContentUser("owner", AuthenticationType.Internal) };
    }
 
    [Theory]
    [MemberData(nameof(Owner_TestData))]
    public void Owner_Set_GetReturnsExpected(ContentUser? value)
    {
        var license = new UnsignedPublishLicense
        {
            Owner = value
        };
        Assert.Equal(value, license.Owner);
 
        // Set same.
        license.Owner = value;
        Assert.Equal(value, license.Owner);
    }
 
    [Theory]
    [InlineData(null)]
    [InlineData("")]
    [InlineData("referralInfoName")]
    public void ReferralInfoName_Set_GetReturnsExpected(string? value)
    {
        var license = new UnsignedPublishLicense
        {
            ReferralInfoName = value
        };
        Assert.Equal(value, license.ReferralInfoName);
 
        // Set same.
        license.ReferralInfoName = value;
        Assert.Equal(value, license.ReferralInfoName);
    }
 
    public static IEnumerable<object?[]> ReferralInfoUri_TestData()
    {
        yield return new object?[] { null };
        yield return new object?[] { new Uri("https://google.com") };
    }
 
    [Theory]
    [MemberData(nameof(ReferralInfoUri_TestData))]
    public void ReferralInfoUri_Set_GetReturnsExpected(Uri? value)
    {
        var license = new UnsignedPublishLicense
        {
            ReferralInfoUri = value
        };
        Assert.Equal(value, license.ReferralInfoUri);
 
        // Set same.
        license.ReferralInfoUri = value;
        Assert.Equal(value, license.ReferralInfoUri);
    }
 
    [Fact]
    public void Sign_NullSecureEnvironment_ThrowsArgumentNullException()
    {
        var license = new UnsignedPublishLicense();
        UseLicense? useLicense = null;
        Assert.Throws<ArgumentNullException>("secureEnvironment", () => license.Sign(null!, out useLicense));
        Assert.Null(useLicense);
    }
 
    [Fact]
    public void ToString_Default_ThrowsRightsManagementException()
    {
        var license = new UnsignedPublishLicense();
        Assert.Throws<RightsManagementException>(() => license.ToString());
    }
}