Exemplo n.º 1
0
            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();
            }
Exemplo n.º 3
0
            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();
            }
Exemplo n.º 4
0
            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>();
            }
Exemplo n.º 5
0
            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();
            }