Exemple #1
0
        public TestContainer()
        {
            _tests = new List <ITest>();

            _errorAdministrator = new QaErrorAdministrator();
            _geometryEngine     = new GeometryEngine();

            _allowEditing = false;
        }
Exemple #2
0
        public int Execute([NotNull] IList <ISelectionSet> selectionsList)
        {
            Assert.ArgumentNotNull(selectionsList, nameof(selectionsList));

            foreach (ITest test in _tests)
            {
                test.QaError += test_QaError;
            }

            try
            {
                _errorAdministrator = new QaErrorAdministrator();

                var errorCount = 0;

                foreach (ITest test in _tests)
                {
                    var editingTest      = test as IEditing;
                    var origAllowEditing = false;
                    if (editingTest != null)
                    {
                        origAllowEditing         = editingTest.AllowEditing;
                        editingTest.AllowEditing = _allowEditing;
                    }

                    try
                    {
                        foreach (ITable table in test.InvolvedTables)
                        {
                            foreach (ISelectionSet selectionSet in selectionsList)
                            {
                                if (selectionSet.Target != table)
                                {
                                    continue;
                                }

                                const bool recycle = false;
                                errorCount +=
                                    test.Execute(new EnumCursor(selectionSet, null, recycle));
                            }
                        }
                    }
                    finally
                    {
                        if (editingTest != null)
                        {
                            editingTest.AllowEditing = origAllowEditing;
                        }
                    }

                    _errorAdministrator.Clear();
                }

                return(errorCount);
            }
            finally
            {
                foreach (ITest test in _tests)
                {
                    test.QaError -= test_QaError;
                }
            }
        }