public void Write_Schema_Collections_To_Html_Files() { var sut = new SchemaCollectionsProvider(); var connectionString = ConfigurationManager.ConnectionStrings["CrmOrganisation"]; using (var conn = new CrmDbConnection(connectionString.ConnectionString)) { WriteDataTableToHtmlFile("MetaDataCollections", sut.GetMetadataCollections()); WriteDataTableToHtmlFile("Restrictions", sut.GetRestrictions()); WriteDataTableToHtmlFile("DataSourceInformation", sut.GetDataSourceInfo(conn)); //WriteDataTableToHtmlFile("DataTypes", connection); WriteDataTableToHtmlFile("ReservedWords", sut.GetReservedWords()); // WriteDataTableToHtmlFile("Databases", sut.getdata); // WriteDataTableToHtmlFile("Schemata", sut.GetSchema(conn, "Schemata", null)); WriteDataTableToHtmlFile("Tables", sut.GetTables(conn, null)); WriteDataTableToHtmlFile("Columns", sut.GetColumns(conn, null)); WriteDataTableToHtmlFile("Views", sut.GetViews(conn, null)); WriteDataTableToHtmlFile("Users", sut.GetUsers(conn, null)); WriteDataTableToHtmlFile("Indexes", sut.GetIndexes(conn, null)); WriteDataTableToHtmlFile("IndexColumns", sut.GetIndexColumns(conn, null)); // WriteDataTableToHtmlFile("Constraints", sut.get); // WriteDataTableToHtmlFile("PrimaryKey", sut.pr(); // WriteDataTableToHtmlFile("UniqueKeys", sut.Get); WriteDataTableToHtmlFile("ForeignKeys", sut.GetForeignKeys(conn, null)); WriteDataTableToHtmlFile("UniqueKeys", sut.GetUniqueKeys(conn, null)); // WriteDataTableToHtmlFile("ConstraintColumns", sut.get); } }
public void Should_Be_Able_To_Get_UniqeKeys_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[] { tableName }; // Act var collection = sut.GetUniqueKeys(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) { 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")); val = AssertColVal(collection, row, "constraint_name"); Assert.IsFalse(string.IsNullOrEmpty((string)val)); Console.WriteLine(val); 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.EqualTo(tableName)); val = AssertColVal(collection, row, "constraint_type"); Assert.That(val, Is.EqualTo("PRIMARY KEY")); val = AssertColVal(collection, row, "is_deferrable"); Assert.That(val, Is.EqualTo("NO")); val = AssertColVal(collection, row, "initially_deferred"); Assert.That(val, Is.EqualTo("NO")); } } }