public async Task <string> GetAsync(double timeSpentInBacklog, string type, string devTeam, string createdBy) { var helper = new MultipleLinearRegressionAnalysisHelper(); var developerRepository = new DeveloperRepository(); var taskItemType = GetTaskItemType(type); var taskItem = new MultipleLinearRegressionTaskItem { TimeSpentInBacklog = timeSpentInBacklog, TypeIsProduct = taskItemType == TaskItemType.Product, TypeIsEngineering = taskItemType == TaskItemType.Engineering, TypeIsUnanticipated = taskItemType == TaskItemType.Unanticipated, DevTeamIsAssessments = devTeam == "Assessments", DevTeamIsEnterprise = devTeam == "Enterprise", CreatedBy = await developerRepository.GetDeveloperByNameAsync(createdBy) }; return(await helper.GetEstimation(taskItem)); }
public async Task When_getting_multiple_linear_regression_data() { var taskItems = new List <TaskItem> { new TaskItem { CreatedBy = new Developer { Id = 1014, Name = "Charles" }, DevelopmentTeam = new DevelopmentTeam { Id = 4, Name = "Enterprise" }, Type = TaskItemType.Unanticipated, CreatedOn = new DateTimeOffset(new DateTime(2021, 1, 11)), StartTime = new DateTimeOffset(new DateTime(2021, 1, 15)), FinishTime = new DateTimeOffset(new DateTime(2021, 1, 19)), LastChangedOn = new DateTimeOffset(new DateTime(2021, 1, 21)), NumRevisions = 1 }, new TaskItem { CreatedBy = new Developer { Id = 1014, Name = "Charles" }, DevelopmentTeam = new DevelopmentTeam { Id = 4, Name = "Enterprise" }, Type = TaskItemType.Product, CreatedOn = new DateTimeOffset(new DateTime(2021, 1, 11)), StartTime = new DateTimeOffset(new DateTime(2021, 1, 13)), FinishTime = new DateTimeOffset(new DateTime(2021, 1, 16)), LastChangedOn = new DateTimeOffset(new DateTime(2021, 1, 17)), NumRevisions = 2 }, new TaskItem { CreatedBy = new Developer { Id = 1015, Name = "Dave" }, DevelopmentTeam = new DevelopmentTeam { Id = 4, Name = "Enterprise" }, Type = TaskItemType.Product, CreatedOn = new DateTimeOffset(new DateTime(2021, 1, 11)), StartTime = new DateTimeOffset(new DateTime(2021, 1, 12)), FinishTime = new DateTimeOffset(new DateTime(2021, 1, 17)), LastChangedOn = new DateTimeOffset(new DateTime(2021, 1, 18)), NumRevisions = 3 }, new TaskItem { CreatedBy = new Developer { Id = 1014, Name = "Charles" }, DevelopmentTeam = new DevelopmentTeam { Id = 4, Name = "Enterprise" }, Type = TaskItemType.Engineering, CreatedOn = new DateTimeOffset(new DateTime(2021, 1, 11)), StartTime = new DateTimeOffset(new DateTime(2021, 1, 15)), FinishTime = new DateTimeOffset(new DateTime(2021, 1, 18)), LastChangedOn = new DateTimeOffset(new DateTime(2021, 1, 19)), NumRevisions = 4 }, new TaskItem { CreatedBy = new Developer { Id = 1015, Name = "Dave" }, DevelopmentTeam = new DevelopmentTeam { Id = 4, Name = "Enterprise" }, Type = TaskItemType.Engineering, CreatedOn = new DateTimeOffset(new DateTime(2021, 1, 11)), StartTime = new DateTimeOffset(new DateTime(2021, 1, 16)), FinishTime = new DateTimeOffset(new DateTime(2021, 1, 19)), LastChangedOn = new DateTimeOffset(new DateTime(2021, 1, 20)), NumRevisions = 3 }, new TaskItem { CreatedBy = new Developer { Id = 1014, Name = "Charles" }, DevelopmentTeam = new DevelopmentTeam { Id = 4, Name = "Enterprise" }, Type = TaskItemType.Engineering, CreatedOn = new DateTimeOffset(new DateTime(2021, 1, 13)), StartTime = new DateTimeOffset(new DateTime(2021, 1, 15)), FinishTime = new DateTimeOffset(new DateTime(2021, 1, 18)), LastChangedOn = new DateTimeOffset(new DateTime(2021, 1, 19)), NumRevisions = 4 } }; var taskItem = new MultipleLinearRegressionTaskItem { CreatedBy = new Developer { Id = 1014, Name = "Charles" }, DevTeamIsAssessments = true, DevTeamIsEnterprise = false, TimeSpentInBacklog = 5.23, TypeIsProduct = true, TypeIsEngineering = false, TypeIsUnanticipated = false }; var mockTaskItemRepository = new Mock <TaskItemRepository>(); mockTaskItemRepository .Setup(x => x.GetTaskItemListAsync(It.IsAny <DateTimeOffset?>(), It.IsAny <DateTimeOffset?>())) .ReturnsAsync(taskItems); var multipleLinearRegressionAnalysisHelper = new MultipleLinearRegressionAnalysisHelper(mockTaskItemRepository.Object); var result2 = await multipleLinearRegressionAnalysisHelper.GetEstimation(taskItem); Assert.That(result2, Is.EqualTo("-8.00")); }