public async Task SetPackageContactAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id        = Guid.NewGuid().ToString(),
                ProjectId = existingProject.Id,
            };

            var existingContact = new GetContactPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var setContactAssociationRequest = new SetContactAssociationRequest(existingContact.Id);

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.SetPackageContactAsync(projectId, existingPackage.Id, setContactAssociationRequest);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
        public async Task DeletePackageCommentAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackageComments = new List <GetPackageCommentPayload>
            {
                new GetPackageCommentPayload
                {
                    Id            = Guid.NewGuid().ToString(),
                    TaskPackageId = existingPackage.Id,
                },
            };

            var expectedPackageComment =
                existingPackageComments.First(comment => comment.TaskPackageId == existingPackage.Id);

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.DeletePackageCommentAsync(projectId, existingPackage.Id, expectedPackageComment.Id);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #3
0
        public async Task MovePackageIntoProjectAsync_ValidRequest_ShouldReturnVoid()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var parentPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var setProjectAssociationRequest = new SetProjectAssociationRequest(parentPackage.Id);

            var expectedResponse = new HttpResponseMessage();

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            // Act
            Func <Task> act = async() => await packageApi.MovePackageIntoProjectAsync(existingProject.Id, existingPackage.Id, setProjectAssociationRequest);

            // Assert
            await act.Should().NotThrowAsync();
        }
Example #4
0
        public async Task MovePackageIntoProjectAsync_InvalidRequestModelParentPackageId_ShouldThrowArgumentNullException(string packageId)
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var setProjectAssociationRequest = new SetProjectAssociationRequest(packageId);

            var expectedResponse = new HttpResponseMessage();

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            // Act
            Func <Task> act = async() => await packageApi.MovePackageIntoProjectAsync(existingProject.Id, existingPackage.Id, setProjectAssociationRequest);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
        public async Task DeletePackageAsync_ValidRequest_ShouldReturnDeletedPackage()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var expectedResponseContent =
                new StringContent(JsonConvert.SerializeObject(existingPackage, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            var deletePackageResponse = new DeletePackageResponse();

            // Act
            Func <Task> act = async() => deletePackageResponse = await packageApi.DeletePackageAsync(existingProject.Id, existingPackage.Id);

            // Assert
            await act.Should().NotThrowAsync();

            deletePackageResponse.Id.Should().Be(existingPackage.Id);
        }
Example #6
0
        public async Task RevokePackageWriteRightFromUserAsync_ValidRequest_ShouldReturnVoid()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingEmployeeId = Guid.NewGuid().ToString();

            var expectedResponse = new HttpResponseMessage();

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            // Act
            Func <Task> act = async() => await packageApi.RevokePackageWriteRightsFromUserAsync(existingProject.Id, existingPackage.Id, existingEmployeeId);

            // Assert
            await act.Should().NotThrowAsync();
        }
        public async Task ShiftTasksOfPackageAsync_ValidRequest_ShouldReturnVoid()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var shiftPackageWithSuccessorsRequest = new ShiftPackageWithSuccessorsRequest(1);

            var expectedResponse = new HttpResponseMessage();

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            // Act
            Func <Task> act = async() => await packageApi.ShiftTasksOfPackageAsync(existingProject.Id, existingPackage.Id, shiftPackageWithSuccessorsRequest);

            // Assert
            await act.Should().NotThrowAsync();
        }
