public async Task MongoDBCollectionCreateAndUpdate() { var collection = await CreateMongoDBCollection(null); Assert.AreEqual(_collectionName, collection.Data.Resource.Id); // Seems bug in swagger definition //Assert.AreEqual(TestThroughput1, collection.Data.Options.Throughput); bool ifExists = await MongoDBCollectionCollection.ExistsAsync(_collectionName); Assert.True(ifExists); // NOT WORKING API //ThroughputSettingsData throughtput = await collection.GetMongoDBCollectionThroughputAsync(); MongoDBCollectionResource collection2 = await MongoDBCollectionCollection.GetAsync(_collectionName); Assert.AreEqual(_collectionName, collection2.Data.Resource.Id); //Assert.AreEqual(TestThroughput1, collection2.Data.Options.Throughput); VerifyMongoDBCollections(collection, collection2); var updateOptions = new MongoDBCollectionCreateOrUpdateContent(collection.Id, _collectionName, collection.Data.ResourceType, null, new Dictionary <string, string>(),// TODO: use original tags see defect: https://github.com/Azure/autorest.csharp/issues/1590 AzureLocation.WestUS, collection.Data.Resource, new CreateUpdateOptions { Throughput = TestThroughput2 }); collection = await(await MongoDBCollectionCollection.CreateOrUpdateAsync(WaitUntil.Started, _collectionName, updateOptions)).WaitForCompletionAsync(); Assert.AreEqual(_collectionName, collection.Data.Resource.Id); collection2 = await MongoDBCollectionCollection.GetAsync(_collectionName); VerifyMongoDBCollections(collection, collection2); }
private void VerifyMongoDBCollections(MongoDBCollectionResource expectedValue, MongoDBCollectionResource actualValue) { Assert.AreEqual(expectedValue.Data.Id, actualValue.Data.Id); Assert.AreEqual(expectedValue.Data.Name, actualValue.Data.Name); Assert.AreEqual(expectedValue.Data.Resource.Id, actualValue.Data.Resource.Id); Assert.AreEqual(expectedValue.Data.Resource.Rid, actualValue.Data.Resource.Rid); Assert.AreEqual(expectedValue.Data.Resource.Ts, actualValue.Data.Resource.Ts); Assert.AreEqual(expectedValue.Data.Resource.Etag, actualValue.Data.Resource.Etag); }
public async Task TearDown() { if (await MongoDBCollectionCollection.ExistsAsync(_collectionName)) { var id = MongoDBCollectionCollection.Id; id = MongoDBCollectionResource.CreateResourceIdentifier(id.SubscriptionId, id.ResourceGroupName, id.Parent.Name, id.Name, _collectionName); MongoDBCollectionResource collection = this.ArmClient.GetMongoDBCollectionResource(id); await collection.DeleteAsync(WaitUntil.Completed); } }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } MongoDBCollectionResource mongoDBCollectionResource = new MongoDBCollectionResource { Id = Name }; if (Shard != null) { mongoDBCollectionResource.ShardKey = new Dictionary <string, string> { { Shard, "Hash" } }; } if (Index != null) { List <MongoIndex> Indexes = new List <MongoIndex>(); foreach (PSMongoIndex psMongoIndex in Index) { Indexes.Add(PSMongoIndex.ConvertPSMongoIndexToMongoIndex(psMongoIndex)); } mongoDBCollectionResource.Indexes = Indexes; } CreateUpdateOptions options = new CreateUpdateOptions(); if (Throughput != null) { options.Throughput = Throughput.ToString(); } MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = mongoDBCollectionResource, Options = options }; if (ShouldProcess(Name, "Setting CosmosDB MongoDB Collection")) { MongoDBCollectionGetResults mongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSMongoDBCollectionGetResults(mongoDBCollectionGetResults)); } return; }
public async Task MongoDBCollectionListTest() { List <MongoDBCollectionResource> mongoDBCollections = await CosmosDBManagementClient.MongoDBResources.ListMongoDBCollectionsAsync(resourceGroupName, databaseAccountName, databaseName).ToEnumerableAsync(); Assert.IsNotNull(mongoDBCollections); Assert.AreEqual(1, mongoDBCollections.Count); MongoDBCollectionResource mongoDBCollection = await CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionAsync(resourceGroupName, databaseAccountName, databaseName, collectionName); Assert.IsNotNull(mongoDBCollection); VerifyMongoDBCollections(mongoDBCollection, mongoDBCollections[0]); }
public async Task MongoDBCollectionCreateAndUpdateTest() { MongoDBCollectionResource mongoDBCollection1 = await WaitForCompletionAsync( await CosmosDBManagementClient.MongoDBResources.StartCreateUpdateMongoDBCollectionAsync( resourceGroupName, databaseAccountName, databaseName, collectionName, new MongoDBCollectionCreateUpdateParameters( new MongoDBCollectionResource(collectionName), new CreateUpdateOptions(sampleThroughput1, new AutoscaleSettings())))); Assert.IsNotNull(mongoDBCollection1); Assert.AreEqual(collectionName, mongoDBCollection1.Resource.Id); ThroughputSettingsData throughputSettings1 = await CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionThroughputAsync(resourceGroupName, databaseAccountName, databaseName, collectionName); Assert.IsNotNull(throughputSettings1); Assert.AreEqual(sampleThroughput1, throughputSettings1.Resource.Throughput); Assert.AreEqual(mongoDBCollectionsThroughputType, throughputSettings1.Type); MongoDBCollectionResource mongoDBCollection = await CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionAsync(resourceGroupName, databaseAccountName, databaseName, collectionName); Assert.IsNotNull(mongoDBCollection); VerifyMongoDBCollections(mongoDBCollection1, mongoDBCollection); MongoDBCollectionResource mongoDBCollection2 = await WaitForCompletionAsync( await CosmosDBManagementClient.MongoDBResources.StartCreateUpdateMongoDBCollectionAsync( resourceGroupName, databaseAccountName, databaseName, collectionName, new MongoDBCollectionCreateUpdateParameters( new MongoDBCollectionResource(collectionName), new CreateUpdateOptions(sampleThroughput2, new AutoscaleSettings())))); Assert.IsNotNull(mongoDBCollection2); Assert.AreEqual(collectionName, mongoDBCollection2.Resource.Id); ThroughputSettingsData throughputSettings2 = await CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionThroughputAsync(resourceGroupName, databaseAccountName, databaseName, collectionName); Assert.IsNotNull(throughputSettings2); Assert.AreEqual(sampleThroughput2, throughputSettings2.Resource.Throughput); Assert.AreEqual(mongoDBCollectionsThroughputType, throughputSettings2.Type); mongoDBCollection = await CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionAsync(resourceGroupName, databaseAccountName, databaseName, collectionName); Assert.IsNotNull(mongoDBCollection); VerifyMongoDBCollections(mongoDBCollection2, mongoDBCollection); }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetMongoDBDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } MongoDBCollectionGetResults readMongoDBCollectionGetResults = null; try { readMongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.GetMongoDBCollection(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } MongoDBCollectionResource mongoDBCollectionResource = PopulateMongoDBResource(readMongoDBCollectionGetResults.Resource); if (Shard != null) { mongoDBCollectionResource.ShardKey = new Dictionary <string, string> { { Shard, "Hash" } }; } if (Index != null) { List <MongoIndex> Indexes = new List <MongoIndex>(); foreach (PSMongoIndex psMongoIndex in Index) { Indexes.Add(PSMongoIndex.ToSDKModel(psMongoIndex)); } mongoDBCollectionResource.Indexes = Indexes; } if (AnalyticalStorageTtl != null) { mongoDBCollectionResource.AnalyticalStorageTtl = AnalyticalStorageTtl; } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = mongoDBCollectionResource, Options = options }; if (ShouldProcess(Name, "Updating an existing CosmosDB MongoDB Collection")) { MongoDBCollectionGetResults mongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSMongoDBCollectionGetResults(mongoDBCollectionGetResults)); } return; }