private async Task InitAsync() { // Initialize a clean Couchbase bucket. cluster = new Cluster(); clusterManager = cluster.CreateManager(CouchbaseUID, CouchbasePWD); if (clusterManager.ListBuckets().Value.Count(b => b.Name == BucketName) > 0) { clusterManager.RemoveBucket(BucketName); } if (!clusterManager.CreateBucket(BucketName, 100).Success) { Assert.True(false, $"Could not create the [{BucketName}] Couchbase bucket."); } Bucket = cluster.OpenBucket(BucketName); // Crank up the sync gateway. syncGatewayProcess = Process.Start(SyncGatewayPath, $"-bucket \"{BucketName}\" -dbname \"{DatabaseName}\""); if (syncGatewayProcess.WaitForExit(2000)) { Assert.True(false, $"Could not start a Couchbase Sync Gateway. Verify that the service is not already running."); } // Initialize the sync gateway database. gateway = new Gateway( new GatewaySettings() { Host = "localhost" }); gatewayManager = gateway.CreateManager(); var databasesDeleted = false; foreach (var database in await gatewayManager.DatabaseListAsync()) { if (database == DatabaseName) { await gatewayManager.DatabaseRemoveAsync(database); databasesDeleted = true; } } if (databasesDeleted) { // Looks like the sync gateway needs some time to stablize // after deleting databases. await Task.Delay(TimeSpan.FromSeconds(5)); } await gatewayManager.DatabaseCreateAsync( new DatabaseConfiguration() { Name = DatabaseName, Bucket = BucketName, Server = "http://127.0.0.1:8091", Sync = "function (doc, oldDoc) { channel(doc.channels); }" }); }