protected AbstractWebRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog) { _dataObject = null; _resourceCatalog = catalog; _testCatalog = testCatalog; #pragma warning restore S3010 }
public void Calculte(ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog) { AllTestResults = new List <IServiceTestModelTO>(); _allCoverageReports = new AllCoverageReports(); foreach (var coverageResource in _workflows) { if (coverageResource is null) { continue; } SetWarewolfTestResults(testCatalog, coverageResource); SetWarewolfCoverageReports(testCoverageCatalog, coverageResource); } var workflowCoverageReportsTOs = _allCoverageReports.Calcute(); AllCoverageReports = workflowCoverageReportsTOs; TotalWorkflowNodesCoveredCount = workflowCoverageReportsTOs.Sum(o => o.CoveredWorkflowNodesIds.Count()); TotalWorkflowNodesCount = GetTotalWorkflowsNodesCount(); TotalWorkflowNodesCoveredPercentage = GetTotalWorkflowNodesCoveredPercentage(); _allCoverageReports.EndTime = DateTime.Now; }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, IWorkspaceRepository workspaceRepository, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory) { _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _workspaceRepository = workspaceRepository; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; }
public Executor(IWorkspaceRepository workspaceRepository, IResourceCatalog resourceCatalog, ITestCatalog testCatalog, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory) { _repository = workspaceRepository; _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; }
protected AbstractWebRequestHandler(IResourceCatalog catalog , ITestCatalog testCatalog , IDSFDataObject dataObject , IAuthorizationService authorizationService , IWorkspaceRepository repository) : this(catalog, testCatalog) { _dataObject = dataObject; _authorizationService = authorizationService; _repository = repository; }
protected ExecutorBase(IWorkspaceRepository workspaceRepository, IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, IJwtManager jwtManager) { _repository = workspaceRepository; _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; _esbChannelFactory = esbChannelFactory; _jwtManager = jwtManager; }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IWorkspaceRepository workspaceRepository, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, ISecuritySettings securitySettings, IJwtManager jwtManager) { _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; _workspaceRepository = workspaceRepository; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; _esbChannelFactory = esbChannelFactory; _securitySettings = securitySettings; _jwtManager = jwtManager; }
public ServerExplorerRepository(IResourceCatalog resourceCatalog, IExplorerItemFactory explorerItemFactory, IDirectory directory, IExplorerRepositorySync sync, IServerVersionRepository versionRepository, IFile file, ITestCatalog testCatalog) { VerifyArgument.AreNotNull(new Dictionary <string, object> { { "resourceCatalog", resourceCatalog }, { "explorerItemFactory", explorerItemFactory }, { "directory", directory }, { nameof(testCatalog), testCatalog } }); _sync = sync; _file = file; VersionRepository = versionRepository; ResourceCatalogue = resourceCatalog; ExplorerItemFactory = explorerItemFactory; Directory = directory; TestCatalog = testCatalog; IsDirty = false; }
private void SetWarewolfTestResults(ITestCatalog testCatalog, IWarewolfResource coverageResource) { var workflowTestResults = new WorkflowTestResults(testCatalog, coverageResource); if (!string.IsNullOrEmpty(_reportName) && _reportName != "*") { var report = testCatalog.Fetch(coverageResource.ResourceID); var tempcoverageReport = report?.Find(oo => oo.TestName?.ToUpper() == _reportName.ToUpper()); if (tempcoverageReport != null) { AllTestResults.Add(tempcoverageReport); } } else { workflowTestResults.Results ?.ForEach(o => AllTestResults.Add(o)); } }
public override void ProcessRequest(ICommunicationContext ctx) { var postDataListId = ctx.GetDataListID(); if (postDataListId != null) { _catalog = _catalog ?? ResourceCatalog.Instance; _testCatalog = _testCatalog ?? TestCatalog.Instance; _testCoverageCatalog = _testCoverageCatalog ?? TestCoverageCatalog.Instance; new WebPostRequestHandler(_catalog, _testCatalog, _testCoverageCatalog).ProcessRequest(ctx); return; } var serviceName = ctx.GetServiceName(); var workspaceId = ctx.GetWorkspaceID(); var requestTo = new WebRequestTO { ServiceName = serviceName, WebServerUrl = ctx.Request.Uri.ToString(), Dev2WebServer = $"{ctx.Request.Uri.Scheme}://{ctx.Request.Uri.Authority}" }; var data = SubmittedData.GetPostData(ctx); if (!string.IsNullOrEmpty(data)) { requestTo.RawRequestPayload = data; } var variables = ctx.Request.BoundVariables; if (variables != null) { foreach (string key in variables) { requestTo.Variables.Add(key, variables[key]); } } // Execute in its own thread to give proper context ;) Thread.CurrentPrincipal = ctx.Request.User; var responseWriter = CreateForm(requestTo, serviceName, workspaceId, ctx.FetchHeaders(), ctx.Request.User); ctx.Send(responseWriter); }
public static DataListFormat ExecuteTests(string serviceName, IDSFDataObject dataObject, DataListFormat formatter, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog catalog, IResourceCatalog resourceCatalog, ref string executePayload) { if (dataObject.TestsResourceIds?.Any() ?? false) { formatter = dataObject.RunMultipleTestBatches(userPrinciple, workspaceGuid, serializer, formatter, resourceCatalog, catalog, ref executePayload); dataObject.ResourceID = Guid.Empty; } else { var objArray = dataObject.RunSingleTestBatch(serviceName, userPrinciple, workspaceGuid, serializer, catalog, ref formatter); executePayload = serializer.Serialize(objArray); } Dev2DataListDecisionHandler.Instance.RemoveEnvironment(dataObject.DataListID); dataObject.Environment = null; return(formatter); }
public WebGetRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog) { _catalog = catalog; _testCatalog = testCatalog; }
public TestSearcher(IResourceCatalog resourceCatalog, ITestCatalog testCatalog) { _resourceCatalog = resourceCatalog ?? throw new ArgumentNullException(nameof(resourceCatalog)); _testCatalog = testCatalog ?? throw new ArgumentNullException(nameof(testCatalog)); }
public WebPostRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IEsbChannelFactory esbChannelFactory) : base(catalog, testCatalog, testCoverageCatalog, esbChannelFactory, new SecuritySettings()) { }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IEsbChannelFactory esbChannelFactory, ISecuritySettings securitySettings) : this(resourceCatalog, testCatalog, testCoverageCatalog, null, WorkspaceRepository.Instance, ServerAuthorizationService.Instance, new DataObjectFactory(), esbChannelFactory, securitySettings, new JwtManager(securitySettings)) { }
/// <summary> /// Executes the specified errors. /// </summary> /// <param name="errors">The errors.</param> /// <param name="update"></param> /// <returns></returns> public override Guid Execute(out ErrorResultTO errors, int update) { errors = new ErrorResultTO(); ITestCatalog testCatalog = TstCatalog ?? TestCatalog.Instance; // WorkflowApplicationFactory wfFactor = new WorkflowApplicationFactory(); Guid result = GlobalConstants.NullDataListID; Dev2Logger.Debug("Entered Wf Container"); // Set Service Name DataObject.ServiceName = ServiceAction.ServiceName; // Set server ID, only if not set yet - original server; if (DataObject.ServerID == Guid.Empty) { DataObject.ServerID = HostSecurityProvider.Instance.ServerID; } // Set resource ID, only if not set yet - original resource; if (DataObject.ResourceID == Guid.Empty && ServiceAction?.Service != null) { DataObject.ResourceID = ServiceAction.Service.ID; } // Travis : Now set Data List DataObject.DataList = ServiceAction.DataListSpecification; // Set original instance ID, only if not set yet - original resource; if (DataObject.OriginalInstanceID == Guid.Empty) { DataObject.OriginalInstanceID = DataObject.DataListID; } Dev2Logger.Info($"Started Execution for Service Name:{DataObject.ServiceName} Resource Id:{DataObject.ResourceID} Mode:{(DataObject.IsDebug ? "Debug" : "Execute")}"); //Set execution origin if (!string.IsNullOrWhiteSpace(DataObject.ParentServiceName)) { DataObject.ExecutionOrigin = ExecutionOrigin.Workflow; DataObject.ExecutionOriginDescription = DataObject.ParentServiceName; } else if (DataObject.IsDebug) { DataObject.ExecutionOrigin = ExecutionOrigin.Debug; } else { DataObject.ExecutionOrigin = ExecutionOrigin.External; } ErrorResultTO to = errors; var serviceTestModelTo = testCatalog.FetchTest(DataObject.ResourceID, DataObject.TestName); if (serviceTestModelTo == null) { testCatalog.Load(); serviceTestModelTo = testCatalog.FetchTest(DataObject.ResourceID, DataObject.TestName); } if (serviceTestModelTo == null) { Dev2JsonSerializer serializer = new Dev2JsonSerializer(); var testRunResult = new ServiceTestModelTO { Result = new TestRunResult { TestName = DataObject.TestName, RunTestResult = RunResult.TestInvalid, Message = $"Test {DataObject.TestName} for Resource {DataObject.ServiceName} ID {DataObject.ResourceID}, has been deleted." } }; Dev2Logger.Error($"Test {DataObject.TestName} for Resource {DataObject.ServiceName} ID {DataObject.ResourceID}, has been deleted."); _request.ExecuteResult = serializer.SerializeToBuilder(testRunResult); return(Guid.NewGuid()); } if (serviceTestModelTo.AuthenticationType == AuthenticationType.User) { Impersonator impersonator = new Impersonator(); var userName = serviceTestModelTo.UserName; var domain = ""; if (userName.Contains("\\")) { var slashIndex = userName.IndexOf("\\", StringComparison.InvariantCultureIgnoreCase); domain = userName.Substring(0, slashIndex); userName = userName.Substring(slashIndex + 1); } else if (userName.Contains("@")) { var atIndex = userName.IndexOf("@", StringComparison.InvariantCultureIgnoreCase); userName = userName.Substring(0, atIndex); domain = userName.Substring(atIndex + 1); } var hasImpersonated = impersonator.Impersonate(userName, domain, DpapiWrapper.DecryptIfEncrypted(serviceTestModelTo.Password)); if (!hasImpersonated) { DataObject.Environment.AllErrors.Add("Unauthorized to execute this resource."); DataObject.StopExecution = true; } } else if (serviceTestModelTo.AuthenticationType == AuthenticationType.Public) { Thread.CurrentPrincipal = GlobalConstants.GenericPrincipal; } var userPrinciple = Thread.CurrentPrincipal; Common.Utilities.PerformActionInsideImpersonatedContext(userPrinciple, () => { result = ExecuteWf(to, serviceTestModelTo); }); if (DataObject.Environment.Errors != null) { foreach (var err in DataObject.Environment.Errors) { errors.AddError(err, true); } } if (DataObject.Environment.AllErrors != null) { foreach (var err in DataObject.Environment.AllErrors) { errors.AddError(err, true); } } Dev2Logger.Info($"Completed Execution for Service Name:{DataObject.ServiceName} Resource Id: {DataObject.ResourceID} Mode:{(DataObject.IsDebug ? "Debug" : "Execute")}"); return(result); }
public static DataListFormat RunSingleTestBatchAndReturnTRX(this IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, DataListFormat formatter, string serviceName, ITestCatalog testCatalog, ref string executePayload) { var testResults = RunAllTestsForWorkflow(dataObject, serviceName, userPrinciple, workspaceGuid, serializer, testCatalog); formatter = DataListFormat.CreateFormat("XML", EmitionTypes.XML, "text/xml"); executePayload = ServiceTestModelTRXResultBuilder.BuildTestResultTRX(serviceName, testResults); return(formatter); }
public WorkflowTestResults(ITestCatalog testCatalog, IWarewolfResource res) { _testCatalog = testCatalog; Resource = res; Initialize(); }
public static DataListFormat RunMultipleTestBatchesAndReturnJSON(this IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, DataListFormat formatter, IResourceCatalog catalog, ITestCatalog testCatalog, ref string executePayload) { var testResults = RunListOfTests(dataObject, userPrinciple, workspaceGuid, serializer, catalog, testCatalog); formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var objArray = (from testRunResult in testResults where testRunResult != null select testRunResult.BuildTestResultJSONForWebRequest() ).ToList(); if (objArray.Count > 0) { executePayload = (executePayload == string.Empty ? "[" : executePayload.TrimEnd("\r\n]".ToCharArray()) + ",") + serializer.Serialize(objArray).TrimStart('['); } else { executePayload = "[]"; } return(formatter); }
public DeleteResource(IResourceCatalog resourceCatalog, ITestCatalog testCatalog) { _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; }
public static DataListFormat ExecuteTests(string serviceName, IDSFDataObject dataObject, DataListFormat formatter, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog testCatalog, IResourceCatalog resourceCatalog, ref string executePayload) { if (dataObject.TestsResourceIds?.Any() ?? false) { if (dataObject.ReturnType == Web.EmitionTypes.TEST) { formatter = dataObject.RunMultipleTestBatchesAndReturnJSON(userPrinciple, workspaceGuid, serializer, formatter, resourceCatalog, testCatalog, ref executePayload); } if (dataObject.ReturnType == Web.EmitionTypes.TRX) { formatter = dataObject.RunMultipleTestBatchesAndReturnTRX(userPrinciple, workspaceGuid, serializer, formatter, resourceCatalog, testCatalog, ref executePayload); } dataObject.ResourceID = Guid.Empty; } else { if (dataObject.ReturnType == EmitionTypes.TEST) { formatter = dataObject.RunSingleTestBatchAndReturnJSON(userPrinciple, workspaceGuid, serializer, formatter, serviceName, testCatalog, ref executePayload); } if (dataObject.ReturnType == Web.EmitionTypes.TRX) { formatter = dataObject.RunSingleTestBatchAndReturnTRX(userPrinciple, workspaceGuid, serializer, formatter, serviceName, testCatalog, ref executePayload); } } Dev2DataListDecisionHandler.Instance.RemoveEnvironment(dataObject.DataListID); dataObject.Environment = null; return(formatter); }
public WebGetRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog) : base(catalog, testCatalog, testCoverageCatalog, new DefaultEsbChannelFactory(), new SecuritySettings()) { }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutor serviceTestExecutor, IWorkspaceRepository workspaceRepository, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, ISecuritySettings securitySettings) : this(resourceCatalog, testCatalog, testCoverageCatalog, serviceTestExecutor, workspaceRepository, authorizationService, dataObjectFactory, esbChannelFactory, securitySettings, new JwtManager(securitySettings)) { }
static List <IServiceTestModelTO> RunAllTestsForWorkflow(IDSFDataObject dataObject, string serviceName, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog testCatalog) { var allTests = testCatalog.Fetch(dataObject.ResourceID) ?? new List <IServiceTestModelTO>(); var taskList = new List <Task>(); var testResults = new List <IServiceTestModelTO>(); foreach (var test in allTests.Where(to => to.Enabled)) { dataObject.ResourceID = test.ResourceId; var dataObjectClone = dataObject.Clone(); dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; dataObjectClone.ServiceName = serviceName; var lastTask = ServiceTestExecutor.GetTaskForTestExecution(serviceName, userPrinciple, workspaceGuid, serializer, testResults, dataObjectClone); taskList.Add(lastTask); } Task.WaitAll(taskList.ToArray()); return(testResults); }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog) : this(resourceCatalog, testCatalog, testCoverageCatalog, WorkspaceRepository.Instance, ServerAuthorizationService.Instance, new DataObjectFactory()) { }
static List <IServiceTestModelTO> RunListOfTests(IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, IResourceCatalog catalog, ITestCatalog testCatalog) { var testResults = new List <IServiceTestModelTO>(); var taskList = new List <Task>(); foreach (var testsResourceId in dataObject.TestsResourceIds) { var allTests = testCatalog.Fetch(testsResourceId); foreach (var test in allTests) { var dataObjectClone = dataObject.Clone(); dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; var res = catalog.GetResource(GlobalConstants.ServerWorkspaceID, testsResourceId); dataObjectClone.ServiceName = res.ResourceName; dataObjectClone.ResourceID = res.ResourceID; var resourcePath = res.GetResourcePath(GlobalConstants.ServerWorkspaceID).Replace("\\", "/"); var lastTask = ServiceTestExecutor.GetTaskForTestExecution(resourcePath, userPrinciple, workspaceGuid, serializer, testResults, dataObjectClone); taskList.Add(lastTask); } } Task.WaitAll(taskList.ToArray()); return(testResults); }
protected AbstractWebRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog) { _resourceCatalog = catalog; _testCatalog = testCatalog; }
public static DataListFormat ExecuteTests(IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog testCatalog, IResourceCatalog resourceCatalog, out string executePayload, ITestCoverageCatalog testCoverageCatalog) { executePayload = null; DataListFormat formatter = null; if (dataObject.TestsResourceIds?.Any() ?? false) { if (dataObject.ReturnType == EmitionTypes.TEST) { formatter = dataObject.RunMultipleTestBatchesAndReturnJSON(userPrinciple, workspaceGuid, serializer, resourceCatalog, testCatalog, out executePayload, testCoverageCatalog); } if (dataObject.ReturnType == EmitionTypes.TRX) { formatter = dataObject.RunMultipleTestBatchesAndReturnTRX(userPrinciple, workspaceGuid, serializer, resourceCatalog, testCatalog, out executePayload, testCoverageCatalog); } dataObject.ResourceID = Guid.Empty; } else { Dev2.Common.Dev2Logger.Warn("No tests found to execute for requested resource", Dev2.Common.GlobalConstants.WarewolfWarn); } Dev2DataListDecisionHandler.Instance.RemoveEnvironment(dataObject.DataListID); dataObject.Environment = null; return(formatter ?? DataListFormat.CreateFormat("XML", EmitionTypes.XML, "text/xml")); }
public static DataListFormat RunSingleTestBatchAndReturnJSON(this IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, DataListFormat formatter, string serviceName, ITestCatalog testCatalog, ref string executePayload) { var testResults = RunAllTestsForWorkflow(dataObject, serviceName, userPrinciple, workspaceGuid, serializer, testCatalog); formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var objArray = (from testRunResult in testResults where testRunResult != null select testRunResult.BuildTestResultJSONForWebRequest() ).ToList(); executePayload = serializer.Serialize(objArray); return(formatter); }
public static DataListFormat GetTestCoverageReports(ICoverageDataObject coverageObject, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, IResourceCatalog resourceCatalog, out string executePayload) { DataListFormat formatter = null; if (coverageObject.CoverageReportResourceIds?.Any() ?? false) { if (coverageObject.ReturnType == EmitionTypes.CoverJson) { formatter = coverageObject.RunCoverageAndReturnJSON(testCoverageCatalog, testCatalog, resourceCatalog, workspaceGuid, serializer, out executePayload); } else if (coverageObject.ReturnType == EmitionTypes.Cover) { formatter = coverageObject.RunCoverageAndReturnHTML(testCoverageCatalog, testCatalog, resourceCatalog, workspaceGuid, out executePayload); } else { executePayload = null; } } else { executePayload = null; Common.Dev2Logger.Warn("No test coverage reports found to execute for requested resource", Common.GlobalConstants.WarewolfWarn); } return(formatter ?? DataListFormat.CreateFormat("HTML", EmitionTypes.Cover, "text/html; charset=utf-8")); }