public async Task FindAllHydratedTimeEntriesForUserAsync_ShouldReturnHydratedTimeEntryDtoImplList() { const int hourlyRateAmount = 1234; // Create project var projectRequest = new ProjectRequest { Name = "FindAllHydratedTimeEntriesForProjectAsync " + Guid.NewGuid(), Color = "#FF00FF", HourlyRate = new HourlyRateRequest { Amount = hourlyRateAmount } }; var createProject = await _client.CreateProjectAsync(_workspaceId, projectRequest); createProject.IsSuccessful.Should().BeTrue(); createProject.Data.Should().NotBeNull(); ProjectDtoImpl project = createProject.Data; var now = DateTimeOffset.UtcNow; var timeEntryRequest = new TimeEntryRequest { Start = now, End = now.AddSeconds(1), ProjectId = project.Id }; var createResult = await _client.CreateTimeEntryAsync(_workspaceId, timeEntryRequest); createResult.IsSuccessful.Should().BeTrue(); var userResponse = await _client.GetCurrentUserAsync(); userResponse.IsSuccessful.Should().BeTrue(); var response = await _client.FindAllHydratedTimeEntriesForUserAsync(_workspaceId, userResponse.Data.Id, start : DateTimeOffset.Now.AddDays(-1), end : DateTimeOffset.Now.AddDays(1)); response.IsSuccessful.Should().BeTrue(); response.Data.Should().Contain(timeEntry => timeEntry.Id.Equals(createResult.Data.Id)); response.Data.Should().Contain(timeEntry => timeEntry.HourlyRate.Amount.Equals(hourlyRateAmount)); var deleteProject = await _client.ArchiveAndDeleteProject(_workspaceId, project.Id); deleteProject.IsSuccessful.Should().BeTrue(); }
public static async Task <ProjectDtoImpl> CreateTestProjectAsync(ClockifyClient client, string workspaceName, string clientId) { var projectRequest = new ProjectRequest { Name = "GetDetailedReportAsync " + Guid.NewGuid(), Color = "#FF00FF", HourlyRate = new HourlyRateRequest { Amount = 1234 }, ClientId = clientId }; var createProject = await client.CreateProjectAsync(workspaceName, projectRequest); createProject.IsSuccessful.Should().BeTrue(); createProject.Data.Should().NotBeNull(); ProjectDtoImpl project = createProject.Data; return(project); }
public async Task FindAllTimeEntriesForProjectAsync_ShouldReturnTimeEntryDtoImplList() { // Create project var projectRequest = new ProjectRequest { Name = "FindAllTimeEntriesForProjectAsync " + Guid.NewGuid(), Color = "#FF00FF" }; var createProject = await _client.CreateProjectAsync(_workspaceId, projectRequest); createProject.IsSuccessful.Should().BeTrue(); createProject.Data.Should().NotBeNull(); ProjectDtoImpl project = createProject.Data; // Create TimeEntries var now = DateTimeOffset.UtcNow; var timeEntry1Request = new TimeEntryRequest { ProjectId = project.Id, Start = now, End = now.AddMinutes(2), Description = "TimeEntry1" }; var addTimeEntry1 = await _client.CreateTimeEntryAsync(_workspaceId, timeEntry1Request); addTimeEntry1.IsSuccessful.Should().BeTrue(); addTimeEntry1.Data.Should().NotBeNull(); TimeEntryDtoImpl timeEntry1 = addTimeEntry1.Data; var timeEntry2Request = new TimeEntryRequest { ProjectId = project.Id, Start = now.AddDays(-1), End = now.AddMinutes(3), Description = "TimeEntry2" }; var addTimeEntry2 = await _client.CreateTimeEntryAsync(_workspaceId, timeEntry2Request); addTimeEntry2.IsSuccessful.Should().BeTrue(); addTimeEntry2.Data.Should().NotBeNull(); TimeEntryDtoImpl timeEntry2 = addTimeEntry2.Data; // Send request var response = await _client.FindAllTimeEntriesForProjectAsync(_workspaceId, projectId : project.Id, start : DateTimeOffset.Now.AddDays(-1), end : DateTimeOffset.Now.AddDays(1)); //response.IsSuccessful.Should().BeTrue(); response.Data.Should().NotBeNull(); List <TimeEntryDtoImpl> responseContent = response.Data as List <TimeEntryDtoImpl>; responseContent.Should().Contain(timeEntry => timeEntry.Id.Equals(timeEntry1.Id)); responseContent.Should().Contain(timeEntry => timeEntry.Id.Equals(timeEntry2.Id)); // Clean up await _client.DeleteTimeEntryAsync(_workspaceId, addTimeEntry1.Data.Id); await _client.DeleteTimeEntryAsync(_workspaceId, addTimeEntry2.Data.Id); await _client.DeleteProjectAsync(_workspaceId, createProject.Data.Id); }