public async Task Query() { // Verify that the query commands work. var endpoint = bucket.Configuration.GetEndPoint(); var bucketName = bucket.Configuration.BucketName; // Insert a couple documents into the database. var jack = new Person() { Id = 0, Name = "Jack", Age = 10, Data = new byte[] { 0, 1, 2, 3, 4 } }; var jill = new Person() { Id = 1, Name = "Jill", Age = 11, Data = new byte[] { 5, 6, 7, 8, 9 } }; await bucket.InsertSafeAsync(jack, persistTo : PersistTo.One); await bucket.InsertSafeAsync(jill, persistTo : PersistTo.One); await bucket.WaitForIndexerAsync(); bucket.Query <dynamic>($"select count(*) from `{bucket.Name}`;"); using (var runner = new ProgramRunner()) { // Query using the [http://...] target format and passing the query on the command line. var result = runner.Execute(Program.Main, "couchbase", "query", $"http://{endpoint.Address}:{endpoint.Port}@{username}:{password}:{bucketName}", $"select * from `{bucket.Name}`;"); Assert.Equal(0, result.ExitCode); Assert.Contains("Jack", result.OutputText); Assert.Contains("Jill", result.OutputText); // Query again, but using the using the [couchbase://...] target format. result = runner.Execute(Program.Main, "couchbase", "query", $"couchbase://{endpoint.Address}:{endpoint.Port}@{username}:{password}:{bucketName}", $"select * from `{bucket.Name}`;"); Assert.Equal(0, result.ExitCode); Assert.Contains("Jack", result.OutputText); Assert.Contains("Jill", result.OutputText); // Pass the query as a file. using (var tempFile = new TempFile()) { File.WriteAllText(tempFile.Path, $"select * from `{bucket.Name}`;"); result = runner.Execute(Program.Main, "couchbase", "query", $"couchbase://{endpoint.Address}:{endpoint.Port}@{username}:{password}:{bucketName}", $"@{tempFile.Path}"); Assert.Equal(0, result.ExitCode); Assert.Contains("Jack", result.OutputText); Assert.Contains("Jill", result.OutputText); } // Pass the query as STDIN. result = runner.ExecuteWithInput(Program.Main, $"select * from `{bucket.Name}`;", "couchbase", "query", $"couchbase://{endpoint.Address}:{endpoint.Port}@{username}:{password}:{bucketName}", "-"); Assert.Equal(0, result.ExitCode); Assert.Contains("Jack", result.OutputText); Assert.Contains("Jill", result.OutputText); } }