public void Should_Be_Able_To_Get_UniqeKeyColumns_For_A_Table(string tableName)
        {
            // Arrange
            var sut = new SchemaCollectionsProvider();

            var connectionString = ConfigurationManager.ConnectionStrings["CrmOrganisation"];
            using (var conn = new CrmDbConnection(connectionString.ConnectionString))
            {
                var restrictions = new string[] { null, null, tableName, null, null };
                // Act
                var collection = sut.GetUniqueKeyColumns(conn, restrictions);

                // Assert
                Assert.That(collection, Is.Not.Null);
                Assert.That(collection.Columns, Is.Not.Null);
                Assert.That(collection.Rows.Count, Is.EqualTo(1)); // In Dynamics crm, only the primary key is a unique key. You cannot add additional unique keys to an entity.

                foreach (DataRow row in collection.Rows)
                {

                    //         <IndexColumns>
                    //  <constraint_catalog>PortalDarrellDev</constraint_catalog>
                    //  <constraint_schema>dbo</constraint_schema>
                    //  <constraint_name>PK__tmp_ms_x__3214EC0737311087</constraint_name>
                    //  <table_catalog>PortalDarrellDev</table_catalog>
                    //  <table_schema>dbo</table_schema>
                    //  <table_name>Table</table_name>
                    //  <column_name>Id</column_name>
                    //  <ordinal_position>1</ordinal_position>
                    //  <KeyType>36</KeyType>
                    //  <index_name>PK__tmp_ms_x__3214EC0737311087</index_name>
                    //</IndexColumns>

                    var val = AssertColVal(collection, row, "constraint_catalog");
                    Assert.That(val, Is.EqualTo(conn.ConnectionInfo.OrganisationName));

                    val = AssertColVal(collection, row, "constraint_schema");
                    Assert.That(val, Is.EqualTo("dbo"));

                    var constraintName = AssertColVal(collection, row, "constraint_name");
                    Assert.IsFalse(string.IsNullOrEmpty((string)constraintName));
                    Assert.That((string)constraintName, Is.StringStarting("PK__"));

                    Console.WriteLine(constraintName);

                    val = AssertColVal(collection, row, "table_catalog");
                    Assert.That(val, Is.EqualTo(conn.ConnectionInfo.OrganisationName));

                    val = AssertColVal(collection, row, "table_schema");
                    Assert.That(val, Is.EqualTo("dbo"));

                    val = AssertColVal(collection, row, "table_name");
                    Assert.That(val, Is.Not.EqualTo(""));
                    Console.Write(" - ");
                    Console.Write(val);

                    val = AssertColVal(collection, row, "column_name");
                    Assert.That(val, Is.Not.EqualTo(""));

                    val = AssertColVal(collection, row, "ordinal_position");
                    Assert.That(val, Is.Not.EqualTo(default(int)));

                    //val = AssertColVal(collection, row, "KeyType");
                    //Assert.That(val, Is.EqualTo(36)); // unique identifier.

                    val = AssertColVal(collection, row, "index_name");
                    Assert.That(val, Is.EqualTo(constraintName));

                    val = AssertColVal(collection, row, "constraint_type");
                    Assert.That(val, Is.EqualTo("PRIMARY KEY"));

                }

            }
        }