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> { { "remoteUrl", "http://github.com/test/test" }, { "pullRequestUrl", "http://github.com/test/test/pull/1" } }); var config = new Dictionary <string, string>() { { "CreatePullRequest", "true" } }; var task = new PushTask(_projectService.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("http://github.com/test/test", result.ReturnValue); Assert.Equal("Changes has been pushed into http://github.com/test/test", result.TaskRemarks); Assert.Equal("A pull request has been submitted to http://github.com/test/test/pull/1. Please review it, and restart this queue when it's ready to be merged", result.StopRemarks); }
public async void RunMainTask_NoProvider() { var config = new Dictionary <string, string>(); var task = new PushTask(_projectService.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> { { "remoteUrl", "http://github.com/test/test" }, { "pullRequestUrl", "http://github.com/test/test/pull/1" } }); _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" }, { "CreatePullRequest", "true" } }; var task = new PushTask(_projectService.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("http://github.com/test/test", result.ReturnValue); Assert.Equal("Changes has been pushed into http://github.com/test/test", result.TaskRemarks); Assert.Equal("A pull request has been submitted to http://github.com/test/test/pull/1. Please review it, and restart this queue when it's ready to be merged", result.StopRemarks); 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 PushTask(_projectService.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); }