public Adapter[] GetAdapters(int id) { var configuration = PTMKernelService.GetConfiguration(id); var ptfAdapters = configuration.Adapters; var pluginAdapters = configuration.TestSuite.GetPluginAdapters(); List <Adapter> result = new List <Adapter>(); foreach (var pluginAdapter in pluginAdapters) { var item = ptfAdapters.Where(i => i.Name == pluginAdapter.Name).FirstOrDefault(); if (item != null) { item.DisplayName = pluginAdapter.DisplayName; if (string.IsNullOrEmpty(item.AdapterType)) { item.AdapterType = pluginAdapter.AdapterType; } if (string.IsNullOrEmpty(item.ScriptDirectory)) { item.ScriptDirectory = pluginAdapter.ScriptDirectory; } item.SupportedKinds = pluginAdapter.SupportedKinds; if (string.IsNullOrEmpty(item.ShellScriptDirectory)) { item.ShellScriptDirectory = pluginAdapter.ShellScriptDirectory; } result.Add(item); } } return(result.ToArray()); }
public IActionResult SaveProfile(int id, [FromBody] ProfileExportRequest request = null) { ProfileExportRequest profileRequest = null; if (request != null && request.SelectedTestCases != null) { var testRun = PTMKernelService.GetTestRun(id); profileRequest = new ProfileExportRequest() { FileName = PTMKernelService.EnsureProfileName(null), TestSuiteId = testRun.Configuration.TestSuite.Id, ConfigurationId = testRun.Configuration.Id, TestResultId = id, SelectedTestCases = request.SelectedTestCases }; } string profileLocation = profileRequest == null?PTMKernelService.SaveProfileSettingsByTestResult(id) : PTMKernelService.SaveProfileSettings(profileRequest); var profileStream = new FileStream(profileLocation, FileMode.Open, FileAccess.Read, FileShare.Read); return(new FileStreamResult(profileStream, System.Net.Mime.MediaTypeNames.Text.Xml) { FileDownloadName = Path.GetFileName(profileLocation) }); }
public IActionResult ApplyAutoDetectionResult(int configurationId) { // Apply Detection Result. PTMKernelService.ApplyDetectionResult(configurationId); return(Ok()); }
public TestResultItem Get(int id) { var testRun = PTMKernelService.GetTestRun(id); var status = testRun.GetRunningStatus(); var result = new TestResultItem { Overview = new TestResultOverview { Id = id, ConfigurationId = testRun.Configuration.Id, Status = testRun.State, Total = status.Count(), NotRun = status.Where(i => i.Value.State == TestCaseState.NotRun).Count(), Running = status.Where(i => i.Value.State == TestCaseState.Running).Count(), Passed = status.Where(i => i.Value.State == TestCaseState.Passed).Count(), Failed = status.Where(i => i.Value.State == TestCaseState.Failed).Count(), Inconclusive = status.Where(i => i.Value.State == TestCaseState.Inconclusive).Count(), }, Results = status.Values.ToArray(), }; return(result); }
public string[] GetTests(int id) { var configuration = PTMKernelService.GetConfiguration(id); var result = configuration.GetApplicableTestCases().ToArray(); return(result); }
public IActionResult Abort(int id) { var testRun = PTMKernelService.GetTestRun(id); testRun.Abort(); return(Ok()); }
public TestCaseResult GetTestCaseResult(int id, string testCaseName) { var testRun = PTMKernelService.GetTestRun(id); var result = testRun.GetTestCaseResult(testCaseName); return(result); }
public IActionResult SetAdapters(int id, Adapter[] adapters) { var configuration = PTMKernelService.GetConfiguration(id); configuration.Adapters = adapters; return(Ok()); }
public IActionResult SetRules(int id, RuleGroup[] rules) { // Generate profile.xml var configuration = PTMKernelService.GetConfiguration(id); configuration.Rules = RuleGroup.ToKernalRuleGroups(rules); return(Ok()); }
public IActionResult GetDetectionSummary(int configurationId) { var response = PTMKernelService.GetDetectionSummary(configurationId); return(Ok(new { ResultItemMapList = response })); }
public int Run(RunRequest request) { if (PTMKernelService.IsTestSuiteRunning()) { throw new NotSupportedException("PTMService does not support parallel run right now, please wait for the current running job to be completed and then try again."); } var result = PTMKernelService.CreateTestRun(request.ConfigurationId, request.SelectedTestCases); return(result); }
public TestSuite[] GetTestSuites() { var result = PTMKernelService.QueryTestSuites().Select(item => new TestSuite { Id = item.Id, Name = item.Name, Version = item.Version, Description = item.Description, Removed = item.Removed }).ToArray(); return(result); }
public IActionResult GetTestSuiteDocs(int testSuiteId) { var testSuite = PTMKernelService.GetTestSuite(testSuiteId); string sourceUserGudiePath = Path.Combine(testSuite.StorageRoot.AbsolutePath, TestSuiteConsts.PluginFolderName, TestSuiteConsts.UserGuideFolderName); DirectoryInfo dir = new DirectoryInfo(sourceUserGudiePath); if (!dir.Exists) { return(NotFound("Missing user guide in package.")); } return(Ok()); }
public IActionResult GetDetectionSteps(int configurationId) { var detectResult = PTMKernelService.GetDetectionOutcome(configurationId); return(Ok(new { Result = new { Status = detectResult.Status, Exception = detectResult.Exception == null ? string.Empty : detectResult.Exception.ToString(), }, DetectionSteps = PTMKernelService.GetDetectedSteps(configurationId) })); }
public IActionResult SetProperties(int id, PropertySetItemGroup[] properties) { PTMKernelService.SetConfigurationProperties(id, properties.Select(group => new PropertyGroup { Name = group.Name, Items = group.Items.Select(item => new Property { Key = item.Key, Value = item.Value, }), })); return(Ok()); }
public Configuration[] GetConfigurations(int?testSuiteId) { var configurations = PTMKernelService.QueryConfigurations(testSuiteId); var result = configurations.Select(configuration => new Configuration { Id = configuration.Id, Name = configuration.Name, TestSuiteId = configuration.TestSuite.Id, Description = configuration.Description, IsConfigured = configuration.IsConfigured, }); return(result.ToArray()); }
public IActionResult StartAutoDetection(List <Property> properties, int configurationId) { PTMKernelService.Reset(configurationId); var setPrerequisite = PTMKernelService.SetPrerequisites(properties, configurationId); if (setPrerequisite) { PTMKernelService.StartDetection(configurationId, (o) => { }); return(Ok()); } else { return(BadRequest("There's errors when set prerequisites")); } }
public TestSuiteRules GetRules(int id) { var configuration = PTMKernelService.GetConfiguration(id); var groups = RuleGroup.FromKernalRuleGroups(configuration.Rules); var selectedRules = configuration.SelectedRules; groups = RuleGroup.UpdateByMappingTable(groups, configuration.TargetFilterIndex, configuration.FeatureMappingTable, selectedRules); groups = RuleGroup.UpdateByMappingTable(groups, configuration.MappingFilterIndex, configuration.ReverseMappingTable, selectedRules); return(new TestSuiteRules() { AllRules = groups, SelectedRules = RuleGroup.FromKernalRuleGroups(selectedRules), TargetFilterIndex = configuration.TargetFilterIndex, MappingFilterIndex = configuration.MappingFilterIndex }); }
public IActionResult GetTestSuiteDocs(int testSuiteId, string fileName) { var testSuite = PTMKernelService.GetTestSuite(testSuiteId); string sourceUserGudiePath = Path.Combine(testSuite.StorageRoot.AbsolutePath, TestSuiteConsts.PluginFolderName, TestSuiteConsts.UserGuideFolderName); var file = Path.Combine(sourceUserGudiePath, fileName); var fileInfo = new FileInfo(file); var extension = fileInfo.Extension; string GetMIMEType(string fileExtension) { return(fileExtension switch { ".html" => "text/html", ".png" => "image/png" }); }
public IActionResult GetTestRunReport(int id, [FromBody] ReportRequest request) { var reportPath = PTMKernelService.GetTestRunReport(id, request.Format, request.TestCases); var reportStream = new FileStream(reportPath, FileMode.Open, FileAccess.Read, FileShare.Read); return(new FileStreamResult(reportStream, GetMIMEType(request.Format)) { FileDownloadName = Path.GetFileName(reportPath) }); string GetMIMEType(ReportFormat format) => format switch { ReportFormat.Plain => "text/plain", ReportFormat.Json => "text/plain", ReportFormat.XUnit => "application/xml", _ => throw new InvalidOperationException($"\"{format}\" is not a valid report format.") }; }
public PropertyGetItemGroup[] GetProperties(int id) { var properties = PTMKernelService.GetConfigurationProperties(id); var result = properties.Select(group => new PropertyGetItemGroup { Name = group.Name, Items = group.Items.Select(property => new PropertyGetItem { Key = property.Key, Name = property.Name, Description = property.Description, Choices = property.Choices?.ToArray(), Value = property.Value, }).ToArray(), }).ToArray(); return(result); }
public int Install([FromForm] InstallRequest request) { if (string.IsNullOrEmpty(request.TestSuiteName)) { throw new ArgumentNullException(nameof(request.TestSuiteName)); } if (request.Package == null) { throw new ArgumentNullException(nameof(request.Package)); } string packageName = request.Package.FileName; var packageStream = request.Package.OpenReadStream(); int id = PTMKernelService.InstallTestSuite(request.TestSuiteName, packageName, packageStream, request.Description); return(id); }
public IActionResult Update(int id, [FromForm] InstallRequest request) { if (string.IsNullOrEmpty(request.TestSuiteName)) { throw new ArgumentNullException(nameof(request.TestSuiteName)); } if (request.Package == null) { throw new ArgumentNullException(nameof(request.Package)); } var packageName = request.Package.FileName; var packageStream = request.Package.OpenReadStream(); PTMKernelService.UpdateTestSuite(id, request.TestSuiteName, packageName, packageStream, request.Description); return(Ok()); }
public ListResponse List(int pageSize, int pageNumber, string query = "", bool showAll = false) { if (pageSize <= 0) { throw new ArgumentOutOfRangeException(nameof(pageSize)); } if (pageNumber < 0) { throw new ArgumentOutOfRangeException(nameof(pageNumber)); } Func <TestResult, bool> queryFunc = query switch { null or "" => (TestResult result) => { if (showAll) { return(true); } else { var configuration = PTMKernelService.GetConfiguration(result.TestSuiteConfigurationId); var testSuite = PTMKernelService.GetTestSuite(configuration.TestSuite.Id); return(true && !testSuite.Removed); } }, _ => (TestResult result) => { var containingQuery = false; var configuration = PTMKernelService.GetConfiguration(result.TestSuiteConfigurationId); if (configuration.Name.ToLower().Contains(query.ToLower())) { containingQuery = true; } var testSuite = PTMKernelService.GetTestSuite(configuration.TestSuite.Id); if (testSuite.Name.ToLower().Contains(query.ToLower())) { containingQuery = true; } if (showAll) { return(containingQuery); } else { return(containingQuery && !testSuite.Removed); } } }; var items = PTMKernelService.QueryTestRuns(pageSize, pageNumber, queryFunc, out int totalPage).Select(testRun => new TestResultOverview { Id = testRun.Id, ConfigurationId = testRun.Configuration.Id, Status = testRun.State, Total = testRun.Total, NotRun = testRun.NotRun, Running = 0, Passed = testRun.Passed, Failed = testRun.Failed, Inconclusive = testRun.Inconclusive, }).ToArray(); var result = new ListResponse { PageCount = totalPage, TestResults = items, }; return(result); }
public int CreateConfiguration(Configuration request) { int result = PTMKernelService.CreateConfiguration(request.Name, request.TestSuiteId, request.Description); return(result); }
public IActionResult Remove(int id) { PTMKernelService.RemoveTestSuite(id); return(Ok()); }
public PrerequisiteView GetPrerequisites(int configurationId) { var response = PTMKernelService.GetPrerequisites(configurationId); return(response); }
public IActionResult InitializeDetector(int configurationId) { PTMKernelService.CreateAutoDetector(configurationId); return(Ok()); }
public IActionResult GetDetectionLog(int configurationId) { var response = PTMKernelService.GetDetectionLog(configurationId); return(Ok(response)); }
public IActionResult StopAutoDetection(int configurationId) { PTMKernelService.StopDetection(configurationId, () => { }); return(Ok()); }