Esempio n. 1
0
        public async Task InsertShouldCreateFile()
        {
            var resolver    = new Mock <IPluginResolver>();
            var uriResolver = new Mock <IUriResolver>();

            using (var target = new MemoryStream())
            {
                resolver.Setup(pr => pr.EnumerateAvailablePlugins()).Returns(new[] { new Plugin() });
                uriResolver.Setup(ur => ur.ResolveToStream("file.xlsx", UriResolveMode.Write)).Returns(Task.FromResult <Stream>(target));

                var context = new ConnectQlContext(resolver.Object)
                {
                    UriResolver = uriResolver.Object
                };

                var r = await context.ExecuteAsync("IMPORT PLUGIN 'Excel' INSERT INTO FILE('file.xlsx') SELECT * FROM SPLIT('file.xlsx', '.') f");

                Assert.Equal(1, r.QueryResults.Count);

                using (var ms = new MemoryStream(target.ToArray()))
                    using (var sheets = new ExcelPackage(ms).Workbook.Worksheets)
                    {
                        Assert.Equal(1, sheets.Count);
                        Assert.Equal("Item", sheets[1].Cells[1, 1].Value);
                        Assert.Equal("file", sheets[1].Cells[2, 1].Value);
                        Assert.Equal("xlsx", sheets[1].Cells[3, 1].Value);
                    }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// The asynchronous entry point.
 /// </summary>
 /// <param name="args">The command line arguments.</param>
 /// <returns>
 /// The task.
 /// </returns>
 public static async Task MainAsync(string[] args)
 {
     using (var context = new ConnectQlContext())
     {
         var result = await context.ExecuteFileAsync("Example.connectql");
     }
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ExecutionContextImplementation"/> class.
 /// </summary>
 /// <param name="parentContext">
 /// The parent context.
 /// </param>
 /// <param name="filename">
 /// The filename.
 /// </param>
 public ExecutionContextImplementation([NotNull] ConnectQlContext parentContext, string filename)
 {
     this.Filename      = filename;
     this.ParentContext = parentContext;
     this.Messages      = new MessageWriter(filename);
     this.fileFormats   = new FileFormatsImplementation();
     this.loggers       = new LoggerCollection(parentContext.Loggers);
 }
Esempio n. 4
0
        public async Task ExecuteAsyncShouldReturnJoinedSet([NotNull] string query, object[] resultValues)
        {
            var context = new ConnectQlContext();
            var result  = await context.ExecuteAsync(query);

            Assert.Equal(1, result.QueryResults.Count);

            var array = await result.QueryResults[0].Rows.Select(r => r["Item"]).ToArrayAsync();

            Assert.Equal(resultValues, array);
        }
Esempio n. 5
0
        public async Task ExecuteAsyncShouldReturnResult([NotNull] string query, int numResults, int firstResultSetCount, object firstResultValue)
        {
            var context = new ConnectQlContext();
            var result  = await context.ExecuteAsync(query);

            Assert.Equal(numResults, result.QueryResults.Count);
            Assert.Equal(firstResultSetCount, await result.QueryResults[0].Rows.CountAsync());

            var row = await result.QueryResults[0].Rows.FirstAsync();

            Assert.Equal(firstResultValue, row[row.ColumnNames[0]]);
        }
Esempio n. 6
0
        private ParsedDocument ParseContent(string content, [NotNull] SerializableDocumentDescriptor descriptorToUpdate)
        {
            using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(content)))
            {
                var tokens  = new List <Token>();
                var context = new ExecutionContextImplementation(this.session.Context, this.Filename);
                var root    = ConnectQlContext.Parse(stream, context.NodeData, context.Messages, true, tokens);

                descriptorToUpdate.Tokens = Classifier.Classify(tokens).Select(token => new SerializableToken(token)).ToArray();

                return(new ParsedDocument(context, root));
            }
        }
Esempio n. 7
0
        /// <summary>
        /// The asynchronous entry point.
        /// </summary>
        /// <param name="args">The command line arguments.</param>
        /// <returns>
        /// The task.
        /// </returns>
        public static async Task MainAsync(string[] args)
        {
            try
            {
                using (var context = new ConnectQlContext(new PluginResolver()))
                {
                    await context.ExecuteFileAsync("script3.connectql");
                }
            }
            catch
            {
            }

            /*
             *  var result = await context.ExecuteFileAsync("Example.connectql");
             * }*/
        }
Esempio n. 8
0
        public async Task SelectShouldReturnRecords(string query, int expectedRecordCount)
        {
            var resolver    = new Mock <IPluginResolver>();
            var uriResolver = new Mock <IUriResolver>();

            using (var target = new MemoryStream())
            {
                var package = new ExcelPackage();
                var sheet   = package.Workbook.Worksheets.Add("Data");

                sheet.Cells[1, 1].Value = "Id";
                sheet.Cells[2, 1].Value = "1";
                sheet.Cells[3, 1].Value = "2";
                sheet.Cells[4, 1].Value = "3";
                sheet.Cells[5, 1].Value = "4";

                sheet.Cells[1, 2].Value = "Value";
                sheet.Cells[2, 2].Value = "Test";
                sheet.Cells[3, 2].Value = "A";
                sheet.Cells[4, 2].Value = null;
                sheet.Cells[5, 2].Value = "4";

                package.SaveAs(target);

                target.Seek(0, SeekOrigin.Begin);

                resolver.Setup(pr => pr.EnumerateAvailablePlugins()).Returns(new[] { new Plugin() });
                uriResolver.Setup(ur => ur.ResolveToStream("file.xlsx", UriResolveMode.Read)).Returns(Task.FromResult <Stream>(target));

                var context = new ConnectQlContext(resolver.Object)
                {
                    UriResolver = uriResolver.Object
                };
                var executeResult = await context.ExecuteAsync($"IMPORT PLUGIN 'Excel' {query}");

                Assert.Equal(expectedRecordCount, await executeResult.QueryResults[0].Rows.CountAsync());
            }
        }
Esempio n. 9
0
 public static IIntellisenseSession CreateIntellisenseSession(this ConnectQlContext context)
 {
     return(new IntellisenseSession(context));
 }
Esempio n. 10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IntellisenseSession"/> class.
 /// </summary>
 /// <param name="context">
 /// The context to create the intellisense session for.
 /// </param>
 internal IntellisenseSession([NotNull] ConnectQlContext context)
 {
     this.Context = context;
 }