GetAssemblyPaths() public static method

public static GetAssemblyPaths ( string assemblyPaths ) : string[]
assemblyPaths string
return string[]
Exemplo n.º 1
0
        private static void OnAssembliesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var model = (TestSuiteCreateOrEditModel)d;
            var normalizedAssemblies = new List <Assembly>();
            var suitPath             = model.SuitPath;

            foreach (var assemblyPath in Utils.GetAssemblyPaths((string)e.NewValue))
            {
                var fullAssemblyPath = Path.IsPathRooted(assemblyPath) ? assemblyPath : Path.Combine(suitPath, assemblyPath);
                var assembly         = Utils.LoadAssembly(fullAssemblyPath, model._settings.Config);
                normalizedAssemblies.Add(assembly);
            }
            model.NormalizedAssemblies = normalizedAssemblies.ToArray();
        }
Exemplo n.º 2
0
        private void UpdateSyntaxModules(string relativeAssemblyPaths, string testsLocationRootFullPath)
        {
            var syntaxModules = new List <SyntaxModuleVm>();

            try
            {
                foreach (var relativeAssemblyPath in Utils.GetAssemblyPaths(relativeAssemblyPaths))
                {
                    var path               = Path.Combine(testsLocationRootFullPath, relativeAssemblyPath);
                    var fullPath           = Path.GetFullPath(path);
                    var grammarDescriptors = Utils.LoadAssembly(fullPath, _settings.Config);
                    foreach (var grammarDescriptor in grammarDescriptors)
                    {
                        syntaxModules.Add(new SyntaxModuleVm(grammarDescriptor));
                    }
                }

                _assemblies.Foreground = Brushes.Black;
                _assemblies.ToolTip    = _assembiesToolTip;
            }
            catch (Exception ex)
            {
                syntaxModules.Clear();
                _assemblies.Foreground = Brushes.Red;
                _assemblies.ToolTip    = ex.GetType().Name + ":" + ex.Message + Environment.NewLine + _assembiesToolTip;
            }

            var prevItems = _syntaxModules.ItemsSource as ObservableCollection <SyntaxModuleVm>;
            var newItems  = new ObservableCollection <SyntaxModuleVm>(SortSyntaxModules(syntaxModules));

            if (prevItems != null && Enumerable.SequenceEqual(prevItems, newItems))
            {
                return;
            }

            _syntaxModules.ItemsSource = newItems;
            UpdateStartRules(true);
        }
Exemplo n.º 3
0
        private static void OnLibsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var model      = (TestSuiteCreateOrEditModel)d;
            var normalized = new HashSet <LibReference>();
            var suitPath   = model.SuitPath;

            foreach (var libPath in Utils.GetAssemblyPaths((string)e.NewValue))
            {
                var fullAssemblyPath = Path.GetFullPath(Path.IsPathRooted(libPath) ? libPath : Path.Combine(suitPath, libPath));

                if (File.Exists(fullAssemblyPath))
                {
                    var relativePath = Utils.MakeRelativePath(suitPath, true, fullAssemblyPath, false);
                    normalized.Add(new FileLibReference(relativePath));
                }
                else
                {
                    // treat as assembly full name
                    normalized.Add(new FullNameLibReference(libPath));
                }
            }
            model.NormalizedLibs = normalized.ToArray();
        }
Exemplo n.º 4
0
        private void MakeAllPathsRelative()
        {
            var assemblyPaths             = _assemblies.Text.Trim('\n', '\r', '\t', ' ');
            var result                    = new List <string>();
            var testsLocationRootFullPath = Path.GetFullPath(_rootFolder);

            foreach (var assemblyPath in Utils.GetAssemblyPaths(assemblyPaths))
            {
                var path                 = Path.Combine(testsLocationRootFullPath, assemblyPath.Trim());
                var fullPath             = Path.GetFullPath(path);
                var relativeAssemblyPath = Utils.MakeRelativePath(testsLocationRootFullPath, true, fullPath, false);
                if (!string.IsNullOrWhiteSpace(relativeAssemblyPath))
                {
                    result.Add(relativeAssemblyPath);
                }
            }

            var text = string.Join(Environment.NewLine, result);

            if (assemblyPaths != text)
            {
                _assemblies.Text = string.Join(Environment.NewLine, result);
            }
        }
Exemplo n.º 5
0
        private void _okButton_Click(object sender, RoutedEventArgs e)
        {
            var testSuitName = _testSuitName.Text;

            if (string.IsNullOrWhiteSpace(testSuitName))
            {
                MessageBox.Show(this, "Name of test suit can't be empty.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                _testSuitName.Focus();
                return;
            }

            var root = Path.GetFullPath(_rootFolder);
            var path = Path.Combine(root, testSuitName);

            if (Directory.Exists(path) && _create)
            {
                MessageBox.Show(this, "The test suit '" + testSuitName + "' already exists.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                _testSuitName.Focus();
                return;
            }

            if (Utils.IsInvalidDirName(testSuitName))
            {
                MessageBox.Show(this, "Name of test suit is invalid.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                _testSuitName.Focus();
                return;
            }

            MakeAllPathsRelative();

            var assemblyPaths = Utils.GetAssemblyPaths(_assemblies.Text);

            if (assemblyPaths.Length == 0)
            {
                MessageBox.Show(this, "No one valid library in library list.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                _assemblies.Focus();
                return;
            }

            var syntaxModules = GetSelectedGrammarDescriptor();

            if (syntaxModules.Length == 0)
            {
                MessageBox.Show(this, "No syntax module is selected.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                _syntaxModules.Focus();
                return;
            }

            var startRule = _startRuleComboBox.SelectedItem as RuleDescriptor;

            if (startRule == null)
            {
                MessageBox.Show(this, "No a start rule is selected.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                _syntaxModules.Focus();
                return;
            }

            try
            {
                if (_baseTestSuit.Name != testSuitName && Directory.Exists(_baseTestSuit.FullPath))
                {
                    Directory.CreateDirectory(path);
                    FileSystem.CopyDirectory(_baseTestSuit.FullPath, path, UIOption.AllDialogs);
                    Directory.Delete(_baseTestSuit.FullPath, recursive: true);
                }
                else
                {
                    Directory.CreateDirectory(path);
                }

                var xml        = Utils.MakeXml(root, syntaxModules, startRule);
                var configPath = Path.Combine(path, "config.xml");
                xml.Save(configPath);
                TestSuitName = testSuitName;
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.GetType().Name + ":" + ex.Message, "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            this.DialogResult = true;
            Close();
        }