public async Task Test_GetAllScopes() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName1 = "test_scopex1", collectionName = "test_collection1", scopeName2 = "test_scopex2", scopeName3 = "test_scopex3", scopeName4 = "test_scopex4"; var scopeSpec1 = new ScopeSpec(scopeName1); var scopeSpec2 = new ScopeSpec(scopeName2); var scopeSpec3 = new ScopeSpec(scopeName3); var scopeSpec4 = new ScopeSpec(scopeName4); var collectionSpec = new CollectionSpec(scopeName1, collectionName); // create scope await collectionManager.CreateScopeAsync(scopeSpec1).ConfigureAwait(false); await collectionManager.CreateScopeAsync(scopeSpec2).ConfigureAwait(false); await collectionManager.CreateScopeAsync(scopeSpec3).ConfigureAwait(false); await collectionManager.CreateScopeAsync(scopeSpec4).ConfigureAwait(false); // get all scopes var getAllScopesResult = await collectionManager.GetAllScopesAsync().ConfigureAwait(false); Assert.NotNull(getAllScopesResult); }
public async Task Test_Collection_Exists() { var bucket = await _fixture.Cluster.BucketAsync("default"); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "my_scope", collectionName = "my_collection"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); try { // create scope //await collectionManager.CreateScopeAsync(scopeSpec); // create collection // await collectionManager.CreateCollectionAsync(collectionSpec); var collection = bucket.Scope(scopeName).Collection(collectionName); var result = await collection.UpsertAsync("key3", new { }); var result2 = await collection.UpsertAsync("key3", new { boo = "bee" }, new UpsertOptions().Expiry(TimeSpan.FromMilliseconds(100000))); } catch { // ??? } finally { // drop collection //await collectionManager.DropCollectionAsync(collectionSpec); //await collectionManager.DropScopeAsync(scopeName); } }
public async Task Test_SingleScopeMaxNumberOfCollections() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; string scopeName = "singlescope1"; var scopeSpec = new ScopeSpec(scopeName); try { await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); for (int i = 0; i < 1000; i++) { var collectionSpec = new CollectionSpec(scopeName, (1000 + i).ToString()); await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpec).ConfigureAwait(false); Assert.True(collectionExistsResult); } } finally { // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_CollectionExists() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "test_scope3", collectionName = "test_collection3"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); try { // create scope await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); // create collection await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); // collection exists var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpec).ConfigureAwait(false); Assert.True(collectionExistsResult); } finally { // drop collection await collectionManager.DropCollectionAsync(collectionSpec).ConfigureAwait(false); // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_CollectionManager_With_MinExpiry() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "test_scope", collectionName = "test_collection"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName) { MaxExpiry = TimeSpan.FromMinutes(10) }; try { // create scope await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); // scope exists var scopeExistsResult = await collectionManager.ScopeExistsAsync(scopeName).ConfigureAwait(false); Assert.True(scopeExistsResult); // get scope var getScopeResult = await collectionManager.GetScopeAsync(scopeName).ConfigureAwait(false); Assert.Equal(scopeName, getScopeResult.Name); // get all scopes var getAllScopesResult = await collectionManager.GetAllScopesAsync().ConfigureAwait(false); var scope = getAllScopesResult.SingleOrDefault(x => x.Name == scopeName); Assert.NotNull(scope); // create collection await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); // collection exists scope = await collectionManager.GetScopeAsync(scopeName).ConfigureAwait(false); Assert.Equal(TimeSpan.FromMinutes(10), scope.Collections.First(x => x.Name == collectionName).MaxExpiry); } finally { // drop collection await collectionManager.DropCollectionAsync(collectionSpec).ConfigureAwait(false); // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_CollectionExistsException() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "test_scope5", collectionName = "test_collection5"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); try { await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); // get scope var getScopeResult = await collectionManager.GetScopeAsync(scopeName).ConfigureAwait(false); Assert.Equal(scopeName, getScopeResult.Name); // create collection await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); // collection exists var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpec).ConfigureAwait(false); Assert.True(collectionExistsResult); // scope exists var scopeExistsResult = await collectionManager.ScopeExistsAsync(scopeName).ConfigureAwait(false); Assert.True(scopeExistsResult); await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); } catch (CollectionExistsException e) { Assert.Equal("Collection with name test_collection5 already exists in scope test_scope5", e.Message); } finally { // drop collection await collectionManager.DropCollectionAsync(collectionSpec).ConfigureAwait(false); // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_CollectionManager() { var bucket = await _fixture.Cluster.BucketAsync("default"); var collectionManager = bucket.Collections; const string scopeName = "test_scope", collectionName = "test_collection"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); try { // create scope await collectionManager.CreateScopeAsync(scopeSpec); // scope exists var scopeExistsResult = await collectionManager.ScopeExistsAsync(scopeName); Assert.True(scopeExistsResult); // get scope var getScopeResult = await collectionManager.GetScopeAsync(scopeName); Assert.Equal(scopeName, getScopeResult.Name); // get all scopes var getAllScopesResult = await collectionManager.GetAllScopesAsync(); var scope = getAllScopesResult.SingleOrDefault(x => x.Name == scopeName); Assert.NotNull(scope); // create collection await collectionManager.CreateCollectionAsync(collectionSpec); // collection exists var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpec); Assert.True(collectionExistsResult); } finally { // drop collection await collectionManager.DropCollectionAsync(collectionSpec); // drop scope await collectionManager.DropScopeAsync(scopeName); } }
public async System.Threading.Tasks.Task Test_Collections_QueryOps() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; string scopeName = "query_test_scope2"; string collectionName = "query_test_collection2"; string docId = "mydoc2"; var scopeSpec = new ScopeSpec(scopeName); try { await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); var collectionSpec = new CollectionSpec(scopeName, collectionName); await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpec).ConfigureAwait(false); Assert.True(collectionExistsResult); var collection = bucket.Scope(scopeName).Collection(collectionName); var task = await collection.InsertAsync(docId, new { }).ConfigureAwait(false); var options = new QueryOptions("select * from `" + collectionName + "` where meta().id=\"" + docId + "\"") { QueryContext = "namespace:bucket:scope:collection" }; var args = options.GetFormValues(); Assert.Equal("namespace:bucket:scope:collection", args["query_context"]); options = new QueryOptions("SELECT * FROM `$bucket` WHERE collectionName=$name"). Parameter("bucket", "default"). Parameter("collectionName", "query_test_collection2"); var values = options.GetFormValues(); Assert.Equal("default", values["$bucket"]); Assert.Equal("query_test_collection2", values["$name"]); } finally { // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_DropNonExistentCollection() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "test_scope6", collectionName = "test_collection6"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); var collectionSpecNone = new CollectionSpec("scope_only", "collection_null"); var scopeSpec1 = new ScopeSpec("scope_only"); try { await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); // get scope var getScopeResult = await collectionManager.GetScopeAsync(scopeName).ConfigureAwait(false); Assert.Equal(scopeName, getScopeResult.Name); // create collection await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); await collectionManager.CreateScopeAsync(scopeSpec1).ConfigureAwait(false); await collectionManager.DropCollectionAsync(collectionSpecNone).ConfigureAwait(false); } catch (CollectionNotFoundException e) { Assert.Equal("Collection with name collection_null not found in scope scope_only", e.Message); } finally { // drop collection await collectionManager.DropCollectionAsync(collectionSpec).ConfigureAwait(false); // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_ScopeNotFound() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "test_scope1", collectionName = "test_collection1"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); var collectionSpecInvalid = new CollectionSpec("noscope", "emptycollection"); try { await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); // get scope var getScopeResult = await collectionManager.GetScopeAsync(scopeName).ConfigureAwait(false); Assert.Equal(scopeName, getScopeResult.Name); // create collection await collectionManager.CreateCollectionAsync(collectionSpecInvalid).ConfigureAwait(false); var scopeExistsResult = await collectionManager.ScopeExistsAsync("noscope").ConfigureAwait(false); Assert.False(scopeExistsResult); // collection exists var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpecInvalid).ConfigureAwait(false); Assert.False(collectionExistsResult); } finally { // drop collection await collectionManager.DropCollectionAsync(collectionSpec).ConfigureAwait(false); // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
public async Task Test_Collections_DataverseCollectionQuery() { var cluster = await _fixture.GetCluster().ConfigureAwait(false); var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); string dataverseName = bucket.Name + "." + scopeName; var collectionManager = (CollectionManager)bucket.Collections; var scopeSpec = new ScopeSpec(scopeName); var analytics = cluster.AnalyticsIndexes; await analytics.CreateDataverseAsync(dataverseName); string statement = "CREATE ANALYTICS COLLECTION `" + dataverseName + "`.`" + collectionName + "` ON `" + bucket.Name + "`.`" + scopeName + "`.`" + collectionName + "`"; try { var analyticsResult = await cluster.AnalyticsQueryAsync <TestRequest>(statement).ConfigureAwait(false); var result = await analyticsResult.ToListAsync().ConfigureAwait(false); await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); var collectionSpec = new CollectionSpec(scopeName, collectionName); await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); var collectionExistsResult = await collectionManager.CollectionExistsAsync(collectionSpec).ConfigureAwait(false); Assert.True(collectionExistsResult); var scope = bucket.Scope(scopeName); statement = "SELECT * FROM `" + collectionName + "` where `" + collectionName + "`.foo= \"bar\""; analyticsResult = await cluster.AnalyticsQueryAsync <TestRequest>(statement).ConfigureAwait(false); result = await analyticsResult.ToListAsync().ConfigureAwait(false); Assert.True(result.Any()); } finally { // drop scope await collectionManager.DropScopeAsync(scopeName).ConfigureAwait(false); } }
private async Task CreateScopeIfNecessaryAsync(string scopeName) { try { var scopes = await _bucket.Collections.GetAllScopesAsync(); if (scopes.Any(s => s.Name == scopeName)) { return; } var spec = new ScopeSpec(scopeName); await _collManager.CreateScopeAsync(spec); //_bucket.Scope(scopeName); } catch (Exception) { _logger.LogInformation($"Problem creating or checking Scope `{scopeName}`..."); } _logger.LogInformation($"Done"); }
public async Task Test_RemoveOps() { var bucket = await _fixture.Cluster.BucketAsync("default").ConfigureAwait(false); var collectionManager = (CollectionManager)bucket.Collections; const string scopeName = "my_scope1", collectionName = "my_collection1"; var scopeSpec = new ScopeSpec(scopeName); var collectionSpec = new CollectionSpec(scopeName, collectionName); // create scope await collectionManager.CreateScopeAsync(scopeSpec).ConfigureAwait(false); // create collection await collectionManager.CreateCollectionAsync(collectionSpec).ConfigureAwait(false); var collection = bucket.Scope(scopeName).Collection(collectionName); var tasks = new List <Task>(); for (var i = 0; i < 20; i++) { await collection.RemoveAsync($"mykey-{i}").ConfigureAwait(false); } }
public virtual void Visit(ScopeSpec scopeSpec) { }