public void MongoCRUDTests() { using (var context = MockContext.Start(this.GetType())) { fixture.Location = "west us 2"; fixture.Init(context); string databaseAccountName = this.fixture.GetDatabaseAccountName(TestFixture.AccountType.Mongo36); var mongoClient = this.fixture.CosmosDBManagementClient.MongoDBResources; string databaseName = TestUtilities.GenerateName(prefix: "mongoDb"); string databaseName2 = TestUtilities.GenerateName(prefix: "mongoDb"); string collectionName = TestUtilities.GenerateName(prefix: "mongoCollection"); const string mongoDatabaseThroughputType = "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/throughputSettings"; const int sampleThroughput = 700; Dictionary <string, string> additionalProperties = new Dictionary <string, string> { { "foo", "bar" } }; Dictionary <string, string> tags = new Dictionary <string, string> { { "key3", "value3" }, { "key4", "value4" } }; MongoDBDatabaseCreateUpdateParameters mongoDBDatabaseCreateUpdateParameters = new MongoDBDatabaseCreateUpdateParameters { Resource = new MongoDBDatabaseResource { Id = databaseName }, Options = new CreateUpdateOptions() }; MongoDBDatabaseGetResults mongoDBDatabaseGetResults = mongoClient.CreateUpdateMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, mongoDBDatabaseCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.Equal(databaseName, mongoDBDatabaseGetResults.Name); Assert.NotNull(mongoDBDatabaseGetResults); MongoDBDatabaseGetResults mongoDBDatabaseGetResults1 = mongoClient.GetMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabaseGetResults1); Assert.Equal(databaseName, mongoDBDatabaseGetResults1.Name); VerifyEqualMongoDBDatabases(mongoDBDatabaseGetResults, mongoDBDatabaseGetResults1); MongoDBDatabaseCreateUpdateParameters mongoDBDatabaseCreateUpdateParameters2 = new MongoDBDatabaseCreateUpdateParameters { Resource = new MongoDBDatabaseResource { Id = databaseName2 }, Options = new CreateUpdateOptions { Throughput = sampleThroughput } }; MongoDBDatabaseGetResults mongoDBDatabaseGetResults2 = mongoClient.CreateUpdateMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName2, mongoDBDatabaseCreateUpdateParameters2).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabaseGetResults2); Assert.Equal(databaseName2, mongoDBDatabaseGetResults2.Name); IEnumerable <MongoDBDatabaseGetResults> mongoDBDatabases = mongoClient.ListMongoDBDatabasesWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabases); ThroughputSettingsGetResults throughputSettingsGetResults = mongoClient.GetMongoDBDatabaseThroughputWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName2).GetAwaiter().GetResult().Body; Assert.NotNull(throughputSettingsGetResults); Assert.NotNull(throughputSettingsGetResults.Name); Assert.Equal(throughputSettingsGetResults.Resource.Throughput, sampleThroughput); Assert.Equal(mongoDatabaseThroughputType, throughputSettingsGetResults.Type); Dictionary <string, string> dict = new Dictionary <string, string>(); dict.Add("partitionKey", PartitionKind.Hash.ToString()); MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = new MongoDBCollectionResource { Id = collectionName, ShardKey = dict }, Options = new CreateUpdateOptions() }; MongoDBCollectionGetResults mongoDBCollectionGetResults = mongoClient.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, collectionName, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollectionGetResults); VerfiyMongoCollectionCreation(mongoDBCollectionGetResults, mongoDBCollectionCreateUpdateParameters); IEnumerable <MongoDBCollectionGetResults> mongoDBCollections = mongoClient.ListMongoDBCollectionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollections); foreach (MongoDBCollectionGetResults mongoDBCollection in mongoDBCollections) { mongoClient.DeleteMongoDBCollectionWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, mongoDBCollection.Name); } foreach (MongoDBDatabaseGetResults mongoDBDatabase in mongoDBDatabases) { mongoClient.DeleteMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, mongoDBDatabase.Name); } } }
public void MongoPartitionRedistributionTests() { using (var context = MockContext.Start(this.GetType())) { fixture.Init(context); var mongoClient = this.fixture.CosmosDBManagementClient.MongoDBResources; this.fixture.ResourceGroupName = "cosmosTest"; var databaseAccountName = "adrutest3"; string databaseName = TestUtilities.GenerateName(prefix: "mongoDb"); string collectionName = TestUtilities.GenerateName(prefix: "mongoCollection"); MongoDBDatabaseCreateUpdateParameters mongoDBDatabaseCreateUpdateParameters = new MongoDBDatabaseCreateUpdateParameters { Resource = new MongoDBDatabaseResource { Id = databaseName }, Options = new CreateUpdateOptions() }; MongoDBDatabaseGetResults mongoDBDatabaseGetResults = mongoClient.CreateUpdateMongoDBDatabaseWithHttpMessagesAsync( this.fixture.ResourceGroupName, databaseAccountName, databaseName, mongoDBDatabaseCreateUpdateParameters ).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabaseGetResults); Assert.Equal(databaseName, mongoDBDatabaseGetResults.Name); Dictionary <string, string> dict = new Dictionary <string, string>(); dict.Add("partitionKey", PartitionKind.Hash.ToString()); MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = new MongoDBCollectionResource { Id = collectionName, ShardKey = dict }, Options = new CreateUpdateOptions() { Throughput = 15000 } }; MongoDBCollectionGetResults mongoDBCollectionGetResults = mongoClient.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, collectionName, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollectionGetResults); VerfiyMongoCollectionCreation(mongoDBCollectionGetResults, mongoDBCollectionCreateUpdateParameters); IEnumerable <MongoDBCollectionGetResults> mongoDBCollections = mongoClient.ListMongoDBCollectionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollections); RetrieveThroughputParameters retrieveThroughputParameters = new RetrieveThroughputParameters(); var retrieveThroughputPropertiesResource = new RetrieveThroughputPropertiesResource(); retrieveThroughputPropertiesResource.PhysicalPartitionIds = new List <PhysicalPartitionId>(); for (int j = 0; j < 3; j++) { PhysicalPartitionId physicalPartitionId = new PhysicalPartitionId() { Id = j.ToString() }; retrieveThroughputPropertiesResource.PhysicalPartitionIds.Add(physicalPartitionId); } retrieveThroughputParameters.Resource = retrieveThroughputPropertiesResource; PhysicalPartitionThroughputInfoResult physicalPartitionThroughputInfoResult = mongoClient.MongoDBContainerRetrieveThroughputDistribution( this.fixture.ResourceGroupName, databaseAccountName, databaseName, collectionName, retrieveThroughputParameters); Assert.Equal(3, physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo.Count); for (int j = 0; j < 3; j++) { if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "0") { Assert.Equal(5000, physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput); } else if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "1") { Assert.Equal(5000, physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput); } else if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "2") { Assert.Equal(5000, physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput); } else { Assert.True(false, "unexpected id"); } } RedistributeThroughputParameters redistributeThroughputParameters = new RedistributeThroughputParameters(); redistributeThroughputParameters.Resource = new RedistributeThroughputPropertiesResource(); redistributeThroughputParameters.Resource.ThroughputPolicy = ThroughputPolicyType.Custom; redistributeThroughputParameters.Resource.SourcePhysicalPartitionThroughputInfo = new List <PhysicalPartitionThroughputInfoResource>(); redistributeThroughputParameters.Resource.SourcePhysicalPartitionThroughputInfo.Add(new PhysicalPartitionThroughputInfoResource("0", 0)); redistributeThroughputParameters.Resource.TargetPhysicalPartitionThroughputInfo = new List <PhysicalPartitionThroughputInfoResource>(); redistributeThroughputParameters.Resource.TargetPhysicalPartitionThroughputInfo.Add(new PhysicalPartitionThroughputInfoResource("1", 7000)); physicalPartitionThroughputInfoResult = mongoClient.MongoDBContainerRedistributeThroughput( this.fixture.ResourceGroupName, databaseAccountName, databaseName, collectionName, redistributeThroughputParameters); Assert.Equal(2, physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo.Count); for (int j = 0; j < 2; j++) { if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "0") { Assert.Equal(3000, Math.Round((double)physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput)); } else if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "1") { Assert.Equal(7000, Math.Round((double)physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[0].Throughput)); } else { Assert.True(false, "unexpected id"); } } physicalPartitionThroughputInfoResult = mongoClient.MongoDBContainerRetrieveThroughputDistribution( this.fixture.ResourceGroupName, databaseAccountName, databaseName, collectionName, retrieveThroughputParameters); Assert.Equal(3, physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo.Count); for (int j = 0; j < 3; j++) { if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "0") { Assert.Equal(3000, Math.Round((double)physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput)); } else if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "1") { Assert.Equal(7000, Math.Round((double)physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput)); } else if (physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Id == "2") { Assert.Equal(5000, Math.Round((double)physicalPartitionThroughputInfoResult.Resource.PhysicalPartitionThroughputInfo[j].Throughput)); } else { Assert.True(false, "unexpected id"); } } mongoClient.DeleteMongoDBCollectionWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, collectionName).Wait(); mongoClient.DeleteMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName).Wait(); } }
public void MongoCRUDTests() { var handler1 = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType())) { // Create client CosmosDBManagementClient cosmosDBManagementClient = CosmosDBTestUtilities.GetCosmosDBClient(context, handler1); bool isDatabaseNameExists = cosmosDBManagementClient.DatabaseAccounts.CheckNameExistsWithHttpMessagesAsync(databaseAccountName).GetAwaiter().GetResult().Body; DatabaseAccountGetResults databaseAccount = null; if (!isDatabaseNameExists) { DatabaseAccountCreateUpdateParameters databaseAccountCreateUpdateParameters = new DatabaseAccountCreateUpdateParameters { Location = location, Kind = DatabaseAccountKind.MongoDB, Properties = new DefaultRequestDatabaseAccountCreateUpdateProperties { Locations = new List <Location> { { new Location(locationName: location) } } } }; databaseAccount = cosmosDBManagementClient.DatabaseAccounts.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseAccountCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.Equal(databaseAccount.Name, databaseAccountName); } MongoDBDatabaseCreateUpdateParameters mongoDBDatabaseCreateUpdateParameters = new MongoDBDatabaseCreateUpdateParameters { Resource = new MongoDBDatabaseResource { Id = databaseName }, Options = new CreateUpdateOptions() }; MongoDBDatabaseGetResults mongoDBDatabaseGetResults = cosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBDatabaseWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName, mongoDBDatabaseCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.Equal(databaseName, mongoDBDatabaseGetResults.Name); Assert.NotNull(mongoDBDatabaseGetResults); MongoDBDatabaseGetResults mongoDBDatabaseGetResults1 = cosmosDBManagementClient.MongoDBResources.GetMongoDBDatabaseWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabaseGetResults1); Assert.Equal(databaseName, mongoDBDatabaseGetResults1.Name); VerifyEqualMongoDBDatabases(mongoDBDatabaseGetResults, mongoDBDatabaseGetResults1); MongoDBDatabaseCreateUpdateParameters mongoDBDatabaseCreateUpdateParameters2 = new MongoDBDatabaseCreateUpdateParameters { Resource = new MongoDBDatabaseResource { Id = databaseName2 }, Options = new CreateUpdateOptions { Throughput = sampleThroughput } }; MongoDBDatabaseGetResults mongoDBDatabaseGetResults2 = cosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBDatabaseWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName2, mongoDBDatabaseCreateUpdateParameters2).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabaseGetResults2); Assert.Equal(databaseName2, mongoDBDatabaseGetResults2.Name); IEnumerable <MongoDBDatabaseGetResults> mongoDBDatabases = cosmosDBManagementClient.MongoDBResources.ListMongoDBDatabasesWithHttpMessagesAsync(resourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabases); ThroughputSettingsGetResults throughputSettingsGetResults = cosmosDBManagementClient.MongoDBResources.GetMongoDBDatabaseThroughputWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName2).GetAwaiter().GetResult().Body; Assert.NotNull(throughputSettingsGetResults); Assert.NotNull(throughputSettingsGetResults.Name); Assert.Equal(throughputSettingsGetResults.Resource.Throughput, sampleThroughput); Assert.Equal(mongoDatabaseThroughputType, throughputSettingsGetResults.Type); Dictionary <string, string> dict = new Dictionary <string, string>(); dict.Add("partitionKey", PartitionKind.Hash.ToString()); MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = new MongoDBCollectionResource { Id = collectionName, ShardKey = dict }, Options = new CreateUpdateOptions() }; MongoDBCollectionGetResults mongoDBCollectionGetResults = cosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName, collectionName, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollectionGetResults); VerfiyMongoCollectionCreation(mongoDBCollectionGetResults, mongoDBCollectionCreateUpdateParameters); IEnumerable <MongoDBCollectionGetResults> mongoDBCollections = cosmosDBManagementClient.MongoDBResources.ListMongoDBCollectionsWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollections); foreach (MongoDBCollectionGetResults mongoDBCollection in mongoDBCollections) { cosmosDBManagementClient.MongoDBResources.DeleteMongoDBCollectionWithHttpMessagesAsync(resourceGroupName, databaseAccountName, databaseName, mongoDBCollection.Name); } foreach (MongoDBDatabaseGetResults mongoDBDatabase in mongoDBDatabases) { cosmosDBManagementClient.MongoDBResources.DeleteMongoDBDatabaseWithHttpMessagesAsync(resourceGroupName, databaseAccountName, mongoDBDatabase.Name); } } }
public void MongoUsersAndRolesTests() { using (var context = MockContext.Start(this.GetType())) { fixture.Location = "west us 2"; fixture.Init(context); string databaseAccountName = this.fixture.GetDatabaseAccountName(TestFixture.AccountType.Mongo36); var mongoClient = this.fixture.CosmosDBManagementClient.MongoDBResources; string databaseName = TestUtilities.GenerateName(prefix: "mongoDb"); string databaseName2 = TestUtilities.GenerateName(prefix: "mongoDb"); string collectionName = TestUtilities.GenerateName(prefix: "mongoCollection"); string roleName1 = "role1"; string roleName2 = "role2"; string roleId1 = databaseName + "." + roleName1; string roleId2 = databaseName + "." + roleName2; string userName1 = "testuser1"; Dictionary <string, string> additionalProperties = new Dictionary <string, string> { { "foo", "bar" } }; Dictionary <string, string> tags = new Dictionary <string, string> { { "key3", "value3" }, { "key4", "value4" } }; MongoDBDatabaseCreateUpdateParameters mongoDBDatabaseCreateUpdateParameters = new MongoDBDatabaseCreateUpdateParameters { Resource = new MongoDBDatabaseResource { Id = databaseName }, Options = new CreateUpdateOptions(), Location = "west us 2" }; MongoDBDatabaseGetResults mongoDBDatabaseGetResults = mongoClient.CreateUpdateMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, mongoDBDatabaseCreateUpdateParameters).GetAwaiter().GetResult().Body; Assert.Equal(databaseName, mongoDBDatabaseGetResults.Name); Assert.NotNull(mongoDBDatabaseGetResults); MongoRoleDefinitionCreateUpdateParameters mongoRoleDefinitionCreateUpdateParameters1 = new MongoRoleDefinitionCreateUpdateParameters { RoleName = roleName1, DatabaseName = databaseName, Type = MongoRoleDefinitionType.CustomRole, Privileges = new List <Privilege> { new Privilege { Resource = new PrivilegeResource { Db = databaseName, Collection = "test" }, Actions = new List <string> { "insert" } } } }; // Create Role Definition MongoRoleDefinitionGetResults mongoRoleDefinitionGetResults = mongoClient.CreateUpdateMongoRoleDefinitionWithHttpMessagesAsync(roleId1, this.fixture.ResourceGroupName, databaseAccountName, mongoRoleDefinitionCreateUpdateParameters1).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionGetResults); Assert.Equal(roleName1, mongoRoleDefinitionGetResults.Name); VerifyCreateUpdateRoleDefinition(mongoRoleDefinitionCreateUpdateParameters1, mongoRoleDefinitionGetResults); // Get Role Definition MongoRoleDefinitionGetResults mongoRoleDefinitionGetResults2 = mongoClient.GetMongoRoleDefinitionWithHttpMessagesAsync(roleId1, this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionGetResults2); Assert.Equal(roleName1, mongoRoleDefinitionGetResults2.Name); VerifyEqualMongoRoleDefinitions(mongoRoleDefinitionGetResults, mongoRoleDefinitionGetResults2); // Create role definition using inherited role MongoRoleDefinitionCreateUpdateParameters mongoRoleDefinitionCreateUpdateParameters2 = new MongoRoleDefinitionCreateUpdateParameters { RoleName = roleName2, DatabaseName = databaseName, Type = MongoRoleDefinitionType.CustomRole, Privileges = new List <Privilege> { new Privilege { Resource = new PrivilegeResource { Db = databaseName, Collection = "test" }, Actions = new List <string> { "find" } } }, Roles = new List <Role> { new Role { Db = databaseName, RoleProperty = roleName1 } } }; MongoRoleDefinitionGetResults mongoRoleDefinitionGetResults3 = mongoClient.CreateUpdateMongoRoleDefinitionWithHttpMessagesAsync(roleId2, this.fixture.ResourceGroupName, databaseAccountName, mongoRoleDefinitionCreateUpdateParameters2).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionGetResults3); Assert.Equal(roleName2, mongoRoleDefinitionGetResults3.Name); VerifyCreateUpdateRoleDefinition(mongoRoleDefinitionCreateUpdateParameters2, mongoRoleDefinitionGetResults3); MongoRoleDefinitionGetResults mongoRoleDefinitionGetResults4 = mongoClient.GetMongoRoleDefinitionWithHttpMessagesAsync(roleId2, this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionGetResults4); Assert.Equal(roleName2, mongoRoleDefinitionGetResults4.Name); VerifyEqualMongoRoleDefinitions(mongoRoleDefinitionGetResults3, mongoRoleDefinitionGetResults4); // Update existing role definition mongoRoleDefinitionCreateUpdateParameters2.Privileges[0].Actions.Add("remove"); mongoRoleDefinitionGetResults3 = mongoClient.CreateUpdateMongoRoleDefinitionWithHttpMessagesAsync(roleId2, this.fixture.ResourceGroupName, databaseAccountName, mongoRoleDefinitionCreateUpdateParameters2).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionGetResults3); Assert.Equal(roleName2, mongoRoleDefinitionGetResults3.Name); VerifyCreateUpdateRoleDefinition(mongoRoleDefinitionCreateUpdateParameters2, mongoRoleDefinitionGetResults3); // List Role Definition IEnumerable <MongoRoleDefinitionGetResults> mongoRoleDefinitionList = mongoClient.ListMongoRoleDefinitionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionList); List <string> roleDefNames = new List <string>(); roleDefNames.Add(roleName1); roleDefNames.Add(roleName2); verifyRoleDefinitionListResponse(mongoRoleDefinitionList, roleDefNames); // User Definition MongoUserDefinitionCreateUpdateParameters mongoUserDefinitionCreateUpdateParameters1 = new MongoUserDefinitionCreateUpdateParameters { UserName = "******", Password = "******", DatabaseName = databaseName, CustomData = "test", Mechanisms = "SCRAM-SHA-256", Roles = new List <Role> { new Role { Db = databaseName, RoleProperty = roleName1 } } }; MongoUserDefinitionGetResults mongoUserDefinitionGetResults = mongoClient.CreateUpdateMongoUserDefinitionWithHttpMessagesAsync(databaseName + ".testuser1", this.fixture.ResourceGroupName, databaseAccountName, mongoUserDefinitionCreateUpdateParameters1).GetAwaiter().GetResult().Body; Assert.NotNull(mongoUserDefinitionGetResults); Assert.Equal("testuser1", mongoUserDefinitionGetResults.UserName); Assert.Equal(mongoUserDefinitionCreateUpdateParameters1.Roles.Count, mongoUserDefinitionGetResults.Roles.Count); Assert.Equal(roleName1, mongoUserDefinitionGetResults.Roles[0].RoleProperty); MongoUserDefinitionGetResults mongoUserDefinitionGetResults2 = mongoClient.GetMongoUserDefinitionWithHttpMessagesAsync(databaseName + ".testuser1", this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoUserDefinitionGetResults2); Assert.Equal("testuser1", mongoUserDefinitionGetResults2.UserName); Assert.Equal(mongoUserDefinitionGetResults2.Roles.Count, mongoUserDefinitionGetResults.Roles.Count); // Update existing user definition mongoUserDefinitionCreateUpdateParameters1.Roles[0].RoleProperty = roleName2; mongoUserDefinitionGetResults = mongoClient.CreateUpdateMongoUserDefinitionWithHttpMessagesAsync(databaseName + ".testuser1", this.fixture.ResourceGroupName, databaseAccountName, mongoUserDefinitionCreateUpdateParameters1).GetAwaiter().GetResult().Body; Assert.NotNull(mongoUserDefinitionGetResults); Assert.Equal("testuser1", mongoUserDefinitionGetResults.UserName); Assert.Equal(mongoUserDefinitionCreateUpdateParameters1.Roles.Count, mongoUserDefinitionGetResults.Roles.Count); Assert.Equal(roleName2, mongoUserDefinitionGetResults.Roles[0].RoleProperty); // List User Definition IEnumerable <MongoUserDefinitionGetResults> mongoUserDefinitionList = mongoClient.ListMongoUserDefinitionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoUserDefinitionList); List <string> userNames = new List <string>(); userNames.Add(userName1); verifyUserDefinitionListResponse(mongoUserDefinitionList, userNames); // Delete User Definition mongoClient.DeleteMongoUserDefinitionWithHttpMessagesAsync(databaseName + "." + userName1, this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult(); mongoUserDefinitionList = mongoClient.ListMongoUserDefinitionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoUserDefinitionList); Assert.True(mongoUserDefinitionList.Count() == 0); // Delete Role Definition mongoClient.DeleteMongoRoleDefinitionWithHttpMessagesAsync(roleId2, this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult(); mongoRoleDefinitionList = mongoClient.ListMongoRoleDefinitionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionList); Assert.True(mongoRoleDefinitionList.Count() == 1); mongoClient.DeleteMongoRoleDefinitionWithHttpMessagesAsync(roleId1, this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult(); mongoRoleDefinitionList = mongoClient.ListMongoRoleDefinitionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoRoleDefinitionList); Assert.True(mongoRoleDefinitionList.Count() == 0); IEnumerable <MongoDBDatabaseGetResults> mongoDBDatabases = mongoClient.ListMongoDBDatabasesWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBDatabases); IEnumerable <MongoDBCollectionGetResults> mongoDBCollections = mongoClient.ListMongoDBCollectionsWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName).GetAwaiter().GetResult().Body; Assert.NotNull(mongoDBCollections); foreach (MongoDBCollectionGetResults mongoDBCollection in mongoDBCollections) { mongoClient.DeleteMongoDBCollectionWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, databaseName, mongoDBCollection.Name); } foreach (MongoDBDatabaseGetResults mongoDBDatabase in mongoDBDatabases) { mongoClient.DeleteMongoDBDatabaseWithHttpMessagesAsync(this.fixture.ResourceGroupName, databaseAccountName, mongoDBDatabase.Name); } } }
/// <summary> /// Create or updates Azure Cosmos DB MongoDB database /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Name of an Azure resource group. /// </param> /// <param name='accountName'> /// Cosmos DB database account name. /// </param> /// <param name='databaseName'> /// Cosmos DB database name. /// </param> /// <param name='createUpdateMongoDBDatabaseParameters'> /// The parameters to provide for the current MongoDB database. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <MongoDBDatabaseGetResults> BeginCreateUpdateMongoDBDatabaseAsync(this IMongoDBResourcesOperations operations, string resourceGroupName, string accountName, string databaseName, MongoDBDatabaseCreateUpdateParameters createUpdateMongoDBDatabaseParameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginCreateUpdateMongoDBDatabaseWithHttpMessagesAsync(resourceGroupName, accountName, databaseName, createUpdateMongoDBDatabaseParameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Create or updates Azure Cosmos DB MongoDB database /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Name of an Azure resource group. /// </param> /// <param name='accountName'> /// Cosmos DB database account name. /// </param> /// <param name='databaseName'> /// Cosmos DB database name. /// </param> /// <param name='createUpdateMongoDBDatabaseParameters'> /// The parameters to provide for the current MongoDB database. /// </param> public static MongoDBDatabaseGetResults BeginCreateUpdateMongoDBDatabase(this IMongoDBResourcesOperations operations, string resourceGroupName, string accountName, string databaseName, MongoDBDatabaseCreateUpdateParameters createUpdateMongoDBDatabaseParameters) { return(operations.BeginCreateUpdateMongoDBDatabaseAsync(resourceGroupName, accountName, databaseName, createUpdateMongoDBDatabaseParameters).GetAwaiter().GetResult()); }