public async Task GetProjectByIdAsync_ValidRequest_ShouldReturnExpectedProject() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(existingProject, this.fixture.JsonSerializerSettings)); var expectedResponse = new HttpResponseMessage { Content = expectedResponseContent, }; var projectApi = this.fixture.GetProjectApi(expectedResponse); var getProjectByIdResponse = new GetProjectByIdResponse(); // Act Func <Task> act = async() => getProjectByIdResponse = await projectApi.GetProjectByIdAsync(existingProject.Id); // Assert await act.Should().NotThrowAsync(); getProjectByIdResponse.Id.Should().Be(existingProject.Id); }
public async Task DeletePackageCommentAsync_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // 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, }, }; var expectedPackageComment = existingPackageComments.First(comment => comment.TaskPackageId == existingPackage.Id); var packageApi = this.fixture.GetPackageApi(); // Act Func <Task> act = async() => await packageApi.DeletePackageCommentAsync(existingProject.Id, packageId, expectedPackageComment.Id); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task SetPackageContactAsync_ValidRequest_ShouldReturnVoid() { // 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 expectedResponseMessage = new HttpResponseMessage(); var packageApi = this.fixture.GetPackageApi(expectedResponseMessage); // Act Func <Task> act = async() => await packageApi.SetPackageContactAsync(existingProject.Id, existingPackage.Id, setContactAssociationRequest); // Assert await act.Should().NotThrowAsync(); }
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 MovePackageIntoPackageAsync_InvalidRequestModelParentPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var existingPackage = new GetPackagePayload { Id = Guid.NewGuid().ToString(), }; var setPackageAssociationRequest = new SetPackageAssociationRequest(packageId); var expectedResponse = new HttpResponseMessage(); var packageApi = this.fixture.GetPackageApi(expectedResponse); // Act Func <Task> act = async() => await packageApi.MovePackageIntoPackageAsync(existingProject.Id, existingPackage.Id, setPackageAssociationRequest); // 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); }
public async Task GrantProjectWriteRightsToUserAsync_ValidRequest_ShouldReturnWriteRightInformation() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var employeeId = Guid.NewGuid().ToString(); var addProjectWriteRightsForUserRequest = new AddProjectWriteRightsForUserRequest(employeeId); var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(addProjectWriteRightsForUserRequest, this.fixture.JsonSerializerSettings)); var expectedResponse = new HttpResponseMessage { Content = expectedResponseContent, }; var projectApi = this.fixture.GetProjectApi(expectedResponse); var getWriteRightsResponse = new AddProjectWriteRightsForUserResponse(); // Act Func <Task> act = async() => getWriteRightsResponse = await projectApi.GrantProjectWriteRightsToUserAsync(existingProject.Id, addProjectWriteRightsForUserRequest); // Assert await act.Should().NotThrowAsync(); getWriteRightsResponse.Should().BeEquivalentTo(addProjectWriteRightsForUserRequest); }
public async Task RevokePackageReadRightsFromUserAsync_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.RevokePackageReadRightsFromUserAsync(existingProject.Id, existingPackage.Id, existingEmployeeId); // Assert await act.Should().NotThrowAsync(); }
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); }
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); } }
public async Task GetPackageByIdAsyncTwoParameters_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var packageApi = this.fixture.GetPackageApi(); // Act Func <Task> act = async() => await packageApi.GetPackageByIdAsync(existingProject.Id, packageId); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
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 DeleteProjectCommentAsync_InvalidCommentId_ShouldThrowArgumentNullException(string commentId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var projectApi = this.fixture.GetProjectApi(); // Act Func <Task> act = async() => await projectApi.DeleteProjectCommentAsync(existingProject.Id, commentId); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task GrantProjectWriteRightsToUserAsync_NullRequestModel_ShouldThrowArgumentNullException() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var projectApi = this.fixture.GetProjectApi(); // Act Func <Task> act = async() => await projectApi.GrantProjectWriteRightsToUserAsync(existingProject.Id, addProjectWriteRightsForUserRequest : null); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task UpdateProjectAsync_NullRequestModel_ShouldReturnUpdatedProject() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var projectApi = this.fixture.GetProjectApi(); // Act Func <Task> act = async() => await projectApi.UpdateProjectAsync(existingProject.Id, updateProjectRequest : null); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task CreatePackageAsync_NullRequestModel_ShouldThrowArgumentNullException() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var packageApi = this.fixture.GetPackageApi(); // Act Func <Task> act = async() => await packageApi.CreatePackageAsync(existingProject.Id, createPackageRequest : null); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task AddTagToProjectAsync_InvalidTagId_ShouldThrowArgumentNullException(string tagId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var addProjectTagAssociationRequest = new AddProjectTagAssociationRequest(tagId); var projectApi = this.fixture.GetProjectApi(); // Act Func <Task> act = async() => await projectApi.AddTagToProjectAsync(existingProject.Id, addProjectTagAssociationRequest); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task SetProjectContactAsync_NullRequestModel_ShouldThrowArgumentNullException() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var expectedResponse = new HttpResponseMessage(); var projectApi = this.fixture.GetProjectApi(expectedResponse); // Act Func <Task> act = async() => await projectApi.SetProjectContactAsync(existingProject.Id, setProjectContactAssociationRequest : null); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task RevokeProjectWriteRightsFromUserAsync_InvalidEmployeeId_ShouldThrowArgumentNullException(string employeeId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var expectedResponse = new HttpResponseMessage(); var projectApi = this.fixture.GetProjectApi(expectedResponse); // Act Func <Task> act = async() => await projectApi.RevokeProjectWriteRightsFromUserAsync(existingProject.Id, employeeId); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task RemoveProjectContactAsync_ValidRequest_ShouldReturnVoid() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var expectedResponse = new HttpResponseMessage(); var projectApi = this.fixture.GetProjectApi(expectedResponse); // Act Func <Task> act = async() => await projectApi.RemoveProjectContactAsync(existingProject.Id); // Assert await act.Should().NotThrowAsync(); }
public async Task RevokePackageWriteRightFromUserAsync_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var existingEmployeeId = Guid.NewGuid().ToString(); var packageApi = this.fixture.GetPackageApi(); // Act Func <Task> act = async() => await packageApi.RevokePackageWriteRightsFromUserAsync(existingProject.Id, packageId, existingEmployeeId); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task ShiftTasksOfPackageAsync_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var shiftPackageWithSuccessorsRequest = new ShiftPackageWithSuccessorsRequest(1); var packageApi = this.fixture.GetPackageApi(); // Act Func <Task> act = async() => await packageApi.ShiftTasksOfPackageAsync(existingProject.Id, packageId, shiftPackageWithSuccessorsRequest); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task GetPackageByIdAsyncTwoParameters_ValidRequest_ShouldReturnExpectedPackage() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var existingPackages = new List <GetPackagePayload> { new GetPackagePayload { Id = Guid.NewGuid().ToString(), ProjectId = existingProject.Id, }, new GetPackagePayload { Id = Guid.NewGuid().ToString(), }, }; var expectedPackage = existingPackages.Single(package => package.ProjectId == existingProject.Id); var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(expectedPackage, this.fixture.JsonSerializerSettings)); var expectedResponse = new HttpResponseMessage { Content = expectedResponseContent, }; var packageApi = this.fixture.GetPackageApi(expectedResponse); var getPackageByIdResponse = default(GetPackageByIdResponse); // Act Func <Task> act = async() => getPackageByIdResponse = await packageApi.GetPackageByIdAsync(existingProject.Id, expectedPackage.Id); // Assert await act.Should().NotThrowAsync(); getPackageByIdResponse.Should().BeEquivalentTo(expectedPackage); }
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); }
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 GrantPackageReadRightsToUserAsync_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { 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(existingProject.Id, packageId, addPackageReadRightsForUserRequest); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task CreatePackageCommentAsync_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { 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(existingProject.Id, packageId, createPackageCommentRequest); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task GetProjectCommentsAsync_ValidRequest_ShouldGetProjectComments() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var existingProjectCommentsList = new List <GetProjectCommentPayload> { new GetProjectCommentPayload { Id = Guid.NewGuid().ToString(), ProjectId = existingProject.Id, }, new GetProjectCommentPayload { Id = Guid.NewGuid().ToString(), ProjectId = existingProject.Id, }, }; var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(existingProjectCommentsList, this.fixture.JsonSerializerSettings)); var expectedResponse = new HttpResponseMessage { Content = expectedResponseContent, }; var projectApi = this.fixture.GetProjectApi(expectedResponse); var getProjectsResponse = new List <GetProjectCommentPayload>(); // Act Func <Task> act = async() => getProjectsResponse = (await projectApi.GetProjectCommentsAsync(existingProject.Id)).ToList(); // Assert await act.Should().NotThrowAsync(); getProjectsResponse.Should().HaveCount(existingProjectCommentsList.Count); }
public async Task UpdatePackageAsync_InvalidPackageId_ShouldThrowArgumentNullException(string packageId) { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var updatePackageRequest = new UpdatePackageRequest { Description = "NewDescription", }; var packageApi = this.fixture.GetPackageApi(); // Act Func <Task> act = async() => await packageApi.UpdatePackageAsync(existingProject.Id, packageId, updatePackageRequest); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }