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")); }
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")); }
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); }
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); } }