public async void RunMainTask_NoProvider() { var config = new Dictionary <string, string>(); var task = new PullTask(_projectService.Object, _projectMemberService.Object, _externalServiceService.Object, _externalServiceTypeService.Object, _providerService.Object, _taskProviderManager.Object, _logger.Object); task.SetConfig(config, "working"); task.Provider = "NotExistRepositoryProvider"; var result = await task.RunMainTask(new Dictionary <string, string>()); Assert.False(result.IsSuccess); Assert.Equal("Code repository provider \"NotExistRepositoryProvider\" could not be found.", result.ErrorMessage); }
public async void RunMainTask_AdditionalConfigSecured() { _taskProviderManager.Setup(p => p.InvokeTaskProvider(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((string taskProviderDll, string taskProviderArgs, string secretTaskProviderArgs) => new Dictionary <string, object> { { "repositoryLocation", "c:\\test" } }); _taskProviderManager.Setup(p => p.GetTaskProviders(It.IsAny <string>())).Returns(new List <TaskProviderItem> { new TaskProviderItem("FakeCodeRepositoryProvider", "path/to/FakeCodeRepositoryProvider.dll", new string[] { "GitHub" }) }); _externalServiceService.Setup(p => p.GetExternalServiceByName(It.IsAny <string>())).ReturnsAsync((string name) => new ExternalServiceDto { Name = name, Config = new Dictionary <string, string> { { "AuthToken", "123" } } }); var config = new Dictionary <string, string> { { "GitHubExternalService", "github-test" } }; var task = new PullTask(_projectService.Object, _projectMemberService.Object, _externalServiceService.Object, _externalServiceTypeService.Object, _providerService.Object, _taskProviderManager.Object, _logger.Object); task.SetConfig(config, "working"); task.Provider = "FakeCodeRepositoryProvider"; task.AdditionalConfigs = new Dictionary <string, string> { { "ConnectionString", "Server=localhost;Database=TestProject;User ID=sa;Password=samprod;" } }; var result = await task.RunMainTask(new Dictionary <string, string>()); Assert.True(result.IsSuccess); Assert.Equal("c:\\test", result.ReturnValue); Assert.Equal("The repository in c:\\test has been pulled to the latest update", result.TaskRemarks); Assert.Equal(2, task.AdditionalConfigs.Count); Assert.Equal(2, task.SecuredAdditionalConfigs.Count); Assert.Equal("***", task.SecuredAdditionalConfigs["AuthToken"]); Assert.Equal("***", task.SecuredAdditionalConfigs["ConnectionString"]); Assert.Equal("123", task.AdditionalConfigs["AuthToken"]); Assert.Equal("Server=localhost;Database=TestProject;User ID=sa;Password=samprod;", task.AdditionalConfigs["ConnectionString"]); }
public async void RunMainTask_Failed() { _taskProviderManager.Setup(p => p.InvokeTaskProvider(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((string taskProviderDll, string taskProviderArgs, string secretTaskProviderArgs) => new Dictionary <string, object> { { "errorMessage", "error-message" } }); var config = new Dictionary <string, string>(); var task = new PullTask(_projectService.Object, _projectMemberService.Object, _externalServiceService.Object, _externalServiceTypeService.Object, _providerService.Object, _taskProviderManager.Object, _logger.Object); task.SetConfig(config, "working"); task.Provider = "FakeCodeRepositoryProvider"; var result = await task.RunMainTask(new Dictionary <string, string>()); Assert.False(result.IsSuccess); Assert.Equal("error-message", result.ErrorMessage); }
public async void RunMainTask_Success() { _taskProviderManager.Setup(p => p.InvokeTaskProvider(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((string taskProviderDll, string taskProviderArgs, string secretTaskProviderArgs) => new Dictionary <string, object> { { "repositoryLocation", "c:\\test" } }); var config = new Dictionary <string, string>(); var task = new PullTask(_projectService.Object, _projectMemberService.Object, _externalServiceService.Object, _externalServiceTypeService.Object, _providerService.Object, _taskProviderManager.Object, _logger.Object); task.SetConfig(config, "working"); task.Provider = "FakeCodeRepositoryProvider"; var result = await task.RunMainTask(new Dictionary <string, string>()); Assert.True(result.IsSuccess); Assert.Equal("c:\\test", result.ReturnValue); Assert.Equal("The repository in c:\\test has been pulled to the latest update", result.TaskRemarks); }
public static async Task <RestStatus> PullTask(int currentRole, bool pullTasks) { RestStatus status = new RestStatus(); List <string> tanNums = new List <string>(); if (!string.IsNullOrEmpty(Sessionkey)) { using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(BEARER_HEDER, Sessionkey); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(APPLICATION_JSON)); StringContent stringContent = new StringContent("productId=1"); HttpResponseMessage response = await httpClient.GetAsync(PULL_TASK + "?productId=1¤tRole=" + currentRole + "&pullTasks=" + pullTasks); using (HttpContent content = response.Content) { string responseText = await content.ReadAsStringAsync(); status.HttpCode = response.StatusCode; status.HttpResponse = responseText; if (status.HttpCode == System.Net.HttpStatusCode.OK) { PullTask pullTask = JsonConvert.DeserializeObject <PullTask>(responseText); status.UserObject = pullTask; status.StatusMessage = "User Tans Pulled Successfully . ."; } else { status.StatusMessage = responseText; } } } } return(status); }
private async Task LoadTasks(int RoleID, bool pullTasks) { try { ProgressBarVisibility = Visibility.Visible; ButtonEnable = false; ClearTaskSheet(); if (pullTasks) { RestStatus pullTaskResult = await RestHub.PullTask(RoleID, pullTasks); PullTask pullTask = pullTaskResult.UserObject != null ? (PullTask)pullTaskResult.UserObject : null; PullTaskVM pullTaskVm = new PullTaskVM(); if (pullTask != null) { pullTaskVm.TanNumber = pullTask.TanNumber; if (pullTask.UserRanks != null) { pullTaskVm.UserRank = pullTask.UserRanks.Find(ur => ur.Key == U.UserName)?.Rank; } if (pullTask.TanRanks != null && pullTask.TanNumber != null) { pullTaskVm.AllottedTanRank = pullTask.TanRanks.Find(ur => ur.Key == pullTask.TanNumber)?.Rank; } List <RankVM> rankVM = new List <RankVM>(); int count = 1; foreach (var r in pullTask.TanRanks) { rankVM.Add(new RankVM { DisplayOrder = count++, Key = r.Key, Rank = r.Rank, Score = r.Score.ToString() }); } pullTaskVm.TanRanks = new ObservableCollection <RankVM>(rankVM); rankVM = new List <RankVM>(); count = 1; foreach (var r in pullTask.UserRanks) { rankVM.Add(new RankVM { DisplayOrder = count++, Key = r.Key, Rank = r.Rank, Score = r.Score.ToString() }); } pullTaskVm.UserRanks = new ObservableCollection <Core.RankVM>(rankVM); PullTaskDetails.ShowWindow(pullTaskVm); } } RestStatus status = await RestHub.MyTans(RoleID, pullTasks); if (status.HttpCode == System.Net.HttpStatusCode.OK) { List <TaskDTO> tans = status.UserObject as List <TaskDTO>; if (tans != null && tans.Count > 0) { foreach (TaskDTO tan in tans) { Tasks.Add(new TaskDeatilsVM { TanId = tan.Id, TanName = tan.TanName, Status = tan.Status, Analyst = tan.Analyst, BatchNo = tan.BatchNo, NUMsCount = tan.NUMsCount, QC = tan.QC, Reviewer = tan.Reviewer, RXNsCount = tan.RXNsCount, Version = tan.Version, TanCompletionDate = tan.TanCompletionDate, ProcessingNote = tan.ProcessingNote, NearToTargetDate = tan.NearToTargetDate }); } Tasks.UpdateDisplayOrder(); UserTasks = new ListCollectionView(Tasks); } else { AppInfoBox.ShowInfoMessage("No Tasks Found. Try GetTasks After Some Time."); } } else { AppErrorBox.ShowErrorMessage("Some error occured in Getting Tans.", status.StatusMessage); } ButtonEnable = true; } catch (Exception ex) { Log.This(ex); } finally { ProgressBarVisibility = Visibility.Hidden; } }