public async Task GetRelationshipDetails_ItemNotFoundForLatest_ExceptionThrownNotFound() { // Arrange const int artifactId = 1; _artifactVersionsRepositoryMock.Setup(m => m.IsItemDeleted(artifactId)).ReturnsAsync(true); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; try { // Act await controller.GetRelationshipDetails(artifactId); } catch (HttpResponseException e) { // Assert Assert.AreEqual(e.Response.StatusCode, HttpStatusCode.NotFound); throw; } }
public async Task GetRelationshipDetails_ForRevision_Success() { // Arrange const int artifactId = 1; const bool isDeleted = true; const int projectId = 10; var itemInfo = new DeletedItemInfo { ProjectId = projectId, ArtifactId = artifactId, ItemId = artifactId }; var permisionDictionary = new Dictionary <int, RolePermissions>(); permisionDictionary.Add(artifactId, RolePermissions.Read); var expected = new RelationshipExtendedInfo { ArtifactId = artifactId }; _artifactVersionsRepositoryMock.Setup(m => m.IsItemDeleted(artifactId)).ReturnsAsync(isDeleted); _artifactVersionsRepositoryMock.Setup(m => m.GetDeletedItemInfo(artifactId)).ReturnsAsync(itemInfo); _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <List <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary); _relationshipsRepositoryMock.Setup(m => m.GetRelationshipExtendedInfo(artifactId, _session.UserId, null, isDeleted)).ReturnsAsync(expected); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act var actual = await controller.GetRelationshipDetails(artifactId); // Assert Assert.AreSame(expected, actual); }
public async Task GetRelationshipDetails_ArtifactHasPermission_Success() { // Arrange const int artifactId = 1; var permisionDictionary = new Dictionary <int, RolePermissions>(); permisionDictionary.Add(artifactId, RolePermissions.Read); _artifactPermissionsRepositoryMock.Setup(m => m.GetItemInfo(It.IsAny <int>(), _session.UserId, true, int.MaxValue)).ReturnsAsync(new ItemInfo { }); _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <IEnumerable <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary); _relationshipsRepositoryMock.Setup(m => m.GetRelationshipExtendedInfo(artifactId, _session.UserId, null, false)).ReturnsAsync(new RelationshipExtendedInfo { ArtifactId = 1 }); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act var result = await controller.GetRelationshipDetails(artifactId); // Assert Assert.AreEqual(1, result.ArtifactId); }
public async Task GetRelationships_ArtifactHasNoPermission_ExcetionThrown() { // Arrange const int artifactId = 1; const int projectId = 10; const int destId = 123; var itemInfo = new ItemInfo { ProjectId = projectId, ArtifactId = artifactId, ItemId = artifactId }; var permisionDictionary = new Dictionary <int, RolePermissions>(); var resultSet = new RelationshipResultSet { ManualTraces = new List <Relationship> { new Relationship { ArtifactId = destId, ArtifactName = "test" } }, OtherTraces = new List <Relationship> { new Relationship { ArtifactId = destId, ArtifactName = "test" } } }; _artifactPermissionsRepositoryMock.Setup(m => m.GetItemInfo(artifactId, _session.UserId, true, int.MaxValue)).ReturnsAsync(itemInfo); _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <List <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary); _relationshipsRepositoryMock.Setup(m => m.GetRelationships(artifactId, _session.UserId, It.IsAny <int?>(), true, false, It.IsAny <int?>(), null)).ReturnsAsync(resultSet); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act var result = await controller.GetRelationships(artifactId); }
public async Task GetRelationshipsDetails_IncorrectRevisionId_ExceptionThrown() { // Arrange const int artifactId = 10; var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act await controller.GetRelationshipDetails(artifactId); }
public async Task GetReviews_NotFound_ThrowsException() { // Arrange const int artifactId = 1; var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; _artifactPermissionsRepositoryMock.Setup(m => m.GetItemInfo(artifactId, _session.UserId, true, int.MaxValue)).ReturnsAsync((ItemInfo)null); // Act var result = await controller.GetReviewRelationships(artifactId); }
public async Task GetRelationships_ForVersion_Success() { // Arrange const int artifactId = 1; const int versionId = 9; const int projectId = 10; const int tracedId = 123; var itemInfo = new DeletedItemInfo { ProjectId = projectId, ArtifactId = artifactId, ItemId = artifactId }; var permisionDictionary = new Dictionary <int, RolePermissions>(); permisionDictionary.Add(artifactId, RolePermissions.Read); permisionDictionary.Add(tracedId, RolePermissions.Read); var expected = new RelationshipResultSet { ManualTraces = new List <Relationship> { new Relationship { ArtifactId = tracedId } }, OtherTraces = new List <Relationship>() }; _artifactVersionsRepositoryMock.Setup(m => m.IsItemDeleted(artifactId)).ReturnsAsync(true); _artifactVersionsRepositoryMock.Setup(m => m.GetDeletedItemInfo(artifactId)).ReturnsAsync(itemInfo); _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <List <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary); _relationshipsRepositoryMock.Setup(m => m.GetRelationships(artifactId, _session.UserId, It.IsAny <int?>(), false, false, versionId, null)).ReturnsAsync(expected); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act var actual = await controller.GetRelationships(artifactId, versionId : versionId); // Assert Assert.AreSame(expected, actual); }
public async Task GetReviews_RelationshipIsReadOnly_Success() { // Arrange const int artifactId = 1; const int projectId = 10; const int destId = 123; var itemInfo = new ItemInfo { ProjectId = projectId, ArtifactId = artifactId, ItemId = artifactId }; var permisionDictionary = new Dictionary <int, RolePermissions>(); var resultSet = new ReviewRelationshipsResultSet { ReviewArtifacts = new List <ReferencedReviewArtifact> { new ReferencedReviewArtifact { ItemId = destId, ItemName = "Test Review", ItemTypePrefix = "Rev" } } }; permisionDictionary.Add(artifactId, RolePermissions.Read); permisionDictionary.Add(destId, RolePermissions.Read); _artifactPermissionsRepositoryMock.Setup(m => m.GetItemInfo(artifactId, _session.UserId, true, int.MaxValue)).ReturnsAsync(itemInfo); _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <List <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary); _relationshipsRepositoryMock.Setup(m => m.GetReviewRelationships(artifactId, _session.UserId, true, It.IsAny <int?>())).ReturnsAsync(resultSet); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act var result = await controller.GetReviewRelationships(artifactId); // Assert Assert.IsNotNull(result); Assert.AreEqual(destId, result.ReviewArtifacts[0].ItemId); Assert.AreEqual("Test Review", result.ReviewArtifacts[0].ItemName); Assert.AreEqual("Rev", result.ReviewArtifacts[0].ItemTypePrefix); }
public async Task GetReviews_BadRequest_ThrowsException() { // Arrange const int artifactId = -1; var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act try { var result = await controller.GetReviewRelationships(artifactId); } catch (BadRequestException e) { Assert.AreEqual(ErrorCodes.BadRequest, e.ErrorCode); } }
public async Task GetRelationshipDetails_ArtifactNoPermission_ExceptionThrown() { // 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>(); _artifactPermissionsRepositoryMock.Setup(m => m.GetArtifactPermissions(It.IsAny <IEnumerable <int> >(), _session.UserId, false, int.MaxValue, true, null)).ReturnsAsync(permisionDictionary); var controller = new RelationshipsController(_relationshipsRepositoryMock.Object, _artifactPermissionsRepositoryMock.Object, _artifactVersionsRepositoryMock.Object) { Request = new HttpRequestMessage() }; controller.Request.Properties[ServiceConstants.SessionProperty] = _session; // Act var result = await controller.GetRelationshipDetails(artifactId); }