コード例 #1
0
        private static void TestReferenced(IFeatureWorkspace ws)
        {
            IFieldsEdit fields1 = new FieldsClass();

            fields1.AddField(FieldUtils.CreateOIDField());
            fields1.AddField(FieldUtils.CreateSmallIntegerField("Pk"));

            ITable tbl1 = DatasetUtils.CreateTable(ws, "TestReferenced1", null, fields1);

            IFieldsEdit fields2 = new FieldsClass();

            fields2.AddField(FieldUtils.CreateOIDField());
            fields2.AddField(FieldUtils.CreateSmallIntegerField("Fk"));

            ITable tbl2 = DatasetUtils.CreateTable(ws, "TestReferenced2", null, fields2);

            IFieldsEdit fields3 = new FieldsClass();

            fields3.AddField(FieldUtils.CreateOIDField());
            fields3.AddField(FieldUtils.CreateIntegerField("Fk"));

            ITable tbl3 = DatasetUtils.CreateTable(ws, "TestReferenced3", null, fields3);

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

            CreateRow(tbl1, 1);
            CreateRow(tbl1, 2);
            CreateRow(tbl1, 3);
            CreateRow(tbl1, 4);
            CreateRow(tbl1, 5);

            CreateRow(tbl2, 1);
            CreateRow(tbl2, 3);
            CreateRow(tbl2, 5);

            CreateRow(tbl3, 2);
            CreateRow(tbl3, 4);

            var test = new QaUnreferencedRows(tbl1,
                                              new[] { tbl2, tbl3 },
                                              new[] { "pk,fk", "pk,fk" });

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

            var container = new QaContainerTestRunner(10000, test);

            container.Execute();
            Assert.AreEqual(0, container.Errors.Count);
        }