예제 #1
0
        private static void TestValueInUniqueTable(IFeatureWorkspace ws)
        {
            ITable table1 =
                DatasetUtils.CreateTable(ws, "TestValueInUniqueTable1",
                                         FieldUtils.CreateOIDField(),
                                         FieldUtils.CreateField("RouteId",
                                                                esriFieldType
                                                                .esriFieldTypeInteger));

            ITable table2 =
                DatasetUtils.CreateTable(ws, "TestValueInUniqueTable2",
                                         FieldUtils.CreateOIDField(),
                                         FieldUtils.CreateField("OtherId",
                                                                esriFieldType
                                                                .esriFieldTypeInteger));

            // make sure the table is known by the workspace
            ((IWorkspaceEdit)ws).StartEditing(false);
            ((IWorkspaceEdit)ws).StopEditing(true);

            IRow row1 = table1.CreateRow();

            row1.set_Value(1, 3);
            row1.Store();

            for (int i = 0; i < 5; i++)
            {
                IRow r = table1.CreateRow();
                r.set_Value(1, 8);
                r.Store();
            }

            IRow row2 = table2.CreateRow();

            row2.set_Value(1, 3);
            row2.Store();

            const bool limitToTestedRows = false;
            var        test = new QaGroupConstraints(new[] { table1, table2 },
                                                     new[] { "RouteID", "OtherId" },
                                                     new[] { "'Haltung'", "'B'" },
                                                     1, limitToTestedRows);

            using (var runner = new QaTestRunner(test))
            {
                runner.Execute();
                Assert.AreEqual(1, runner.Errors.Count);
            }

            var containerRunner = new QaContainerTestRunner(100, test);

            containerRunner.Execute();
            Assert.AreEqual(1, containerRunner.Errors.Count);
        }
예제 #2
0
        protected override ITest CreateTestInstance(object[] args)
        {
            var test = new QaGroupConstraints((ITable)args[0],
                                              (string)args[1],
                                              (string)args[2],
                                              (int)args[3],
                                              (bool)args[4]);

            test.SetRelatedTables((IList <ITable>)args[5]);
            return(test);
        }
예제 #3
0
        private static void TestGroupContraints(IFeatureWorkspace ws)
        {
            ITable tbl =
                DatasetUtils.CreateTable(ws, "TestGroupContraints",
                                         FieldUtils.CreateOIDField(),
                                         FieldUtils.CreateTextField("Kostenstelle", 20));

            // make sure the table is known by the workspace
            ((IWorkspaceEdit)ws).StartEditing(false);
            ((IWorkspaceEdit)ws).StopEditing(true);

            IRow row1 = tbl.CreateRow();

            row1.set_Value(1, "123456-10");
            row1.Store();

            IRow row2 = tbl.CreateRow();

            row2.set_Value(1, "123456-11");
            row2.Store();

            IRow row3 = tbl.CreateRow();

            row3.set_Value(1, "123456-11");
            row3.Store();

            IRow row4 = tbl.CreateRow();

            row4.set_Value(1, "023456-10");
            row4.Store();

            const bool limitToTestedRows = false;
            var        test = new QaGroupConstraints(tbl,
                                                     "IIF(LEN(Kostenstelle) >=6, SUBSTRING(Kostenstelle, 1, 6), '')",
                                                     "SUBSTRING(Kostenstelle, 8, 9)",
                                                     1,
                                                     limitToTestedRows);

            using (var runner = new QaTestRunner(test))
            {
                runner.Execute();
                Assert.AreEqual(1, runner.Errors.Count);
            }

            var containerRunner = new QaContainerTestRunner(100, test);

            containerRunner.Execute();
            Assert.AreEqual(1, containerRunner.Errors.Count);
        }
예제 #4
0
        private static void TestRelGroupContraints(IFeatureWorkspace ws)
        {
            ITable tableData =
                DatasetUtils.CreateTable(ws, "TblData1",
                                         FieldUtils.CreateOIDField(),
                                         FieldUtils.CreateField("GroupField",
                                                                esriFieldType
                                                                .esriFieldTypeInteger));

            ITable tableRel = DatasetUtils.CreateTable(ws, "TblRel1",
                                                       FieldUtils.CreateOIDField(),
                                                       FieldUtils.CreateTextField(
                                                           "Kostenstelle", 20));

            IRelationshipClass rel = TestWorkspaceUtils.CreateSimple1NRelationship(
                ws, "rel", tableRel, tableData, "ObjectId", "GroupField");

            // make sure the table is known by the workspace
            ((IWorkspaceEdit)ws).StartEditing(false);
            ((IWorkspaceEdit)ws).StopEditing(true);

            for (int i = 0; i < 20; i++)
            {
                IRow row = tableData.CreateRow();
                row.set_Value(1, 1);
                row.Store();
            }

            for (int i = 0; i < 40; i++)
            {
                IRow row = tableData.CreateRow();
                row.set_Value(1, 2);
                row.Store();
            }

            for (int i = 0; i < 30; i++)
            {
                IRow row = tableData.CreateRow();
                row.set_Value(1, 3);
                row.Store();
            }

            IRow row1 = tableRel.CreateRow();

            row1.set_Value(1, "123456-10");
            row1.Store();

            IRow row2 = tableRel.CreateRow();

            row2.set_Value(1, "123456-11");
            row2.Store();

            IRow row3 = tableRel.CreateRow();

            row3.set_Value(1, "123456-12");
            row3.Store();

            const bool limitToTestedRows = false;
            ITable     relTab            = TableJoinUtils.CreateQueryTable(rel, JoinType.InnerJoin);

            var test = new QaGroupConstraints(relTab,
                                              "IIF(LEN(TblRel1.Kostenstelle) >=6, SUBSTRING(TblRel1.Kostenstelle, 1, 6), '')",
                                              "SUBSTRING(TblRel1.Kostenstelle, 8, 9)", 1,
                                              limitToTestedRows);

            test.SetRelatedTables(new[] { tableData, tableRel });
            using (var runner = new QaTestRunner(test))
            {
                runner.Execute();
                Assert.AreEqual(1, runner.Errors.Count);
            }

            var containerRunner = new QaContainerTestRunner(100, test);

            containerRunner.Execute();
            Assert.AreEqual(1, containerRunner.Errors.Count);
        }