Example #8
0
        public async Task GetPackageReadRightsAsync_ValidRequest_ShouldReturnPackageReadRightsInformation()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingReadRights = new List <GetPackageReadRightsResponse>
            {
                new GetPackageReadRightsResponse
                {
                    AccessRights = new List <AccessRightReason>
                    {
                        new AccessRightReason
                        {
                            PackageId = existingPackage.Id,
                            ProjectId = existingProject.Id,
                            Reason    = AccessReason.IsProjectOfficer,
                            TaskId    = Guid.NewGuid().ToString(),
                        },
                    },
                    EmployeeId = Guid.NewGuid().ToString(),
                },
            };

            var expectedPackageReadRights = existingReadRights
                                            .Where(element => element.AccessRights.Any(right => right.PackageId == existingPackage.Id));

            var expectedResponseContent =
                new StringContent(JsonConvert.SerializeObject(expectedPackageReadRights, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            var getPackageReadRightsResponse = default(IEnumerable <GetPackageReadRightsResponse>);

            // Act
            Func <Task> act = async() => getPackageReadRightsResponse = await packageApi.GetPackageReadRightsAsync(existingProject.Id, existingPackage.Id);

            // Assert
            await act.Should().NotThrowAsync();

            getPackageReadRightsResponse.Should().BeEquivalentTo(expectedPackageReadRights);
        }
Example #9
0
        public async Task UpdatePackageAsync_ValidRequest_ShouldReturnUpdatePackage()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id          = Guid.NewGuid().ToString(),
                Description = "TestDescription",
            };

            var updatePackageRequest = new UpdatePackageRequest
            {
                Description = "NewDescription",
            };

            var expectedUpdatedPackage = new UpdatePackageResponse
            {
                Id          = existingPackage.Id,
                Description = updatePackageRequest.Description,
            };

            var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(expectedUpdatedPackage, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            var updatePackageResponse = new UpdatePackageResponse();

            // Act
            Func <Task> act = async() =>
                              updatePackageResponse = await packageApi.UpdatePackageAsync(existingProject.Id, existingPackage.Id, updatePackageRequest);

            // Assert
            await act.Should().NotThrowAsync();

            using (new AssertionScope())
            {
                updatePackageResponse.Id.Should().Be(existingPackage.Id);
                updatePackageResponse.Description.Should().Be(expectedUpdatedPackage.Description);
            }
        }
Example #10
0
        public async Task GetPackageByIdAsyncTwoParameters_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };
            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.GetPackageByIdAsync(projectId, existingPackage.Id);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #11
