public async Task GetDiscussions_Forbidden()
        {
            // Arrange
            const int artifactId = 1;
            const int projectId  = 10;
            var       itemInfo   = new ItemInfo {
                ProjectId = projectId, ArtifactId = artifactId, ItemId = artifactId
            };
            var permisionDictionary = new Dictionary <int, RolePermissions>();
            var discussion          = new Discussion {
                ItemId = artifactId
            };

            permisionDictionary.Add(artifactId, RolePermissions.None);
            _artifactVersionsRepositoryMock.Setup(m => m.IsItemDeleted(artifactId)).ReturnsAsync(false);
            _artifactPermissionsRepositoryMock.Setup(m => m.GetItemInfo(artifactId, _session.UserId, false, int.MaxValue)).ReturnsAsync(itemInfo);
            _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <IEnumerable <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary);
            _discussionsRepositoryMock.Setup(m => m.GetDiscussions(artifactId, projectId)).ReturnsAsync(new[] { discussion });
            var controller = new DiscussionController(_discussionsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object)
            {
                Request = new HttpRequestMessage()
            };

            controller.Request.Properties[ServiceConstants.SessionProperty] = _session;
            // Act
            await controller.GetDiscussions(artifactId);
        }
 public async Task GetDiscussions_BadRequest_Same_Artifact_And_SubArtifactId()
 {
     // Arrange
     const int artifactId    = 1;
     const int subArtifactId = 1;
     var       controller    = new DiscussionController(_discussionsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object);
     // Act
     await controller.GetDiscussions(artifactId, subArtifactId);
 }
        public async Task GetDiscussions_BadRequest_1()
        {
            // Arrange
            const int artifactId = -1;
            var       controller = new DiscussionController(_discussionsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object);

            // Act
            try
            {
                var result = await controller.GetDiscussions(artifactId);
            }
            catch (BadRequestException e)
            {
                // Assert
                Assert.AreEqual(HttpStatusCode.BadRequest, (HttpStatusCode)e.ErrorCode);
            }
        }