private void ReturnsCorrectFailureResult(PermissionsCheckResult permissionsCheckResult, IEnumerable <Scope> scopes)
            {
                // Arrange
                var user = new User("test")
                {
                    Key = 1
                };

                var testableActionMock = new Mock <IActionRequiringEntityPermissions <TestablePermissionsEntity> >();

                testableActionMock
                .Setup(a => a.CheckPermissions(user, user, It.IsAny <TestablePermissionsEntity>()))
                .Returns(permissionsCheckResult);

                var mockUserService = new Mock <IUserService>();

                mockUserService.Setup(x => x.FindByKey(user.Key, false)).Returns(user);

                var apiScopeEvaluator = Setup(mockUserService);

                // Act
                var result = apiScopeEvaluator.Evaluate(user, scopes, testableActionMock.Object, null, DefaultGetSubjectFromEntity, NuGetScopes.All);

                // Assert
                AssertResult(result, user, permissionsCheckResult, scopesAreValid: true);
            }
        private PermissionsCheckResult ChoosePermissionsCheckResult(PermissionsCheckResult current, PermissionsCheckResult next)
        {
            if (current == PermissionsCheckResult.Allowed || next == PermissionsCheckResult.Allowed)
            {
                return(PermissionsCheckResult.Allowed);
            }

            return(new[] { current, next }.Max());
        }
            public void WithMultipleScopesReturnsCorrectFailureResult(PermissionsCheckResult permissionsCheckResult)
            {
                var scopes = new[]
                {
                    new Scope(DefaultSubject, null),
                    new Scope(NuGetPackagePattern.AllInclusivePattern, NuGetScopes.All),
                    new Scope(DefaultSubject, null)
                };

                ReturnsCorrectFailureResult(permissionsCheckResult, scopes);
            }
Example #4
0
            public void ReturnsExpected(bool scopesAreValid, PermissionsCheckResult result, User owner, bool expectedIsSuccessful)
            {
                var apiScopeEvaluationResult = new ApiScopeEvaluationResult(owner, result, scopesAreValid);

                Assert.Equal(expectedIsSuccessful, apiScopeEvaluationResult.IsSuccessful());
            }
 public ApiScopeEvaluationResult(User owner, PermissionsCheckResult permissionsCheckResult, bool scopesAreValid)
 {
     ScopesAreValid         = scopesAreValid;
     PermissionsCheckResult = permissionsCheckResult;
     Owner = owner;
 }
 private void AssertResult(ApiScopeEvaluationResult result, User owner, PermissionsCheckResult permissionsCheckResult, bool scopesAreValid)
 {
     Assert.Equal(scopesAreValid, result.ScopesAreValid);
     Assert.Equal(permissionsCheckResult, result.PermissionsCheckResult);
     Assert.True(owner.MatchesUser(result.Owner));
 }
            public void ReturnsCorrectPermissionsCheckResultWhenSubjectAndActionMatches(PermissionsCheckResult permissionsCheckResult)
            {
                var scope = new Scope(NuGetPackagePattern.AllInclusivePattern, NuGetScopes.All);

                ReturnsCorrectFailureResult(permissionsCheckResult, new[] { scope });
            }
Example #8
0
 private void AssertIsAllowed(IActionRequiringEntityPermissions <TestablePermissionsEntity> action, PermissionsCheckResult expectedFailure)
 {
     Assert.Equal(expectedFailure, action.CheckPermissions((User)null, null, null));
     Assert.Equal(expectedFailure, action.CheckPermissions((IPrincipal)null, null, null));
 }