예제 #5
0
        private static void TestGeomGroupConstraints(IFeatureWorkspace ws)
        {
            IFieldsEdit fields = new FieldsClass();

            fields.AddField(FieldUtils.CreateOIDField());
            fields.AddField(FieldUtils.CreateTextField("Kostenstelle", 20));
            fields.AddField(FieldUtils.CreateShapeField(
                                "Shape", esriGeometryType.esriGeometryPoint,
                                SpatialReferenceUtils.CreateSpatialReference
                                    ((int)esriSRProjCS2Type.esriSRProjCS_CH1903Plus_LV95,
                                    true), 1000, false, false));

            IFeatureClass fc =
                DatasetUtils.CreateSimpleFeatureClass(ws, "TestGeomGroupContraints",
                                                      fields,
                                                      null);

            // make sure the table is known by the workspace
            ((IWorkspaceEdit)ws).StartEditing(false);
            ((IWorkspaceEdit)ws).StopEditing(true);

            IFeature row1 = fc.CreateFeature();

            row1.set_Value(1, "123456-10");
            row1.Shape = GeometryFactory.CreatePoint(200, 100);
            row1.Store();

            IFeature row2 = fc.CreateFeature();

            row2.set_Value(1, "123456-11");
            row2.Shape = GeometryFactory.CreatePoint(200, 200);
            row2.Store();

            IFeature row3 = fc.CreateFeature();

            row3.set_Value(1, "123456-11");
            row3.Shape = GeometryFactory.CreatePoint(200, 300);
            row3.Store();

            IFeature row4 = fc.CreateFeature();

            row4.set_Value(1, "023456-10");
            row4.Shape = GeometryFactory.CreatePoint(200, 150);
            row4.Store();

            const bool limitToTestedRows = false;
            var        test = new QaGroupConstraints((ITable)fc,
                                                     "IIF(LEN(Kostenstelle) >=6, SUBSTRING(Kostenstelle, 1, 6), '')",
                                                     "SUBSTRING(Kostenstelle, 8, 9)", 1,
                                                     limitToTestedRows);

            {
                IEnvelope box = GeometryFactory.CreateEnvelope(150, 120, 250, 170);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(box);
                    Assert.AreEqual(0, runner.Errors.Count);
                }

                var containerRunner = new QaContainerTestRunner(100, test);
                containerRunner.Execute(box);
                Assert.AreEqual(0, containerRunner.Errors.Count);
            }
            {
                IEnvelope box = GeometryFactory.CreateEnvelope(150, 80, 250, 170);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(box);
                    Assert.AreEqual(1, runner.Errors.Count);
                }

                var containerRunner = new QaContainerTestRunner(100, test);
                containerRunner.Execute(box);
                Assert.AreEqual(1, containerRunner.Errors.Count);
            }
            {
                IEnvelope box = GeometryFactory.CreateEnvelope(150, 80, 250, 220);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(box);
                    Assert.AreEqual(1, runner.Errors.Count);
                }

                var containerRunner = new QaContainerTestRunner(100, test);
                containerRunner.Execute(box);
                Assert.AreEqual(1, containerRunner.Errors.Count);
            }

            {
                IRow row = fc.GetFeature(1);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(row);
                    Assert.AreEqual(1, runner.Errors.Count);
                }

                //var containerRunner = new QaContainerTestRunner(100, test);
                //containerRunner.Execute(row);
                //Assert.AreEqual(1, containerRunner.Errors.Count);
            }
            {
                IRow row = fc.GetFeature(4);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(row);
                    Assert.AreEqual(0, runner.Errors.Count);
                }

                //var containerRunner = new QaContainerTestRunner(100, test);
                //containerRunner.Execute(row);
                //Assert.AreEqual(1, containerRunner.Errors.Count);
            }

            {
                IQueryFilter filter = new QueryFilterClass {
                    WhereClause = "ObjectId < 3"
                };
                ISelectionSet set = fc.Select(
                    filter, esriSelectionType.esriSelectionTypeIDSet,
                    esriSelectionOption.esriSelectionOptionNormal, null);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(new EnumCursor(set, null, false));
                    Assert.AreEqual(1, runner.Errors.Count);
                }

                var containerRunner = new QaContainerTestRunner(100, test);
                containerRunner.Execute(new[] { set });
                Assert.AreEqual(1, containerRunner.Errors.Count);
            }

            {
                IQueryFilter filter = new QueryFilterClass {
                    WhereClause = "ObjectId > 3"
                };
                ISelectionSet set = fc.Select(
                    filter, esriSelectionType.esriSelectionTypeIDSet,
                    esriSelectionOption.esriSelectionOptionNormal, null);
                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(new EnumCursor(set, null, false));
                    Assert.AreEqual(0, runner.Errors.Count);
                }

                var containerRunner = new QaContainerTestRunner(100, test);
                containerRunner.Execute(new[] { set });
                Assert.AreEqual(0, containerRunner.Errors.Count);
            }
        }