using ZB.MOM.WW.ScadaBridge.Security;
using Xunit;
namespace ZB.MOM.WW.ScadaBridge.Security.Tests;
///
/// Pins the role-name string literals and the contents of .
/// The two-person Secured Writes feature introduces the
/// Operator (initiates) and Verifier (approves) global roles.
///
public class RolesTests
{
/// Verifies that the Operator constant has its canonical value.
[Fact]
public void OperatorConst_HasCanonicalValue()
{
Assert.Equal("Operator", Roles.Operator);
}
/// Verifies that the Verifier constant has its canonical value.
[Fact]
public void VerifierConst_HasCanonicalValue()
{
Assert.Equal("Verifier", Roles.Verifier);
}
/// Verifies that the role list still contains the original four roles.
[Fact]
public void All_StillContainsOriginalFourRoles()
{
Assert.Contains(Roles.Administrator, Roles.All);
Assert.Contains(Roles.Designer, Roles.All);
Assert.Contains(Roles.Deployer, Roles.All);
Assert.Contains(Roles.Viewer, Roles.All);
}
/// Verifies that the role list contains the Operator and Verifier roles.
[Fact]
public void All_ContainsOperatorAndVerifier()
{
Assert.Contains("Operator", Roles.All);
Assert.Contains("Verifier", Roles.All);
}
/// Verifies that the authorization policies declare the Operator and Verifier policy names.
[Fact]
public void AuthorizationPolicies_DeclareOperatorAndVerifierPolicyNames()
{
Assert.Equal("RequireOperator", AuthorizationPolicies.RequireOperator);
Assert.Equal("RequireVerifier", AuthorizationPolicies.RequireVerifier);
}
}