private void ValidateSchemaBasedQueriesWork( Services.QueryBuilder queryBuilder, Func <string, string> catalogNameResolver, Func <string, string> schemaNameResolver) { var storageSchema = GetStorageSchema(); var databaseMap = GetDatabaseMap(); var schemaMap = GetSchemaMap(); var storageNodeText = TryGetStorageNodeText(UpgradeContext.NodeConfiguration.NodeId); var type = typeof(Part1.TestEntity1); var catalogName = catalogNameResolver(databaseMap[type]); var schemaName = schemaNameResolver(schemaMap[type]); var testEntity1 = storageSchema.Catalogs[catalogName].Schemas[schemaName].Tables["TestEntity1"]; var tableRef = SqlDml.TableRef(testEntity1); var select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); var text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); type = typeof(Part2.TestEntity2); catalogName = catalogNameResolver(databaseMap[type]); schemaName = schemaNameResolver(schemaMap[type]); var testEntity2 = storageSchema.Catalogs[catalogName].Schemas[schemaName].Tables["TestEntity2"]; tableRef = SqlDml.TableRef(testEntity2); select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); type = typeof(Part3.TestEntity3); catalogName = catalogNameResolver(databaseMap[type]); schemaName = schemaNameResolver(schemaMap[type]); var testEntity3 = storageSchema.Catalogs[catalogName].Schemas[schemaName].Tables["TestEntity3"]; tableRef = SqlDml.TableRef(testEntity3); select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); type = typeof(Part4.TestEntity4); catalogName = catalogNameResolver(databaseMap[type]); schemaName = schemaNameResolver(schemaMap[type]); var testEntity4 = storageSchema.Catalogs[catalogName].Schemas[schemaName].Tables["TestEntity4"]; tableRef = SqlDml.TableRef(testEntity4); select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); }
private object ExecuteScalar(Services.QueryBuilder queryBuilder, ISqlCompileUnit query) { var commandtext = queryBuilder.CompileQuery(query); var request = queryBuilder.CreateRequest(commandtext, Enumerable.Empty <Services.QueryParameterBinding>()); using var command = queryBuilder.CreateCommand(request); return(command.ExecuteScalar()); }
private void ValidateNodeBasedQueriesWork(Services.QueryBuilder queryBuilder, Session session) { var storageNodeText = TryGetStorageNodeText(UpgradeContext.NodeConfiguration.NodeId); var typeinfo = session.Domain.Model.Types[typeof(Part1.TestEntity1)]; var testEntity1 = session.StorageNode.Mapping[typeinfo]; var tableRef = SqlDml.TableRef(testEntity1); var select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); var text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); typeinfo = session.Domain.Model.Types[typeof(Part2.TestEntity2)]; var testEntity2 = session.StorageNode.Mapping[typeinfo]; tableRef = SqlDml.TableRef(testEntity2); select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); typeinfo = session.Domain.Model.Types[typeof(Part3.TestEntity3)]; var testEntity3 = session.StorageNode.Mapping[typeinfo]; tableRef = SqlDml.TableRef(testEntity3); select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); typeinfo = session.Domain.Model.Types[typeof(Part4.TestEntity4)]; var testEntity4 = session.StorageNode.Mapping[typeinfo]; tableRef = SqlDml.TableRef(testEntity4); select = SqlDml.Select(tableRef); select.Columns.Add(tableRef["Text"]); text = ExecuteScalar(queryBuilder, select); Assert.That(text, Is.EqualTo(storageNodeText)); }