Exemple #1
0
        public void GetBusinessFlowDependacies()
        {
            //Arrange
            string filePath = TestResources.GetTestResourcesFile(@"Solutions" + Path.DirectorySeparatorChar + "GlobalCrossSolution" + Path.DirectorySeparatorChar + "BusinessFlows" + Path.DirectorySeparatorChar + "Flow 1.Ginger.BusinessFlow.xml");

            //Act
            GlobalSolutionItem item = new GlobalSolutionItem(GlobalSolution.eImportItemType.Environments, filePath, GlobalSolutionUtils.Instance.ConvertToRelativePath(filePath), true, GlobalSolutionUtils.Instance.GetRepositoryItemName(filePath), "");

            GlobalSolutionUtils.Instance.AddDependaciesForBusinessFlows(item, ref SelectedItemsListToImport, ref VariableListToImport, ref EnvAppListToImport);

            //Assert
            Assert.AreEqual(SelectedItemsListToImport.Count, 12);
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\Applications Models\\POM Models\\SeleniumDemoValid.Ginger.ApplicationPOMModel.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\SharedRepository\\Actions\\Browser Action.Ginger.Action.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\SharedRepository\\Actions\\UIElement Action.Ginger.Action.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\SharedRepository\\Activities\\Activity 2.Ginger.Activity.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\DataSources\\AccessDS.Ginger.DataSource.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\Documents\\bankCode3.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\Documents\\Multiple Values.xlsx"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\Environments\\Test.Ginger.Environment.xml"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "NewVarString"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "MyWebApp"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "MyWebServicesApp"));
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "MyWindowsApp"));

            Assert.AreEqual(VariableListToImport.Count, 2);
            Assert.IsNotNull(VariableListToImport.Where(x => x.Name == "NewVarString"));
            Assert.IsNotNull(VariableListToImport.Where(x => x.Name == "NewVarPasswordString"));
            string strValuetoPass = EncryptionHandler.DecryptwithKey(VariableListToImport.Where(x => x.Name == "NewVarPasswordString").FirstOrDefault().Value, EncryptionHandler.GetDefaultKey());

            Assert.AreEqual(strValuetoPass, "ABCD");

            Assert.AreEqual(EnvAppListToImport.Count, 1);
            Assert.IsNotNull(EnvAppListToImport.Where(x => x.Name == "MyWebApp"));
        }
Exemple #2
0
        public void GetEnvironmentDependacies()
        {
            //Arrange
            string filePath = TestResources.GetTestResourcesFile(@"Solutions" + Path.DirectorySeparatorChar + "GlobalCrossSolution" + Path.DirectorySeparatorChar + "Environments" + Path.DirectorySeparatorChar + "Test.Ginger.Environment.xml");

            //Act
            GlobalSolutionItem item = new GlobalSolutionItem(GlobalSolution.eImportItemType.Environments, filePath, GlobalSolutionUtils.Instance.ConvertToRelativePath(filePath), true, GlobalSolutionUtils.Instance.GetRepositoryItemName(filePath), "");

            GlobalSolutionUtils.Instance.AddDependaciesForEnvironment(item, ref SelectedItemsListToImport, ref VariableListToImport);

            //Assert
            Assert.AreEqual(SelectedItemsListToImport.Count, 2);
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\DataSources\\AccessDS.Ginger.DataSource.xml"));
            Assert.AreEqual(VariableListToImport.Count, 1);
            Assert.IsNotNull(VariableListToImport.Where(x => x.Name == "NewVarString"));
        }
Exemple #3
0
        public void GetPOMModelDependacies()
        {
            //Arrange
            string filePath = TestResources.GetTestResourcesFile(@"Solutions" + Path.DirectorySeparatorChar + "GlobalCrossSolution" + Path.DirectorySeparatorChar + "Applications Models" + Path.DirectorySeparatorChar + "POM Models" + Path.DirectorySeparatorChar + "Facebook" + Path.DirectorySeparatorChar + "Facebook.Ginger.ApplicationPOMModel.xml");

            //Act
            GlobalSolutionItem item = new GlobalSolutionItem(GlobalSolution.eImportItemType.Environments, filePath, GlobalSolutionUtils.Instance.ConvertToRelativePath(filePath), true, GlobalSolutionUtils.Instance.GetRepositoryItemName(filePath), "");

            GlobalSolutionUtils.Instance.AddDependaciesForPOMModel(item, ref SelectedItemsListToImport, ref VariableListToImport, ref EnvAppListToImport);

            //Assert
            Assert.AreEqual(SelectedItemsListToImport.Count, 1);
            Assert.AreEqual(VariableListToImport.Count, 1);
            Assert.IsNotNull(VariableListToImport.Where(x => x.Name == "NewVarString"));

            Assert.AreEqual(EnvAppListToImport.Count, 0);
        }
