public void TestDatabaseCircular2FK()
        {
            var dd = new TestDatabaseCircular2FK();

            var a = dd.GetTable("A");
            var b = dd.GetTable("B");

            Assert.AreEqual(1, a.Properties.OfType <CircularFK>().Count());
            Assert.AreEqual(1, b.Properties.OfType <CircularFK>().Count());

            var aCFK = a.Properties.OfType <CircularFK>().First();
            var bCFK = b.Properties.OfType <CircularFK>().First();

            Assert.AreEqual("A", aCFK.SqlTable.SchemaAndTableName.TableName);
            Assert.AreEqual("B", bCFK.SqlTable.SchemaAndTableName.TableName);

            Assert.AreEqual(2, aCFK.ForeignKeyChain.Count);
            Assert.AreEqual(2, bCFK.ForeignKeyChain.Count);

            Assert.AreEqual("A", aCFK.ForeignKeyChain.First().SqlTable.SchemaAndTableName.TableName);
            Assert.AreEqual("B", aCFK.ForeignKeyChain.First().ReferredTable.SchemaAndTableName.TableName);

            Assert.AreEqual("B", aCFK.ForeignKeyChain.Last().SqlTable.SchemaAndTableName.TableName);
            Assert.AreEqual("A", aCFK.ForeignKeyChain.Last().ReferredTable.SchemaAndTableName.TableName);

            Assert.AreEqual("B", bCFK.ForeignKeyChain.First().SqlTable.SchemaAndTableName.TableName);
            Assert.AreEqual("A", bCFK.ForeignKeyChain.First().ReferredTable.SchemaAndTableName.TableName);

            Assert.AreEqual("A", bCFK.ForeignKeyChain.Last().SqlTable.SchemaAndTableName.TableName);
            Assert.AreEqual("B", bCFK.ForeignKeyChain.Last().ReferredTable.SchemaAndTableName.TableName);
        }
        public void TestDatabaseCircular2FK()
        {
            var tables = new TestDatabaseCircular2FK().GetTables();

            Assert.AreEqual(2, tables.Count);

            CheckFK(tables, "A", "BId");
            CheckFK(tables, "B", "AId");
        }