示例#1
0
        private void MockQueryMultipleAsync(
            IEnumerable <int> itemIds,
            SqlConnectionWrapperMock cxn,
            IEnumerable <ProjectsArtifactsItem> mockProjectsArtifactsItemsResult,
            IEnumerable <VersionProjectInfo> mockVersionProjectInfoResult,
            int revisionId = int.MaxValue,
            bool addDrafts = true)
        {
            var tvp = SqlConnectionWrapper.ToDataTable(itemIds, "Int32Collection", "Int32Value");

            var result = Tuple.Create(mockProjectsArtifactsItemsResult, mockVersionProjectInfoResult);

            cxn.SetupQueryMultipleAsync("GetArtifactsProjects",
                                        new Dictionary <string, object>
            {
                { "userId", 0 },
                { "itemIds", tvp }
            }, result);
        }
示例#2
0
        public async Task GetArtifactPermissions_UserIsInstanceAdmin_ReturnsAllPermissions()
        {
            // Arrange
            var cxn        = new SqlConnectionWrapperMock();
            var repository = new SqlArtifactPermissionsRepository(cxn.Object);

            MockToReturnInstanceAdmin(true, cxn);
            var itemIds = new List <int> {
                1
            };
            var allPermissions = Enum.GetValues(typeof(RolePermissions)).Cast <long>().Aggregate(RolePermissions.None, (current, permission) => current | (RolePermissions)permission);

            // Act
            var result = await repository.GetArtifactPermissions(itemIds, 0);


            // Assert
            Assert.IsTrue(result[1] == allPermissions);
        }
        public async Task GetProjectAdminPermissionsAsync_ProjectNotExist_ReturnNotFoundException()
        {
            // Arrange
            var cxn         = new SqlConnectionWrapperMock();
            var repository  = new SqlPrivilegesRepository(cxn.Object);
            var permissions = ProjectAdminPrivileges.ManageGroupsAndRoles;
            var userId      = 1;
            var projectId   = 1;

            cxn.SetupExecuteScalarAsync("GetProjectAdminPermissions", It.IsAny <Dictionary <string, object> >(), permissions, new Dictionary <string, object> {
                { "ErrorCode", (int)SqlErrorCodes.ProjectWithCurrentIdNotExist }
            });

            // Act
            await repository.GetProjectAdminPermissionsAsync(userId, projectId);

            // Assert
            cxn.Verify();
        }
        public async Task GetProjectAdminPermissionsAsync_ExistingUserAndProject_ReturnUsersPermissionsForProject()
        {
            // Arrange
            var cxn         = new SqlConnectionWrapperMock();
            var repository  = new SqlPrivilegesRepository(cxn.Object);
            var permissions = ProjectAdminPrivileges.ManageGroupsAndRoles;
            var userId      = 1;
            var projectId   = 1;

            cxn.SetupExecuteScalarAsync("GetProjectAdminPermissions", It.IsAny <Dictionary <string, object> >(), permissions, new Dictionary <string, object> {
                { "ErrorCode", 0 }
            });

            // Act
            var result = await repository.GetProjectAdminPermissionsAsync(userId, projectId);

            // Assert
            cxn.Verify();
            Assert.AreEqual(result, permissions);
        }
示例#5
0
        public async Task GetArtifactPermissions_VersionProjectInfosContainsProjectId_ReturnsEditPermissions()
        {
            // Arrange
            var cxn        = new SqlConnectionWrapperMock();
            var repository = new SqlArtifactPermissionsRepository(cxn.Object);

            MockToReturnInstanceAdmin(false, cxn);
            var itemIds = new List <int> {
                1
            };
            var mockProjectsArtifactsItemsResult = new List <ProjectsArtifactsItem>
            {
                new ProjectsArtifactsItem
                {
                    HolderId          = 1,
                    VersionArtifactId = 1,
                    VersionProjectId  = 1
                }
            }.AsEnumerable();
            var mockVersionProjectInfoResult = new List <VersionProjectInfo>
            {
                new VersionProjectInfo
                {
                    ProjectId   = 1,
                    Permissions = (long)RolePermissions.Edit
                }
            }.AsEnumerable();

            MockQueryMultipleAsync(itemIds, cxn, mockProjectsArtifactsItemsResult, mockVersionProjectInfoResult);

            // Act
            var result = await repository.GetArtifactPermissions(itemIds, 0);

            // Assert
            Assert.IsTrue(result[1] == RolePermissions.Edit);
        }
示例#6
0
        private void MockGetOpenArtifactPermissions(IEnumerable <OpenArtifactPermission> mockOpenArtifactPermissionsResult, SqlConnectionWrapperMock cxn, IEnumerable <int> projectArtifactIds, int revisionId = int.MaxValue, bool addDrafts = true)
        {
            var artifactIds = SqlConnectionWrapper.ToDataTable(projectArtifactIds, "Int32Collection", "Int32Value");

            cxn.SetupQueryAsync("GetOpenArtifactPermissions",
                                new Dictionary <string, object>
            {
                { "userId", 0 },
                { "artifactIds", artifactIds }
            }, mockOpenArtifactPermissionsResult);
        }