/// <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);
                }
            }
        }
Пример #2
0
 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;
 }
Пример #3
0
        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;
        }
Пример #4
0
        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));
        }
Пример #6
0
        public override bool IsTaskPossible(TCObject obj)
        {
            OwnedItem oi     = (OwnedItem)obj;
            var       config = oi.GetJiraConfig();

            return(config != null);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
                }
            }
        }
Пример #10
0
        /// <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);
        }
Пример #12
0
        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;
        }
Пример #13
0
        /// <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);
        }
Пример #15
0
        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));
        }
Пример #18
0
        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);
        }
Пример #19
0
 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;
 }
Пример #20
0
 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);
        }
Пример #22
0
        /// <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);
        }
Пример #23
0
        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;
        }
Пример #24
0
        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;
        }
Пример #25
0
 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));
     }
 }
Пример #26
0
 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;
 }
Пример #27
0
        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);
        }
Пример #28
0
        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);
        }
Пример #29
0
        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);
        }
Пример #30
0
        /// <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);
        }
Пример #32
0
        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);
        }
Пример #33
0
        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);
        }
Пример #34
0
        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>();
        }
Пример #35
0
        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);
        }
Пример #36
0
        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);
        }
Пример #37
0
        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;
        }
Пример #38
0
        /// <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);
        }
Пример #40
0
        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;
        }
Пример #41
0
        /// <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);
            }
        }
Пример #42
0
        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));
 }
Пример #46
0
        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 );
 }
Пример #49
0
 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);
 }
Пример #51
0
        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;
        }