/// <summary> /// Migrates the Wse Module and all referencing XTestSteps. /// </summary> /// <param name="objectToExecuteOn">Only WSE XTestSteps and XModules which are present under this objectToExecuteOn object will be migrated.</param> public void Migrate(TCObject objectToExecuteOn) { foreach (var wseTestStep in CommonUtilities.GetFilteredWseTestSteps(objectToExecuteOn, WseModule.TestSteps) ) { try { FileLogger.Instance.Debug( $"Started migration for WSE TestStep : 'Name: {wseTestStep.Name}' NodePath:'{wseTestStep.NodePath}'"); var testStepParser = new WseTestStepParser(); testStepParser.Parse(wseTestStep, PayloadParser); (ApiModule requestApiModule, ApiModule responseApiModule) = GetExistingOrCreateNewApiModulePair(objectToExecuteOn, wseTestStep, testStepParser); WseTestStepMigrator wseTestStepMigrator = new WseTestStepMigrator(); wseTestStepMigrator.Migrate(objectToExecuteOn, requestApiModule, responseApiModule, PayloadParser, PayloadSetterFactory, wseTestStep ); FileLogger.Instance.Debug( $"Completed migration for WSE TestStep : 'Name: {wseTestStep.Name}' NodePath:'{wseTestStep.NodePath}'"); } catch (Exception e) { FileLogger.Instance.Error(e); } } }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { ExecutionEntry ee = objectToExecuteOn as ExecutionEntry; ee.ActualLog.Comment = String.Empty; ee.ActualLog.ChangeRequestId = String.Empty; return null; }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { if (objectToExecuteOn is TCFolder) { AddExecutionEntries(objectToExecuteOn as TCFolder); } if (objectToExecuteOn is ExecutionEntryFolder) { AddExecutionEntries(objectToExecuteOn as ExecutionEntryFolder); } if (objectToExecuteOn is ExecutionList) { AddExecutionEntries(objectToExecuteOn as ExecutionList); } TFSConnector tfs = new TFSConnector(); foreach (ExecutionEntry ee in entries) { if (IsInteger(ee.ActualLog.ChangeRequestId)) { DefectResult dr = tfs.GetDefect(ee.ActualLog.ChangeRequestId); ee.ActualLog.ChangeRequestState = dr.status; } } tfs.GetTFSDefectsWithToscaDefects(); tfs.DisposeTFS(); return null; }
public override bool IsTaskPossible(TCObject obj) { //used for debugging return false; /* bool enabled = false; ExecutionEntry ee = obj as ExecutionEntry; if (ee == null) { return false; } if (ee.ActualResult.ToString() == "Failed") { enabled = true; if (String.IsNullOrEmpty(ee.ActualLog.ChangeRequestId) & String.IsNullOrEmpty(ee.ActualLog.ChangeRequestState)) { enabled = false; } } return enabled; */ }
private (ApiModule requestApiModule, ApiModule responseApiModule) GetExistingOrCreateNewApiModulePair( TCObject objectToExecuteOn, XTestStep wseTestStep, IWseArtifactsParser wseParser) { ApiModule requestApiModule = null; ApiModule responseApiModule = null; if (!IsModuleSearchCriteriaEmpty(wseParser)) { (requestApiModule, responseApiModule) = CommonUtilities.SearchExistingApiModule(objectToExecuteOn, wseParser, wseTestStep); } if (requestApiModule != null) { return(requestApiModule, responseApiModule); } FolderStructureHandler folderStructureHandler = new FolderStructureHandler(); (TCFolder apiModuleFolder, string moduleName) = folderStructureHandler.CreateFolderForApiModules(objectToExecuteOn, wseTestStep, wseParser); return(ApiModuleHandler.CreateApiModulePair(apiModuleFolder, moduleName, wseParser)); }
public override bool IsTaskPossible(TCObject obj) { OwnedItem oi = (OwnedItem)obj; var config = oi.GetJiraConfig(); return(config != null); }
public override TCObject Execute(TCObject item, TCAddOnTaskContext taskContext) { var config = ((OwnedItem)item).GetJiraConfig(); string[] props = new string[] { }; if (item.GetType() == typeof(RequirementSet)) { props = ToscaHelpers.GetPropertyNames("requirement"); } if (item.GetType() == typeof(TCFolder)) { var folder = item as TCFolder; props = ToscaHelpers.GetPropertyNames(folder.PossibleContent); } var properties = props; var configConstructor = new ConfigConstructor { currentConfig = config, availableAttributes = properties }; ParameterizedThreadStart pts = new ParameterizedThreadStart(ThreadStart); Thread t = new Thread(ThreadStart); t.SetApartmentState(ApartmentState.STA); t.Start(configConstructor); t.Join(); ((OwnedItem)item).SaveConfig(config); return(item); }
public override bool IsTaskPossible(TCObject obj) { bool enabled = false; ExecutionEntry ee = obj as ExecutionEntry; // als er een executionentry is, dan is de optie toegestaan if (ee == null || ee.ActualLog == null) { return false; } // als het resultaat Failed is, dan is de optie toegestaan. if (ee.ActualResult.ToString() == "Failed") { enabled = true; // als het changeRequestId NIET leeg is, dan is de optie toegestaan if (!String.IsNullOrEmpty(ee.ActualLog.ChangeRequestId)) { enabled = true; } else { enabled = false; } } return enabled; }
/// <summary> /// Migrates the Wse Module and all referencing XTestSteps. /// </summary> /// <param name="objectToExecuteOn">Only WSE XTestSteps and XModules which are present under this object will be migrated.</param> public void Migrate(TCObject objectToExecuteOn) { var wseTestSteps = CommonUtilities.GetFilteredWseTestSteps(objectToExecuteOn, wseModule.TestSteps); if (!wseTestSteps.Any()) { WseModuleParser wseParser = new WseModuleParser(); wseParser.Parse(wseModule); FolderStructureHandler folderStructureHandler = new FolderStructureHandler(); TCFolder apiModuleFolder = folderStructureHandler.CreateFolderForApiModules(wseModule); ApiModuleHandler.CreateApiModulePair(apiModuleFolder, wseModule.Name, wseParser); } else { foreach (var wseTestStep in wseTestSteps) { WseTestStepParser wseTestStepParser = new WseTestStepParser(); wseTestStepParser.Parse(wseTestStep, new XmlPayloadParser()); (ApiModule requestApiModule, ApiModule responseApiModule) = GetExistingOrCreateNewApiModulePair(objectToExecuteOn, wseTestStep, wseTestStepParser); WseTestStepMigrator wseTestStepMigrator = new WseTestStepMigrator(); wseTestStepMigrator.Migrate(objectToExecuteOn, requestApiModule, responseApiModule, new XmlPayloadParser(), new XmlPayloadSetterFactory(), wseTestStep); } } }
/// <summary> /// Get Endpoint, Resource and Query Params from WSE Module /// </summary> /// <param name="wseModule"></param> /// <returns>AddressParserResult object which contains Endpoint, Resource and Query Params</returns> public AddressParserResult Parse(XModule wseModule) { var addressParserResult = new AddressParserResult(); try { TCObject addressValueTql = wseModule.Search(AddOnConstants.AddressValueTql).FirstOrDefault(); if (addressValueTql == null) { return(addressParserResult); } XModuleAttribute addressValue = addressValueTql as XModuleAttribute; if (string.IsNullOrEmpty(addressValue?.DefaultValue)) { return(addressParserResult); } ParseAddressInternal(addressParserResult, addressValue.DefaultValue); } catch (Exception ex) { FileLogger.Instance.Error(ex); } return(addressParserResult); }
/// <summary> /// This method contains the logic performed when the context menu is selected. /// </summary> /// <param name="objectToExecuteOn">TCObject on which the context menu task is performed.</param> /// <param name="taskContext">Task Context of the AddOn Task.</param> /// <returns>TCObject Instance</returns> public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { TCProject workspaceRoot = objectToExecuteOn as TCProject; //Opens the File Upload dialog. string filepath = taskContext.GetFilePath("Upload UFT Object archive"); //Instantiation of this object is mandatory. This class contains the necessary methods for migration. ToscaObjectDefinition toscaObjects = new ToscaObjectDefinition(); try { //Instantiates the MigrationTask class that contains the business logic of migration. MigrationTask migrationObjectImporter = new MigrationTask(toscaObjects, Engine.Html); //Entry point of MigrationTask class. migrationObjectImporter.ProcessArchive(filepath); //Calling this method is mandatory. It outputs the file containing the migrated object information. string outputFilePath = toscaObjects.FinishObjectDefinitionTask(); //Imports the output file from MigrationTask. workspaceRoot?.ImportExternalObjects(outputFilePath); //Cleans the migration metafiles. Directory.Delete(toscaObjects.MigrationFolderPath, true); } catch (Exception e) { //Pops-up the error message in case of any error in Migration. taskContext.ShowErrorMessage("Exception occured", e.Message); } return(null); }
public override bool IsTaskPossible(TCObject obj) { bool enabled = false; ExecutionEntry ee = obj as ExecutionEntry; if (ee == null || ee.ActualLog == null) { return false; } if (ee.ActualResult.ToString() == "Failed") { enabled = true; if (!String.IsNullOrEmpty(ee.ActualLog.ChangeRequestId)) { enabled = true; } else { enabled = false; } } return enabled; }
/// <summary> /// Get WseTestSteps on the basis of TQL /// </summary> /// <param name="rootComponentFolder">Component Folder on which migration is executing</param> /// <param name="wseModuleTestSteps">WSE XTestSteps</param> /// <returns>List of WSE XTesSteps</returns> public static List <XTestStep> GetFilteredWseTestSteps(TCObject rootComponentFolder, IEnumerable <XTestStep> wseModuleTestSteps) { var list = new List <XTestStep>(); foreach (XTestStep testStep in wseModuleTestSteps) { try { XTestStep xtestStep = (XTestStep)rootComponentFolder .Search( $"=>COMPLEMENT(=>UNION(=>SUBPARTS: XTestStep[UniqueId == \"{testStep.UniqueId}\"],=>SUBPARTS:TestStepFolderReference=>ReusedItem=>SUBPARTS:XTestStep[UniqueId == \"{testStep.UniqueId}\"]),=>SUBPARTS:TestCaseTemplateInstance=>SUBPARTS:XTestStep[UniqueId == \"{testStep.UniqueId}\"])") .FirstOrDefault(); if (xtestStep == null) { continue; } list.Add(xtestStep); } catch (Exception ex) { FileLogger.Instance.Error("Failed to get WSETestStep", ex); } } return(list); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { NeoLoadSettings.WriteSettingsToUserFile("WEB"); var exec = (objectToExecuteOn as ExecutionEntry).Run(); NeoLoadSettings.DeleteUserFile(); return(exec); }
public static ApiModule SearchModuleByScanTag(TCObject rootComponentFolder, string scanTag) { var apiModule = (ApiModule)rootComponentFolder .Search( $"=>SUBPARTS:ApiModule[ScanTag==\"{scanTag}\"]") .FirstOrDefault(); return(apiModule); }
public override bool IsTaskPossible(TCObject obj) { bool flag = false; if ((obj as TCFolder).Search("=>SUBPARTS:XModule").Count > 0) { flag = true; } return(flag); }
/// <summary> /// Evaluates Json path of wseteststep values. /// </summary> /// <param name="wseTestStep">parent node of wseteststep</param> /// <param name="wseTestStepValue">node for which json path is to be evaluated</param> /// <param name="jsonPath">reform json path for static or dynamic payload</param> /// <returns></returns> public virtual string GetJsonPath(XTestStep wseTestStep, XTestStepValue wseTestStepValue, string jsonPath) { TCObject rootObject = wseTestStep .Search("=>SUBPARTS:XTestStepValue[Name==\"Response\"]->SUBPARTS") .FirstOrDefault(); var rootObjectNodePath = rootObject?.NodePath; return(ExtractToscaJsonPath(rootObjectNodePath, wseTestStepValue, jsonPath)); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { // Create custom properties on Requirements and RequirementSets. // This is to be used to search when updating or knowing which ones have been created by this addon. ToscaHelpers.CreateCustomProperties("Requirement", Global.JiraTicket); ToscaHelpers.CreateCustomProperties("Requirement", Global.JiraLastSyncedAttributeName); ToscaHelpers.CreateCustomProperties("Requirement", Global.JiraSyncStateAttributeName); ToscaHelpers.CreateIssuesProperties("Issue", Global.JiraTicket); return(null); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { ExecutionEntry ee = objectToExecuteOn as ExecutionEntry; TFSConnector tfs = new TFSConnector(); DefectResult dr = tfs.GetDefect(ee.ActualLog.ChangeRequestId); tfs.DisposeTFS(); if (!String.IsNullOrEmpty(dr.status)) { ee.ActualLog.Comment = dr.status; } return null; }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { ExecutionEntry ee = objectToExecuteOn as ExecutionEntry; int bugid = 0; Int32.TryParse(ee.ActualLog.ChangeRequestId, out bugid); if (bugid > 0) { TFSConnector tfsc = new TFSConnector(); Process.Start(tfsc.GetWorkItemUrl(bugid).ToString()); } return null; }
public override TCObject Execute(TCObject obj, List <TCObject> dropObjects, bool copy, TCAddOnTaskContext context) { TCFolder folder = obj as TCFolder; TestCase tc = folder.CreateTestCase(); tc.Name = "AddOn Drag-drop Test Cases"; foreach (TCObject objDrop in dropObjects) { TCFolder moduleFolder = objDrop as TCFolder; List <TCObject> modules = moduleFolder.Search("=>SUBPARTS:XModule"); tc.CreateXTestStepFromXModule(modules); } return(null); }
/// <summary> /// Takes backup at project or component level. /// </summary> /// <param name="tcObject"></param> public static void CreateBackup(TCObject tcObject) { string backupPath = Environment.GetEnvironmentVariable("TRICENTIS_ALLUSERS_APPDATA") + "\\Automation\\WSEToAPIMigrationBackup"; if (!Directory.Exists(backupPath)) { Directory.CreateDirectory(backupPath); } backupPath += "\\Backup-" + Guid.NewGuid().ToString() + ".tsu"; TCObject backupObject = (tcObject is TCProject project) ? project.ExportSubset(backupPath) : (tcObject as TCComponentFolder).ExportSubset(backupPath); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { DBScanWindow form = new DBScanWindow(); form.ShowDialog(); // If the user has not selected anyting if (form.XModule == null) return null; XModuleEntity xme = form.XModule; TCFolder folder = objectToExecuteOn as TCFolder; XModule xmodule = folder.CreateXModule(); xmodule.Name = xme.Name; XParam engine = xmodule.CreateConfigurationParam(); engine.Name = "Engine"; engine.Value = "Engine"; XParam set = xmodule.CreateConfigurationParam(); set.Name = "SpecialExecutionTask"; set.Value = "CompareDB"; XParam connString = xmodule.CreateConfigurationParam(); connString.Name = "ConnectionString"; connString.Value = xme.ConnectionString; XParam tableName = xmodule.CreateConfigurationParam(); tableName.Name = "TableName"; tableName.Value = xme.Name; XParam orderAttrib = xmodule.CreateConfigurationParam(); orderAttrib.Name = "OrderAttribute"; orderAttrib.Value = xme.OrderAttribute; foreach (string item in xme.Attributes) { XModuleAttribute xma = xmodule.CreateModuleAttribute(); xma.Name = item; xma.DefaultActionMode = XTestStepActionMode.Verify; XParam p1 = xma.CreateConfigurationParam(); p1.Name = "Parameter"; p1.Value = "True"; XParam p2 = xma.CreateConfigurationParam(); p2.Name = "ExplicitName"; p2.Value = "True"; } return null; }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { ExecutionEntry ee = objectToExecuteOn as ExecutionEntry; int bugid = 0; Int32.TryParse(ee.ActualLog.ChangeRequestId, out bugid); if (bugid > 0) { //var IE = new SHDocVw.InternetExplorer(); //object URL = DefectTrackerSettings.Default.TFSuri + DefectTrackerSettings.Default.TFSwebUri + bugid.ToString(); //IE.Visible = true; //IE.Navigate2(ref URL); Process.Start(DefectTrackerSettings.Default.TFSuri + DefectTrackerSettings.Default.TFSwebUri + bugid.ToString()); } return null; }
public override bool IsTaskPossible(TCObject obj) { try { if (obj is TCFolder) { TCFolder f = (TCFolder)obj; return(f.PossibleContent.Contains("Issue")); } return(false); } catch { return(base.IsTaskPossible(obj)); } }
public override bool IsTaskPossible(TCObject obj) { bool enabled = false; if (obj is ExecutionEntryFolder || obj is ExecutionList) { enabled = true; } else if (obj is TCFolder) { if ((obj as TCFolder).PossibleContent.Contains("Execution")) { enabled = true; } } return enabled; }
public override bool IsTaskPossible(TCObject obj) { TCFolder moduleFolder = obj as TCFolder; if (obj == null) { return(false); } if (moduleFolder.PossibleContent.Equals("Folder;Module") && ((TCFolder)obj).Search("=>SUBPARTS:XModule").Count > 0) { return(true); } return(false); }
public static TCVirtualFolder CreateVirtualFolder(TCObject obj, String virtualFolderName, String tql) { TCVirtualFolder vf = (TCVirtualFolder)obj.Search("->subparts:TCVirtualFolder[Name==\"" + virtualFolderName + "\"]").FirstOrDefault(); // Create virtual folder if required if (vf == null) { vf = (obj as TCFolder).CreateVirtualFolder(); } vf.Name = virtualFolderName; vf.Query = tql; vf.RefreshVirtualFolder(); return(vf); }
private void DoImport(TCObject objectToExecuteOn) { foreach (XModule wseModule in objectToExecuteOn.GetWseModules()) { try { IMigrator migrator = MigratorFactory.GetMigrator(wseModule); migrator.Migrate(objectToExecuteOn); } catch (Exception e) { FileLogger.Instance.Error( $"Migration of WSE Module 'migration for WSE Module :'{wseModule.DisplayedName}' failed due an error. This might leave the module in a inconsistent state.", e); } } CommonUtilities.ReplaceResourceWithLastResponseResource(objectToExecuteOn); }
/// <summary> /// Get Request/Response API Module on the basis of scanTag. /// </summary> /// <param name="objectToExecuteOn">TcObjects</param> /// <param name="wseArtifactsParser">Contains Transport information</param> /// <param name="wseTestStep">WSE TestSteps</param> /// <returns>Request/Response API Module</returns> public static (ApiModule, ApiModule) SearchExistingApiModule(TCObject objectToExecuteOn, IWseArtifactsParser wseArtifactsParser, XTestStep wseTestStep) { if (SpecializationHelper.IsUsingEmbeddedResource(wseTestStep, out TCFolder searchFolder)) { var requestModule = SearchRequestModule(searchFolder, wseArtifactsParser); var responseModule = SearchResponseModule(searchFolder, wseArtifactsParser); if (requestModule != null) { return(requestModule, responseModule); } } return(SearchRequestModule(objectToExecuteOn, wseArtifactsParser), SearchResponseModule(objectToExecuteOn, wseArtifactsParser)); }
public override bool IsTaskPossible(TCObject targetObject, TCObject sourceObject) { TCFolder moduleFolder = sourceObject as TCFolder; TCFolder testCaseFolder = targetObject as TCFolder; if (moduleFolder == null || testCaseFolder == null) { return(false); } if (moduleFolder.PossibleContent.Equals("Folder;Module") && testCaseFolder.PossibleContent.Equals("Folder;TestCase")) { return(true); } return(false); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { var currentFolder = objectToExecuteOn as TCComponentFolder; var newWindowThread = new Thread(() => { SynchronizationContext.SetSynchronizationContext( new DispatcherSynchronizationContext( Dispatcher.CurrentDispatcher)); var preferencesWindow = new MainWindow(); preferencesWindow.Closed += (s, e) => Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Background); preferencesWindow.Show(); Dispatcher.Run(); }); newWindowThread.SetApartmentState(ApartmentState.STA); newWindowThread.IsBackground = true; newWindowThread.Start(); newWindowThread.Join(); var operation = "TBoxClipboard"; var newTestCaseFolder = currentFolder.CreateTestCasesFolder(); var testCase = newTestCaseFolder.CreateTestCase(); testCase.Name = operation; var query = "->PROJECT->AllOwnedSubItems=>SUBPARTS: XModule[SetWizard ==\"" + operation + "\"]"; XModule xModule = objectToExecuteOn.Search(query)[0] as XModule; var currentTestStep = testCase.CreateXTestStepFromXModule(xModule).TestStepValues; switch (operation) { case "TBoxClipboard": new Clipboard().setupTestSteps(currentTestStep); break; } return(null); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { List <string> credentialUrls = CredentialManager.Instance.Credentials.Select(x => x.BaseURL).ToList(); string result = taskContext.GetStringSelection("Select the URL which you want to enter new credentials for:", credentialUrls); if (CredentialManager.Instance.Credentials.Any(x => x.BaseURL == result)) { string username = taskContext.GetStringValue("Username: "******"Password: ", true); CredentialManager.Instance.StoreOrUpdateCredential(new Credential { BaseURL = result, Username = username, Password = password }); } return(objectToExecuteOn); }
public static List<XModule> GetWseModules(this TCObject tcObject) { try { return string.IsNullOrEmpty(tcObject.NodePath) ? tcObject.Search( $"=>SUBPARTS:XModule[(Engine=i=\"Webservice\") AND (TestAction=i=\"CommunicateWithWebservice\")]") .Cast<XModule>().ToList() : TCAddOn.ActiveWorkspace.GetTCProject() .Search( $"=>UNION(=>SUBPARTS:TCObject[UniqueId==\"{tcObject.UniqueId}\"]=>SUBPARTS:XModule[(Engine=i=\"Webservice\") AND (TestAction=i=\"CommunicateWithWebservice\")],=>SUBPARTS:TCObject[UniqueId==\"{tcObject.UniqueId}\"]=>UNION( =>SUBPARTS:XTestStep,=>SUBPARTS:TestStepFolderReference=>ReusedItem=>SUBPARTS:XTestStep)->AllReferences:XModule[(Engine=i=\"Webservice\") AND (TestAction=i=\"CommunicateWithWebservice\")])") .Cast<XModule>().ToList(); } catch (Exception e) { FileLogger.Instance.Error("Failed to find WSE Modules", e); } return new List<XModule>(); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { IEnumerable <XModule> modules = ((TCFolder)objectToExecuteOn).Search("=>SUBPARTS:XModule").OfType <XModule>(); string engines = string.Empty; foreach (var item in modules) { var engineParam = item.XParams.Where(t => t.Name == "Engine").First(); if (!engines.Contains(engineParam.Value)) { engines += (engineParam.Value + Environment.NewLine); } } taskContext.ShowMessageBox("Used Engines", engines); return(objectToExecuteOn); }
private void AddExecutionList(TCObject tco) { ExecutionList el; if (tco is ExecutionList) { el = tco as ExecutionList; } else { return; } exList = new ExecutionListEntity(); exList.Naam = GetNodeName(tco); exList.NodePath = tco.NodePath; root.ExecutionList.Add(exList); }
public override bool IsTaskPossible(TCObject obj) { bool enabled = false; ExecutionEntry ee = obj as ExecutionEntry; // als er een executionentry is, dan is de optie toegestaan if (ee == null || ee.ActualLog == null) { return false; } // als het changeRequestId niet leeg is, dan is de optie toegestaan if (!String.IsNullOrEmpty(ee.ActualLog.ChangeRequestId)) { enabled = true; } return enabled; }
/// <summary> /// Gets Response Status Code from WSE TestStep /// </summary> /// <param name="xTestStep">WSE TestStep</param> /// <returns>Status code</returns> public string ParseResponseStatus(XTestStep xTestStep) { try { TCObject statusCodeModuleAttribute = xTestStep.Search(AddOnConstants.TestStepResponseStatusTql) .FirstOrDefault(); if (statusCodeModuleAttribute == null) { return(string.Empty); } XTestStepValue statusCodeXModuleAttribute = statusCodeModuleAttribute as XTestStepValue; return(statusCodeXModuleAttribute?.Value); } catch (Exception ex) { FileLogger.Instance.Error("Failed to retrieve response Status Code :", ex); } return(string.Empty); }
public override TCObject Execute(TCObject obj, List <TCObject> dropObjects, bool copy, TCAddOnTaskContext context) { TCFolder folder = (TCFolder)obj; TestCase testCase = folder.CreateTestCase(); testCase.Name = "Drop Task AddOn"; testCase.EnsureUniqueName(); foreach (var objDrop in dropObjects) { TCFolder moduleFolder = objDrop as TCFolder; if (moduleFolder == null) { continue; } List <TCObject> modules = moduleFolder.Search("=>SUBPARTS:XModule"); testCase.CreateXTestStepFromXModule(modules); } return(null); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { if (objectToExecuteOn is TCFolder) { AddExecutionEntries(objectToExecuteOn as TCFolder); } if (objectToExecuteOn is ExecutionEntryFolder) { AddExecutionEntries(objectToExecuteOn as ExecutionEntryFolder); } if (objectToExecuteOn is ExecutionList) { AddExecutionEntries(objectToExecuteOn as ExecutionList); } TFSConnector tfs = new TFSConnector(); List<Defect> TFSDefects = tfs.GetTFSDefectsWithToscaDefects(); foreach (ExecutionEntry ee in entries) { if (IsInteger(ee.ActualLog.ChangeRequestId)) { DefectResult dr = tfs.GetDefect(ee.ActualLog.ChangeRequestId); ee.ActualLog.ChangeRequestState = dr.status; } else { Defect defect = TFSDefects.Find(d => d.uniqueid == ee.UniqueId); if (defect != null) { ee.ActualLog.ChangeRequestState = defect.status; ee.ActualLog.ChangeRequestId = defect.id.ToString(); } } } tfs.DisposeTFS(); return null; }
/// <summary> /// Replace Resource with LastResponseResource in Existing TestSteps /// </summary> /// <param name="objectToExecuteOn">TCObject</param> public static void ReplaceResourceWithLastResponseResource(TCObject objectToExecuteOn) { try { var getResourceValueTuple = ResourceManagerHandler.GetResourceFromResourceId(ResourceManagerHandler.ResourceId); if (getResourceValueTuple.Item1 && getResourceValueTuple.Item2 != null) { foreach (var testCaseResource in getResourceValueTuple.Item2.TestCaseResources) { var testcases = objectToExecuteOn.Search( String.Format("=>SUBPARTS: TestCase[Name == \"{0}\"]", testCaseResource.TestCaseName)); foreach (var testcase in testcases) { foreach (var resourceName in testCaseResource.ResourceNameList) { var xTestStepValues = testcase.Search( String.Format( "=>INTERSECTION(=>UNION(=>SUBPARTS:XTestStepValue[Value==\"{0}\"], =>return SUBPARTS:XTestStepValue[Value==\"{{RES[{0}]}}\"]),=>return UNION(=>SUBPARTS:XTestStepValue[Value==\"{0}\"], =>return SUBPARTS:XTestStepValue[Value==\"{{RES[{0}]}}\"])->ModuleAttribute->Module:XModule[Engine != \"Webservice\"])", resourceName)); foreach (var xTestStepValue in xTestStepValues) { if (xTestStepValue is XTestStepValue) { var x = xTestStepValue as XTestStepValue; x.Value = x.Value.Replace(x.Value.ExtractStringFromResource(), "LastResponseResource"); } } } } } ResourceManagerHandler.DeleteResource(ResourceManagerHandler.ResourceId); } } catch (Exception ex) { FileLogger.Instance.Error("There is an issue in creating resource manager list.", ex); } }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { //var currentSetting=Config.ReadConfig(); var folder = objectToExecuteOn as TCFolder; var allHtmlDocuments = new Collection <Tuple <string, string> >(); var scrapper = new Scrapper(); var newWindowThread = new Thread(() => { SynchronizationContext.SetSynchronizationContext( new DispatcherSynchronizationContext( Dispatcher.CurrentDispatcher)); var preferencesWindow = new WpfApplication1.MainWindow(); preferencesWindow.Closed += (s, e) => Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Background); preferencesWindow.Show(); Dispatcher.Run(); }); newWindowThread.SetApartmentState(ApartmentState.STA); newWindowThread.IsBackground = true; newWindowThread.Start(); const int currentPercent = 0; taskContext.ShowProgressInfo(100, currentPercent + 5, "Enter Domain"); //var baseUrl = new Uri(taskContext.GetStringValue("Please enter a domain adress", false)); //var mainData = GetHtml(baseUrl); GetHtml(new Uri("http://www.toscatrial.com/sampleapp/VehicleData.html"), folder); taskContext.ShowProgressInfo(100, 100, "Finishing"); return(null); }
private void AddExecutionList(TCObject tco) { ExecutionList el; if (tco is ExecutionList) { el = tco as ExecutionList; } else { return; } exList = new ExecutionListEntity(); exList.Naam = GetNodeName(tco); exList.NodePath = tco.NodePath; root.ExecutionList.Add(exList); }
private void AddExecutionEntryFolder(TCObject tco) { ExecutionEntryFolder eef; if (tco is ExecutionEntryFolder) { eef = tco as ExecutionEntryFolder; } else { return; } exEntryFolder = new ExecutionEntryFolderEntity(); exEntryFolder.Naam = GetEntryFolderName(tco, exList.Naam); exEntryFolder.NodePath = tco.NodePath; if (eef.Items.OfType<ExecutionEntry>().Any()) exList.ExecutionEntryFolderList.Add(exEntryFolder); }
public override bool IsTaskPossible(TCObject obj) { return (obj.OwningObject.GetType() == typeof(TestSheet)); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { DefectResult dr = new DefectResult(); List<String> uidList = new List<String>(); List<String> files = new List<String>(); IEnumerable<DirectoryInfo> directories; ExecutionEntry ee = objectToExecuteOn as ExecutionEntry; // get images from failed tests var dirinfo = new DirectoryInfo(DefectTrackerSettings.Default.ToscaScreenshotFolder); if (dirinfo.Exists) { directories = dirinfo.GetDirectories().Where(d => d.LastWriteTime > DateTime.Now.AddDays(-1)); } else { directories = null; } foreach (var ts in ee.TestCase.Items) { if (ts is TestStep) { TestStep ts2 = ts as TestStep; foreach (TestStepValue tsv in ts2.TestStepValues) { if (directories != null) { var result = directories.Where(b => b.Name == "surrogate " + tsv.UniqueId.ToString() && b.CreationTime > DateTime.Now.AddDays(-1)).Select(a => (tsv.UniqueId.ToString())); foreach (string r in result) { uidList.Add("surrogate " + tsv.UniqueId.ToString()); } } } } } foreach (string dir in uidList) { files = Directory.GetFiles(DefectTrackerSettings.Default.ToscaScreenshotFolder + @"\" + dir).ToList(); } SetTFSProject(ee); Defect defect; if (files.Count != 0) { defect = SetDefect(ee, files); } else { defect = SetDefect(ee); } TFSConnector tfs = new TFSConnector(); dr = tfs.CreateBug(defect); if (dr.id != 0) { ee.ActualLog.ChangeRequestId = dr.id.ToString(); ee.ActualLog.ChangeRequestState = dr.status; // open browser to view work item/defect in TFS Process.Start(tfs.GetWorkItemUrl(dr.id).ToString()); } tfs.DisposeTFS(); return null; }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { List<TCObject> objs = new List<TCObject>(); objs.Add(objectToExecuteOn); return Execute(objs, taskContext); }
private string GetEntryFolderName(TCObject obj, String master) { return obj.NodePath.Substring(obj.NodePath.IndexOf(master) + master.Length ); }
public override bool IsTaskPossible(TCObject obj) { if (obj is TCFolder && obj.NodePath.StartsWith("/Modules")) return true; return false; }
private string GetNodeName(TCObject obj) { return rootFolder + obj.NodePath.Substring(obj.NodePath.IndexOf(rootFolder) + rootFolder.Length); }
public override TCObject Execute(TCObject objectToExecuteOn, TCAddOnTaskContext taskContext) { //klasse aanmaken om het resultaat van het defect in op te slaan DefectResult dr = new DefectResult(); List<String> uidList = new List<String>(); List<String> files = new List<String>(); IEnumerable<DirectoryInfo> directories; ExecutionEntry ee = objectToExecuteOn as ExecutionEntry; // plaatjes van foutieve testcases ophalen. //var dirinfo = new DirectoryInfo(@"C:\TOSCA_PROJECTS\ToscaCommander\Screenshots\failedTestSteps"); var dirinfo = new DirectoryInfo(DefectTrackerSettings.Default.ToscaScreenshotFolder); if (dirinfo.Exists) { directories = dirinfo.GetDirectories().Where(d => d.LastWriteTime > DateTime.Now.AddDays(-1)); } else { directories = null; } foreach (var ts in ee.TestCase.Items) { if (ts is TestStep) { TestStep ts2 = ts as TestStep; foreach (TestStepValue tsv in ts2.TestStepValues) { if (directories != null) { var result = directories.Where(b => b.Name == "surrogate " + tsv.UniqueId.ToString() && b.CreationTime > DateTime.Now.AddDays(-1)).Select(a => (tsv.UniqueId.ToString())); foreach (string r in result) { uidList.Add("surrogate " + tsv.UniqueId.ToString()); } } } } } foreach (string dir in uidList) { files = Directory.GetFiles(DefectTrackerSettings.Default.ToscaScreenshotFolder + @"\" + dir).ToList(); } SetTFSProject(ee); Defect defect; if (files.Count != 0) { defect = SetDefect(ee, files); } else { defect = SetDefect(ee); } TFSConnector tfs = new TFSConnector(); dr = tfs.CreateBug(defect); tfs.DisposeTFS(); if (dr.id != 0) { ee.ActualLog.ChangeRequestId = dr.id.ToString(); ee.ActualLog.ChangeRequestState = dr.status; } //// start IE om de bevinding in TFS te bekijken Process.Start(DefectTrackerSettings.Default.TFSuri + DefectTrackerSettings.Default.TFSwebUri + dr.id.ToString()); return null; }