0
        public async Task GetCommentsOfPackageAsync_ValidRequest_ShouldReturnCommentsOfPackage()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackageComments = new List <GetPackageCommentPayload>
            {
                new GetPackageCommentPayload
                {
                    Id            = Guid.NewGuid().ToString(),
                    TaskPackageId = existingPackage.Id,
                },
                new GetPackageCommentPayload
                {
                    Id            = Guid.NewGuid().ToString(),
                    TaskPackageId = existingPackage.Id,
                },
            };

            var expectedPackageComments = existingPackageComments.Where(comment => comment.TaskPackageId == existingPackage.Id);

            var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(expectedPackageComments, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            var getCommentsOfPackageResponse = default(IEnumerable <GetPackageCommentPayload>);

            // Act
            Func <Task> act = async() => getCommentsOfPackageResponse = await packageApi.GetCommentsOfPackageAsync(existingProject.Id, existingPackage.Id);

            // Assert
            await act.Should().NotThrowAsync();

            getCommentsOfPackageResponse.Should().BeEquivalentTo(existingPackageComments);
        }
        public async Task ShiftTasksOfPackageAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var shiftPackageWithSuccessorsRequest = new ShiftPackageWithSuccessorsRequest(1);

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.ShiftTasksOfPackageAsync(projectId, existingPackage.Id, shiftPackageWithSuccessorsRequest);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #13
0
        public async Task RevokePackageWriteRightFromUserAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingEmployeeId = Guid.NewGuid().ToString();

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.RevokePackageWriteRightsFromUserAsync(projectId, existingPackage.Id, existingEmployeeId);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
        public async Task CreatePackageCommentAsync_ValidRequest_ShouldReturnCreatedPackageComment()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var text = Guid.NewGuid().ToString();

            var createPackageCommentRequest = new CreatePackageCommentRequest(text);

            var expectedPackageComment = new CreatePackageCommentResponse
            {
                Text = text,
            };

            var expectedResponseContent =
                new StringContent(JsonConvert.SerializeObject(expectedPackageComment, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            var createPackageCommentResponse = default(CreatePackageCommentResponse);

            // Act
            Func <Task> act = async() => createPackageCommentResponse = await packageApi.CreatePackageCommentAsync(existingProject.Id, existingPackage.Id, createPackageCommentRequest);

            // Assert
            await act.Should().NotThrowAsync();

            createPackageCommentResponse.Should().BeEquivalentTo(expectedPackageComment);
        }
Example #15
0
        public async Task GrantPackageReadRightsToUserAsync_ValidRequest_ShouldReturnPackageReadRightsForUserInformation()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingEmployeeId = Guid.NewGuid().ToString();

            var addPackageReadRightsForUserRequest = new AddPackageReadRightsForUserRequest(existingEmployeeId);

            var expectedPackageReadRight = new AddPackageReadRightsForUserResponse
            {
                EmployeeId = existingEmployeeId,
            };

            var expectedResponseContent =
                new StringContent(JsonConvert.SerializeObject(expectedPackageReadRight, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var packageApi = this.fixture.GetPackageApi(expectedResponse);

            var addPackageReadRightsForUserResponse = default(AddPackageReadRightsForUserResponse);

            // Act
            Func <Task> act = async() => addPackageReadRightsForUserResponse = await packageApi.GrantPackageReadRightsToUserAsync(existingProject.Id, existingPackage.Id, addPackageReadRightsForUserRequest);

            // Assert
            await act.Should().NotThrowAsync();

            addPackageReadRightsForUserResponse.Should().BeEquivalentTo(expectedPackageReadRight);
        }
        public async Task CreatePackageCommentAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var text = Guid.NewGuid().ToString();

            var createPackageCommentRequest = new CreatePackageCommentRequest(text);

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.CreatePackageCommentAsync(projectId, existingPackage.Id, createPackageCommentRequest);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #17
0
        public async Task GrantPackageReadRightsToUserAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingEmployeeId = Guid.NewGuid().ToString();

            var addPackageReadRightsForUserRequest = new AddPackageReadRightsForUserRequest(existingEmployeeId);

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.GrantPackageReadRightsToUserAsync(projectId, existingPackage.Id, addPackageReadRightsForUserRequest);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
        public async Task DeletePackageCommentAsync_InvalidCommentId_ShouldThrowArgumentNullException(string packageCommentId)
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.DeletePackageCommentAsync(existingProject.Id, existingPackage.Id, packageCommentId);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #19
0
        public async Task MovePackageIntoProjectAsync_NullRequestModel_ShouldThrowArgumentNullException()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.MovePackageIntoProjectAsync(existingProject.Id, existingPackage.Id, setProjectAssociationRequest : null);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #20
0
        public async Task GrantPackageReadRightsToUserAsync_NullRequestModel_ShouldThrowArgumentNullException()
        {
            // Arrange
            var existingProject = new GetProjectPayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var existingPackage = new GetPackagePayload
            {
                Id = Guid.NewGuid().ToString(),
            };

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.GrantPackageReadRightsToUserAsync(existingProject.Id, existingPackage.Id, addPackageReadRightsForUserRequest : null);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }
Example #21
0
        public async Task UpdatePackageAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId)
        {
            // Arrange
            var existingPackage = new GetPackagePayload
            {
                Id          = Guid.NewGuid().ToString(),
                Description = "TestDescription",
            };

            var updatePackageRequest = new UpdatePackageRequest
            {
                Description = "NewDescription",
            };

            var packageApi = this.fixture.GetPackageApi();

            // Act
            Func <Task> act = async() => await packageApi.UpdatePackageAsync(projectId, existingPackage.Id, updatePackageRequest);

            // Assert
            await act.Should().ThrowAsync <ArgumentNullException>();
        }