public void GetActiveDurationShouldReturnDefaultIfNoUpdates() { var bugData = WorkItemsFactory.CreateBug().WithNoUpdates(); var result = _dataSource.GetActiveDuration(bugData.WorkItem, Enumerable.Empty <TeamMemberViewModel>()); result.Should().Be(1.0f); }
public void GetActiveDurationShouldReturnActiveDurationForStillActiveItem() { var bugData = WorkItemsFactory.CreateBug().WithActiveWorkItem(5); var result = _dataSource.GetActiveDuration(bugData.WorkItem, Enumerable.Empty <TeamMemberViewModel>()); result.Should().Be(bugData.ExpectedDuration); }
public void GetActiveDurationShouldReturnActiveDurationForClosedTasks() { var john = Builder <TeamMemberViewModel> .CreateNew().Build(); var taskData = WorkItemsFactory.CreateTask().WithNormalLifecycle(resolvedBy: john, 3, activatedBy: john, assignedTo: john); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(taskData.ExpectedDuration); }
public void GetActiveDurationShouldReturnDefaultIfItemWasResolvedWithoutActivation() { const int expectedDuration = 1; var john = Builder <TeamMemberViewModel> .CreateNew().Build(); var taskData = WorkItemsFactory .CreateTask() .WithResolvedWithoutActivation(5, john); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(expectedDuration); }
public void GetActiveDurationShouldReturnDefaultIfItemWasNotActivateByTeam() { const int expectedDuration = 1; var john = Builder <TeamMemberViewModel> .CreateNew() .With(m => m.Email, "*****@*****.**") .Build(); var merry = Builder <TeamMemberViewModel> .CreateNew() .With(m => m.Email, "*****@*****.**") .Build(); var taskData = WorkItemsFactory .CreateTask() .WithNormalLifecycle(resolvedBy: john, 5, activatedBy: merry, assignedTo: merry); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(expectedDuration); }
public void GetActiveDurationShouldNotCountTimeWhileOnHold() { const int expectedDuration = 7; var john = Builder <TeamMemberViewModel> .CreateNew().Build(); var taskData = WorkItemsFactory .CreateTask() .WithNormalLifecycle(resolvedBy: john, 10, activatedBy: john, assignedTo: john, onAfterActivation: (builder, activationDate) => { builder = builder .Then().AddTag(Constants.OnHoldTag).On(activationDate.AddBusinessDays(1)) .Then().RemoveTag(Constants.OnHoldTag).On(activationDate.AddBusinessDays(2)) .Then().AddTag(Constants.OnHoldTag).On(activationDate.AddBusinessDays(5)) .Then().RemoveTag(Constants.OnHoldTag).On(activationDate.AddBusinessDays(7)); }); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(expectedDuration); }
public void GetActiveDurationShouldCorrectlyHandleWhenPullRequestAddedAfterActivation() { const int expectedDuration = 2; var john = Builder <TeamMemberViewModel> .CreateNew().Build(); var taskData = WorkItemsFactory .CreateTask(); taskData.WorkItem.Updates = UpdateBuilder.Create() .New().On(new DateTime(2019, 7, 9)) .Then().Activated().On(new DateTime(2019, 7, 10)) .Then().WithPullRequest(2222222).On(new DateTime(2019, 7, 11)) .Then().With(WorkItemAssignedToField, john.Email, string.Empty).On(new DateTime(2019, 7, 12)) .Then().Closed(john, "Active").On(new DateTime(2019, 7, 16)) .Build(); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(expectedDuration); }
public void GetActiveDurationShouldReturnOnlyTimeItrWasActuallyAssignedToTeamMember() { const int expectedDuration = 3; var john = Builder <TeamMemberViewModel> .CreateNew() .With(m => m.Email, "*****@*****.**") .Build(); var merry = Builder <TeamMemberViewModel> .CreateNew() .With(m => m.Email, "*****@*****.**") .Build(); var taskData = WorkItemsFactory .CreateTask() .WithNormalLifecycle(resolvedBy: john, 5, activatedBy: merry, assignedTo: merry, onAfterActivation: (builder, activationDate) => { builder = builder.Then().With(Constants.WorkItemAssignedToField, john.Email, merry.Email).On(activationDate.AddDays(2)); }); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(expectedDuration); }
public void GetActiveDurationShouldCorrectlyHandleOnHoldToCodeReviewInOneUpdate() { const int expectedDuration = 2; var john = Builder <TeamMemberViewModel> .CreateNew().Build(); var taskData = WorkItemsFactory .CreateTask(); taskData.WorkItem.Updates = UpdateBuilder.Create() .New() .With(WorkItemAssignedToField, john.Email, string.Empty) .On(new DateTime(2019, 7, 18)) .Then().Activated().On(new DateTime(2019, 7, 19)) .Then().AddTag(OnHoldTag).On(new DateTime(2019, 7, 23)) .Then().RemoveTag(OnHoldTag).AddTag(CodeReviewTag).On(new DateTime(2019, 7, 25)) .Then().Closed(john, "Active").On(new DateTime(2019, 8, 1)) .Build(); var result = _dataSource.GetActiveDuration(taskData.WorkItem, new[] { john }); result.Should().Be(expectedDuration); }