public async Task CreateProjectTagAsync_BadRequest_ShouldThrowProjectApiException() { // Arrange var existingProjectTag = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString(), }; var createProjectTagRequest = new CreateProjectTagRequest(existingProjectTag.Name); var expectedResponse = new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, RequestMessage = new HttpRequestMessage { RequestUri = new Uri("http://www.mock-web-address.com"), }, }; var projectApi = this.fixture.GetProjectApi(expectedResponse); // Act Func <Task> act = async() => await projectApi.CreateProjectTagAsync(createProjectTagRequest); // Assert await act.Should().ThrowAsync <FactroApiException>(); }
public async Task AddTagToProjectAsync_ValidRequest_ShouldReturnVoid() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var existingProjectTag = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString(), }; var addProjectTagAssociationRequest = new AddProjectTagAssociationRequest(existingProjectTag.Name); var expectedResponse = new HttpResponseMessage(); var projectApi = this.fixture.GetProjectApi(expectedResponse); // Act Func <Task> act = async() => await projectApi.AddTagToProjectAsync(existingProject.Id, addProjectTagAssociationRequest); // Assert await act.Should().NotThrowAsync(); }
public async Task DeleteProjectTagAsync_ValidRequest_ShouldDeleteProjectTag() { // Arrange var existingProjectTag = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), }; var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(existingProjectTag, this.fixture.JsonSerializerSettings)); var expectedResponse = new HttpResponseMessage { Content = expectedResponseContent, }; var projectApi = this.fixture.GetProjectApi(expectedResponse); var deleteProjectTagResponse = new DeleteProjectTagResponse(); // Act Func <Task> act = async() => deleteProjectTagResponse = await projectApi.DeleteProjectTagAsync(existingProjectTag.Id); // Assert await act.Should().NotThrowAsync(); deleteProjectTagResponse.Id.Should().Be(existingProjectTag.Id); }
public async Task RemoveTagFromProjectAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId) { // Arrange var existingTag = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), }; var projectApi = this.fixture.GetProjectApi(); // Act Func <Task> act = async() => await projectApi.RemoveTagFromProjectAsync(projectId, existingTag.Id); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task AddTagToProjectAsync_InvalidProjectId_ShouldThrowArgumentNullException(string projectId) { // Arrange var existingProjectTag = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString(), }; var addProjectTagAssociationRequest = new AddProjectTagAssociationRequest(existingProjectTag.Name); var projectApi = this.fixture.GetProjectApi(); // Act Func <Task> act = async() => await projectApi.AddTagToProjectAsync(projectId, addProjectTagAssociationRequest); // Assert await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task GetTagsOfProjectAsync_ValidRequest_ShouldReturnTagsOfProject() { // Arrange var existingProject = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), }; var existingProjectTagsList = new List <GetAssignedProjectTagPayload> { new GetAssignedProjectTagPayload { Id = Guid.NewGuid().ToString(), }, new GetAssignedProjectTagPayload { Id = Guid.NewGuid().ToString(), }, }; var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(existingProjectTagsList, this.fixture.JsonSerializerSettings)); var expectedResponse = new HttpResponseMessage { Content = expectedResponseContent, }; var projectApi = this.fixture.GetProjectApi(expectedResponse); var getProjectTagsResponse = new List <GetAssignedProjectTagPayload>(); // Act Func <Task> act = async() => getProjectTagsResponse = (await projectApi.GetTagsOfProjectAsync(existingProject.Id)).ToList(); // Assert await act.Should().NotThrowAsync(); getProjectTagsResponse.Should().HaveCount(existingProjectTagsList.Count); }
public async Task RemoveTagFromProjectAsync_ValidRequest_ShouldReturnVoid() { // Arrange var existingProject = new GetProjectPayload { Id = Guid.NewGuid().ToString(), }; var existingTag = new GetProjectTagPayload { Id = Guid.NewGuid().ToString(), }; var expectedResponse = new HttpResponseMessage(); var projectApi = this.fixture.GetProjectApi(expectedResponse); // Act Func <Task> act = async() => await projectApi.RemoveTagFromProjectAsync(existingProject.Id, existingTag.Id); // Assert await act.Should().NotThrowAsync(); }