Exemple #4
0
        public void GetSharedActionDependacies()
        {
            //Arrange
            string filePath = TestResources.GetTestResourcesFile(@"Solutions" + Path.DirectorySeparatorChar + "GlobalCrossSolution" + Path.DirectorySeparatorChar + "SharedRepository" + Path.DirectorySeparatorChar + "Actions" + Path.DirectorySeparatorChar + "UIElement Action.Ginger.Action.xml");

            //Act
            GlobalSolutionItem item = new GlobalSolutionItem(GlobalSolution.eImportItemType.Environments, filePath, GlobalSolutionUtils.Instance.ConvertToRelativePath(filePath), true, GlobalSolutionUtils.Instance.GetRepositoryItemName(filePath), "");

            GlobalSolutionUtils.Instance.AddDependaciesForSharedAction(item, ref SelectedItemsListToImport, ref VariableListToImport, ref EnvAppListToImport);

            //Assert
            Assert.AreEqual(SelectedItemsListToImport.Count, 2);
            Assert.IsNotNull(SelectedItemsListToImport.Where(x => x.ItemExtraInfo == "~\\\\Applications Models\\POM Models\\SeleniumDemoValid.Ginger.ApplicationPOMModel.xml"));

            Assert.AreEqual(VariableListToImport.Count, 1);
            Assert.IsNotNull(VariableListToImport.Where(x => x.Name == "NewVarString"));

            Assert.AreEqual(EnvAppListToImport.Count, 0);
        }
        void AddRepositoryItem(GlobalSolutionItem itemToImport, RepositoryItemBase repoItemToImport, string targetFile)
        {
            //Get subdirectory path
            string path = Path.GetDirectoryName(targetFile);
            RepositoryFolderBase repoFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryFolderByPath(path);

            if (repoFolder != null)
            {
                repoFolder.AddRepositoryItem(repoItemToImport);
                return;
            }

            string folderPath = string.Empty;
            RepositoryFolderBase rootFolder = null;
            RepositoryFolderBase subFolder  = null;

            switch (itemToImport.ItemType)
            {
            case GlobalSolution.eImportItemType.Environments:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <ProjEnvironment>();
                break;

            case GlobalSolution.eImportItemType.DataSources:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <DataSourceBase>();
                break;

            case GlobalSolution.eImportItemType.BusinessFlows:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <BusinessFlow>();
                break;

            case GlobalSolution.eImportItemType.SharedRepositoryActivities:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <Activity>();
                break;

            case GlobalSolution.eImportItemType.SharedRepositoryActivitiesGroup:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <ActivitiesGroup>();
                break;

            case GlobalSolution.eImportItemType.SharedRepositoryActions:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <Act>();
                break;

            case GlobalSolution.eImportItemType.SharedRepositoryVariables:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <VariableBase>();
                break;

            case GlobalSolution.eImportItemType.APIModels:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <ApplicationAPIModel>();
                break;

            case GlobalSolution.eImportItemType.POMModels:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <ApplicationPOMModel>();
                break;

            case GlobalSolution.eImportItemType.Agents:
                rootFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <Agent>();
                break;

            default:
                break;
            }

            folderPath = path.Replace(rootFolder.FolderFullPath + "\\", "");
            subFolder  = rootFolder.AddSubFolder(folderPath);
            subFolder.FolderRelativePath = rootFolder.FolderRelativePath + "\\" + folderPath;
            subFolder.AddRepositoryItem(repoItemToImport);
        }
        void AddItemToSolution(string sourceFile, string targetFile, bool saveAsRepo, GlobalSolutionItem itemToImport)
        {
            if (itemToImport.ItemType == GlobalSolution.eImportItemType.Variables)
            {
                //Add Global Variables from the list
                if (VariableListToImport.Count > 0)
                {
                    foreach (VariableBase vb in VariableListToImport)
                    {
                        if (WorkSpace.Instance.Solution.Variables.Where(x => x.Name == vb.Name).FirstOrDefault() == null)
                        {
                            WorkSpace.Instance.Solution.AddVariable(vb);
                        }
                    }
                }
                return;
            }
            if (itemToImport.ItemType == GlobalSolution.eImportItemType.TargetApplication)
            {
                string[]            filePaths           = Directory.GetFiles(Path.Combine(SolutionFolder), "Ginger.Solution.xml", SearchOption.AllDirectories);
                Solution            solution            = (Solution)newRepositorySerializer.DeserializeFromFile(filePaths[0]);
                ApplicationPlatform applicationPlatform = solution.ApplicationPlatforms.Where(x => x.AppName == itemToImport.ItemName).FirstOrDefault();

                ApplicationPlatform appPlatform = WorkSpace.Instance.Solution.ApplicationPlatforms.Where(x => x.AppName == applicationPlatform.AppName && x.Platform == applicationPlatform.Platform).FirstOrDefault();
                if (appPlatform == null)
                {
                    WorkSpace.Instance.Solution.ApplicationPlatforms.Add(applicationPlatform);
                }
                return;
            }
            RepositoryItemBase repoItemToImport = null;

            if (itemToImport.ItemImportSetting == GlobalSolution.eImportSetting.Replace)
            {
                if (GlobalSolutionUtils.Instance.IsGingerRepositoryItem(sourceFile))
                {
                    RepositoryItemBase repositoryItem = newRepositorySerializer.DeserializeFromFile(sourceFile);
                    RepositoryItemBase repoItem       = GlobalSolutionUtils.Instance.GetRepositoryItemByGUID(itemToImport, repositoryItem);
                    if (repoItem != null)
                    {
                        WorkSpace.Instance.SolutionRepository.MoveSharedRepositoryItemToPrevVersion(repoItem);
                        if (itemToImport.ItemType == GlobalSolution.eImportItemType.DataSources)
                        {
                            DataSourceBase dataSource = (DataSourceBase)repoItem;
                            string         dsFile     = WorkSpace.Instance.Solution.SolutionOperations.ConvertSolutionRelativePath(dataSource.FilePath);
                            GlobalSolutionUtils.Instance.KeepBackupAndDeleteFile(dsFile);
                        }
                    }
                }
                else
                {
                    GlobalSolutionUtils.Instance.KeepBackupAndDeleteFile(targetFile);
                }
            }

            if (saveAsRepo)
            {
                repoItemToImport = newRepositorySerializer.DeserializeFromFile(sourceFile);
                repoItemToImport.ContainingFolder = Path.GetDirectoryName(targetFile);
                repoItemToImport.FilePath         = targetFile;
                if (!string.IsNullOrEmpty(itemToImport.ItemNewName))
                {
                    repoItemToImport.ItemName = itemToImport.ItemNewName;
                }
                if (itemToImport.ItemType == GlobalSolution.eImportItemType.DataSources)
                {
                    DataSourceBase dataSource = (DataSourceBase)repoItemToImport;
                    sourceFile = dataSource.FilePath.Replace("~", SolutionFolder);
                    string dsFile    = WorkSpace.Instance.Solution.SolutionOperations.ConvertSolutionRelativePath(dataSource.FilePath);
                    string directory = Path.GetDirectoryName(dsFile);
                    string ext       = Path.GetExtension(dsFile);
                    string fileName  = Path.GetFileName(dsFile);

                    string newFile = string.Empty;
                    if (!string.IsNullOrEmpty(itemToImport.ItemNewName))
                    {
                        newFile = Path.Combine(directory, itemToImport.ItemNewName + ext);
                    }
                    else
                    {
                        newFile = Path.Combine(directory, fileName);
                    }
                    dataSource.FilePath = WorkSpace.Instance.SolutionRepository.ConvertFullPathToBeRelative(newFile);
                    //
                    File.Copy(sourceFile, newFile);
                }
                //Create repository (sub) folder before adding
                AddRepositoryItem(itemToImport, repoItemToImport, targetFile);
            }
            else
            {
                if (!Directory.Exists(Path.GetDirectoryName(targetFile)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(targetFile));
                }
                File.Copy(sourceFile, targetFile);
            }
        }