public void Constructor_WhenPackageHasOneOwnerAndItIsTheCurrentUser_WhenRequiredSignerIsNull() { var package = new Package() { PackageRegistration = new PackageRegistration() { Owners = new List <User>() { _currentUser } }, Version = "1.0.0" }; _securityPolicyService.Setup(x => x.IsSubscribed( It.Is <User>(user => user == _currentUser), It.Is <string>(policyName => policyName == ControlRequiredSignerPolicy.PolicyName))) .Returns(false); var viewModel = new ListPackageItemRequiredSignerViewModel( package, _currentUser, _securityPolicyService.Object, wasMultiFactorAuthenticated: true); Assert.Equal(_currentUser.Username, viewModel.RequiredSigner.Username); Assert.Equal($"{_currentUser.Username} (0 certificates)", viewModel.RequiredSigner.DisplayText); Assert.Null(viewModel.RequiredSignerMessage); Assert.Empty(viewModel.AllSigners); Assert.True(viewModel.ShowRequiredSigner); Assert.True(viewModel.ShowTextBox); Assert.False(viewModel.CanEditRequiredSigner); _securityPolicyService.VerifyAll(); }
public void Constructor_WhenPackageHasThreeOwnersAndTheCurrentUserIsAnOwner_WhenTwoOtherOwnersHaveRequiredSignerControl() { var otherUser2 = new User() { Key = 3, Username = "******" }; var package = new Package() { PackageRegistration = new PackageRegistration() { Owners = new List <User>() { _currentUser, _otherUser, otherUser2 }, RequiredSigners = new HashSet <User>() { _currentUser } }, Version = "1.0.0" }; _securityPolicyService.Setup( x => x.IsSubscribed( It.Is <User>(u => u == _currentUser), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(false); _securityPolicyService.Setup( x => x.IsSubscribed( It.Is <User>(u => u == _otherUser), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(true); _securityPolicyService.Setup( x => x.IsSubscribed( It.Is <User>(u => u == otherUser2), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(true); var viewModel = new ListPackageItemRequiredSignerViewModel( package, _currentUser, _securityPolicyService.Object, wasMultiFactorAuthenticated: true); Assert.Equal(_currentUser.Username, viewModel.RequiredSigner.Username); Assert.Equal($"{_currentUser.Username} (0 certificates)", viewModel.RequiredSigner.DisplayText); Assert.Equal($"The signing owner is managed by the '{_otherUser.Username}' and '{otherUser2.Username}' accounts.", viewModel.RequiredSignerMessage); VerifySigners(new[] { _currentUser }, viewModel.AllSigners, expectAnySigner: false); Assert.True(viewModel.ShowRequiredSigner); Assert.False(viewModel.ShowTextBox); Assert.False(viewModel.CanEditRequiredSigner); _securityPolicyService.VerifyAll(); }
public void Constructor_WhenPackageHasOneOwnerAndTheCurrentUserIsACollaborator_WhenRequiredSignerIsNull() { var organization = new Organization() { Key = 7, Username = "******" }; organization.Members.Add(new Membership() { OrganizationKey = organization.Key, Organization = organization, MemberKey = _currentUser.Key, Member = _currentUser, IsAdmin = false }); var package = new Package() { PackageRegistration = new PackageRegistration() { Owners = new List <User>() { organization } }, Version = "1.0.0" }; _securityPolicyService.Setup( x => x.IsSubscribed( It.IsNotNull <User>(), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(false); var viewModel = new ListPackageItemRequiredSignerViewModel( package, _currentUser, _securityPolicyService.Object, wasMultiFactorAuthenticated: true); Assert.Equal("c", viewModel.RequiredSigner.Username); Assert.Equal($"{organization.Username} (0 certificates)", viewModel.RequiredSigner.DisplayText); Assert.Null(viewModel.RequiredSignerMessage); VerifySigners(package.PackageRegistration.Owners, viewModel.AllSigners, expectAnySigner: false); Assert.True(viewModel.ShowRequiredSigner); Assert.False(viewModel.ShowTextBox); Assert.False(viewModel.CanEditRequiredSigner); _securityPolicyService.VerifyAll(); }
public void Constructor_WhenPackageHasTwoOwnersAndTheCurrentUserIsAnOwner_WhenCurrentUserHasRequiredSignerControl() { var package = new Package() { PackageRegistration = new PackageRegistration() { Owners = new List <User>() { _currentUser, _otherUser }, RequiredSigners = new HashSet <User>() { _currentUser } }, Version = "1.0.0" }; _securityPolicyService.Setup( x => x.IsSubscribed( It.Is <User>(u => u == _currentUser), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(true); var viewModel = new ListPackageItemRequiredSignerViewModel( package, _currentUser, _securityPolicyService.Object, wasMultiFactorAuthenticated: true); Assert.Equal(_currentUser.Username, viewModel.RequiredSigner.Username); Assert.Equal($"{_currentUser.Username} (0 certificates)", viewModel.RequiredSigner.DisplayText); Assert.Null(viewModel.RequiredSignerMessage); VerifySigners(package.PackageRegistration.Owners, viewModel.AllSigners, expectAnySigner: true); Assert.True(viewModel.ShowRequiredSigner); Assert.False(viewModel.ShowTextBox); Assert.True(viewModel.CanEditRequiredSigner); _securityPolicyService.VerifyAll(); }
public void Constructor_WhenPackageHasTwoOwnersAndTheCurrentUserIsAnOwnerAndNotMultiFactorAuthenticated_WhenRequiredSignerIsNull() { var package = new Package() { PackageRegistration = new PackageRegistration() { Owners = new List <User>() { _currentUser, _otherUser } }, Version = "1.0.0" }; _securityPolicyService.Setup( x => x.IsSubscribed( It.IsNotNull <User>(), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(false); var viewModel = new ListPackageItemRequiredSignerViewModel( package, _currentUser, _securityPolicyService.Object, wasAADLoginOrMultiFactorAuthenticated: false); Assert.Equal(string.Empty, viewModel.RequiredSigner.Username); Assert.Equal("Any", viewModel.RequiredSigner.DisplayText); Assert.Null(viewModel.RequiredSignerMessage); VerifySigners(package.PackageRegistration.Owners, viewModel.AllSigners, expectAnySigner: true); Assert.True(viewModel.ShowRequiredSigner); Assert.False(viewModel.ShowTextBox); Assert.False(viewModel.CanEditRequiredSigner); _securityPolicyService.VerifyAll(); }
public void Constructor_WhenPackageHasMultipleOwners_WhenOwnersHaveVaryingCertificateCounts() { User currentUser = new User() { Key = 1, Username = "******", UserCertificates = new List <UserCertificate>() { new UserCertificate() { Key = 1 } } }; User otherUser1 = new User() { Key = 2, Username = "******" }; User otherUser2 = new User() { Key = 3, Username = "******", UserCertificates = new List <UserCertificate>() { new UserCertificate() { Key = 2 }, new UserCertificate() { Key = 3 } } }; var package = new Package() { PackageRegistration = new PackageRegistration() { Owners = new List <User>() { otherUser1, currentUser, otherUser2 }, RequiredSigners = new HashSet <User>() { currentUser } }, Version = "1.0.0" }; _securityPolicyService.Setup( x => x.IsSubscribed( It.IsNotNull <User>(), It.Is <string>(s => s == ControlRequiredSignerPolicy.PolicyName))) .Returns(false); var viewModel = new ListPackageItemRequiredSignerViewModel( package, currentUser, _securityPolicyService.Object, wasMultiFactorAuthenticated: true); Assert.Equal(currentUser.Username, viewModel.RequiredSigner.Username); Assert.Equal($"{currentUser.Username} (1 certificate)", viewModel.RequiredSigner.DisplayText); Assert.Null(viewModel.RequiredSignerMessage); VerifySigners(package.PackageRegistration.Owners, viewModel.AllSigners, expectAnySigner: true); Assert.True(viewModel.ShowRequiredSigner); Assert.False(viewModel.ShowTextBox); Assert.True(viewModel.CanEditRequiredSigner); _securityPolicyService.Verify(); }