Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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));
        }