public async Task UpdatesExistingTimeEntry() { var(togglClient, user) = await SetupTestUser(); var timeEntry = createTimeEntry(user); var persistedTimeEntry = await togglClient.TimeEntries.Create(timeEntry); var timeEntryWithUpdates = new Ultrawave.Models.TimeEntry { Id = persistedTimeEntry.Id, Description = Guid.NewGuid().ToString(), WorkspaceId = persistedTimeEntry.WorkspaceId, Billable = persistedTimeEntry.Billable, Start = persistedTimeEntry.Start, Duration = persistedTimeEntry.Duration, TagIds = persistedTimeEntry.TagIds, UserId = persistedTimeEntry.UserId, }; var updatedTimeEntry = await togglClient.TimeEntries.Update(timeEntryWithUpdates); updatedTimeEntry.Id.Should().Be(persistedTimeEntry.Id); updatedTimeEntry.Description.Should().Be(timeEntryWithUpdates.Description); updatedTimeEntry.WorkspaceId.Should().Be(persistedTimeEntry.WorkspaceId); updatedTimeEntry.Billable.Should().Be(false); updatedTimeEntry.ProjectId.Should().BeNull(); updatedTimeEntry.TaskId.Should().BeNull(); }
public async Task TheTimeEntryStoredInBackendIsARunningTimeEntryWhenFetchingItAfterPostingANewRunningTimeEntry() { var(togglApi, user) = await SetupTestUser(); var start = new DateTimeOffset(2017, 10, 12, 11, 31, 00, TimeSpan.Zero); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId, Start = start, Stop = null, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; var postedTimeEntry = await togglApi.TimeEntries.Create(timeEntry); var fetchedTimeEntry = await togglApi.TimeEntries.GetAll() .SelectMany(timeEntries => timeEntries) .Where(te => te.Id == postedTimeEntry.Id) .SingleAsync(); fetchedTimeEntry.Stop.Should().BeNull(); }
public async Task TheTimeEntryReturnedByBackendIsARunningTimeEntryWhenPostingANewRunningTimeEntry() { var(togglApi, user) = await SetupTestUser(); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId.Value, Start = DateTimeOffset.UtcNow, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; var postedTimeEntry = await togglApi.TimeEntries.Create(timeEntry); postedTimeEntry.Duration.Should().BeNull(); }
public async Task FailsCreatingARunningTimeEntryWhenTheStartTimeIsSetToTheCurrentTimePlusMinusMoreThanNineHundredNinetyNineHours(int hoursOffset) { var(togglApi, user) = await SetupTestUser(); var start = DateTimeOffset.Now.AddHours(-hoursOffset); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId.Value, Start = start, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; Action creatingTimeEntry = () => CallEndpointWith(togglApi, timeEntry).Wait(); creatingTimeEntry.Should().Throw <BadRequestException>(); }
public async Task CreatesRunningTimeEntryWhenTheStartIsSetToCurrentTimePlusMinusNineHundredNinetyNineHours(int hoursOffset) { var(togglApi, user) = await SetupTestUser(); var start = DateTimeOffset.Now.AddHours(-hoursOffset); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId.Value, Start = start, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; var persistedTimeEntry = CallEndpointWith(togglApi, timeEntry).Wait(); persistedTimeEntry.Id.Should().BePositive(); }
public async Task TheTimeEntryReturnedByBackendIsARunningTimeEntryWhenPostingANewRunningTimeEntry() { var(togglApi, user) = await SetupTestUser(); var start = new DateTimeOffset(2017, 10, 12, 11, 31, 00, TimeSpan.Zero); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId, Start = start, Stop = null, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; var postedTimeEntry = await togglApi.TimeEntries.Create(timeEntry); postedTimeEntry.Stop.Should().BeNull(); }
public async Task FailsCreatingARunningTimeEntryWhenTheDurationIsSetToATimestampOlderThanNineHundredNinetyNineHoursInThePast(int hoursOffset) { var(togglApi, user) = await SetupTestUser(); var start = DateTimeOffset.Now.AddHours(-hoursOffset); var duration = -start.ToUnixTimeSeconds(); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId, Start = start, Stop = null, Duration = duration, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; Action creatingTimeEntry = () => CallEndpointWith(togglApi, timeEntry).Wait(); creatingTimeEntry.ShouldThrow <BadRequestException>(); }
public async Task CreatesRunningTimeEntryWhenTheDurationIsSetToANegativeTimestampWithinNineHundredNinetyNineHoursInThePast(int hoursOffset) { var(togglApi, user) = await SetupTestUser(); var start = DateTimeOffset.Now.AddHours(-hoursOffset); var duration = -start.ToUnixTimeSeconds(); var timeEntry = new Ultrawave.Models.TimeEntry { Description = Guid.NewGuid().ToString(), WorkspaceId = user.DefaultWorkspaceId, Start = start, Stop = null, Duration = duration, UserId = user.Id, TagIds = new List <long>(), CreatedWith = "IntegrationTests/0.0" }; var persistedTimeEntry = CallEndpointWith(togglApi, timeEntry).Wait(); persistedTimeEntry.Id.Should().BePositive(); }