Esempio n. 1
0
        private static async Task ExtractMetadataAsync(
            UpgradeServiceAccessor services, SqlExecutor executor, SqlWorkerResult result, SqlWorkerTask task,
            CancellationToken token)
        {
            var set               = new MetadataSet();
            var mapping           = new MetadataMapping(services.StorageDriver, services.NameBuilder);
            var metadataExtractor = new MetadataExtractor(mapping, executor);

            foreach (var metadataTask in services.MappingResolver.GetMetadataTasks()
                     .Where(metadataTask => !ShouldSkipMetadataExtraction(mapping, result, metadataTask)))
            {
                try {
                    if (task.HasFlag(SqlWorkerTask.ExtractMetadataAssemblies))
                    {
                        await metadataExtractor.ExtractAssembliesAsync(set, metadataTask, token).ConfigureAwait(false);
                    }

                    if (task.HasFlag(SqlWorkerTask.ExtractMetadataTypes))
                    {
                        await metadataExtractor.ExtractTypesAsync(set, metadataTask, token).ConfigureAwait(false);
                    }

                    if (task.HasFlag(SqlWorkerTask.ExtractMetadataExtension))
                    {
                        await metadataExtractor.ExtractExtensionsAsync(set, metadataTask, token).ConfigureAwait(false);
                    }
                }
                catch (Exception exception) {
                    UpgradeLog.Warning(
                        Strings.LogFailedToExtractMetadataFromXYZ, metadataTask.Catalog, metadataTask.Schema, exception);
                }
            }
            result.Metadata = set;
        }
Esempio n. 2
0
        private void ValidateSchema(SqlWorkerTask task, SqlWorkerResult result)
        {
            var error = string.Format(ErrorMessage, task);

            if (!task.HasFlag(SqlWorkerTask.ExtractSchema))
            {
                Assert.IsNull(result.Schema, error);
            }
            else
            {
                Assert.IsNotNull(result.Schema, error);
                Assert.IsNotEmpty(result.Schema.Catalogs, error);
            }
        }
Esempio n. 3
0
        private void ValidateWorkerResult(SqlWorkerTask task)
        {
            var result = SqlWorker.Create(accessor, task).Invoke();
            var error  = string.Format(ErrorMessage, task);

            ValidateSchema(task, result);
            if (task == SqlWorkerTask.DropSchema)
            {
                Assert.IsTrue(result.Schema == null, error);
                Assert.IsTrue(result.Metadata == null, error);
                return;
            }
            ValidateMetadata(task, result, task.HasFlag(SqlWorkerTask.DropSchema));
        }
        private async Task ValidateWorkerResultAsync(SqlWorkerTask task)
        {
            var result = await SqlAsyncWorker.Create(accessor, task, CancellationToken.None).Invoke();

            var error = string.Format(ErrorMessage, task);

            ValidateSchema(task, result);
            if (task == SqlWorkerTask.DropSchema)
            {
                Assert.IsTrue(result.Schema == null, error);
                Assert.IsTrue(result.Metadata == null, error);
            }
            else
            {
                ValidateMetadata(task, result, task.HasFlag(SqlWorkerTask.DropSchema));
            }
        }
Esempio n. 5
0
        private void ValidateMetadata(SqlWorkerTask task, SqlWorkerResult result, bool isSchemaDropped)
        {
            var error = string.Format(ErrorMessage, task);

            if (!IsMetdataMemberExtracted(task))
            {
                Assert.IsNull(result.Metadata);
            }
            else
            {
                Assert.That(result.Metadata.Types.Any(), Is.EqualTo(!isSchemaDropped && task.HasFlag(SqlWorkerTask.ExtractMetadataTypes)), error);
                Assert.That(result.Metadata.Assemblies.Any(), Is.EqualTo(!isSchemaDropped && task.HasFlag(SqlWorkerTask.ExtractMetadataAssemblies)), error);
                Assert.That(result.Metadata.Extensions.Any(), Is.EqualTo(!isSchemaDropped && task.HasFlag(SqlWorkerTask.ExtractMetadataExtension)), error);
            }
        }