private async Task RestorableMongodbTestHelper( CosmosDBManagementClient cosmosDBManagementClient, string sourceAccountInstanceId, List <DatabaseRestoreResource> resources = null) { List <RestorableMongodbDatabaseGetResult> restorableMongodbDatabases = (await cosmosDBManagementClient.RestorableMongodbDatabases.ListAsync(location, sourceAccountInstanceId)).ToList(); Assert.Equal(resources.Count, restorableMongodbDatabases.Count()); DatabaseRestoreResource resource = resources.Single(x => x.DatabaseName == "database1"); RestorableMongodbDatabaseGetResult restorableMongodbDatabase = restorableMongodbDatabases.Single(db => db.Resource.OwnerId == resource.DatabaseName); string dbRid = restorableMongodbDatabase.Resource.OwnerResourceId; List <RestorableMongodbCollectionGetResult> restorableMongodbContainers = (await cosmosDBManagementClient.RestorableMongodbCollections.ListAsync(location, sourceAccountInstanceId, dbRid)).ToList(); Assert.Equal(resource.CollectionNames.Count, restorableMongodbContainers.Count()); List <DatabaseRestoreResource> restorableMongodbResources = (await cosmosDBManagementClient.RestorableMongodbResources.ListAsync(location, sourceAccountInstanceId, location, restoreTimestamp.ToString())).ToList(); ValidateDatabaseRestoreResource(resources, restorableMongodbResources); }
public async Task RestorableMongodb36Tests() { DatabaseRestoreResource databaseRestoreResource1 = new DatabaseRestoreResource() { DatabaseName = "database1", CollectionNames = new List <string>() { "collection1", "collection2", "collection3" } }; DatabaseRestoreResource databaseRestoreResource2 = new DatabaseRestoreResource() { DatabaseName = "databaseA", CollectionNames = new List <string>() }; List <DatabaseRestoreResource> resources = new List <DatabaseRestoreResource>() { databaseRestoreResource1, databaseRestoreResource2 }; var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType())) { // Create client CosmosDBManagementClient cosmosDBManagementClient = CosmosDBTestUtilities.GetCosmosDBClient(context, handler); await RestorableMongodbTestHelper(cosmosDBManagementClient, sourceDatabaseAccountInstanceId36, resources); } }
public PSDatabaseToRestore(DatabaseRestoreResource databaseRestoreResource) { DatabaseName = databaseRestoreResource.DatabaseName; if (databaseRestoreResource.CollectionNames != null && databaseRestoreResource.CollectionNames.Count > 0) { CollectionNames = new string[databaseRestoreResource.CollectionNames.Count]; databaseRestoreResource.CollectionNames.CopyTo(CollectionNames, 0); } }
private static void ValidateDatabaseRestoreResource( List <DatabaseRestoreResource> expectedResources, List <DatabaseRestoreResource> actualResources) { Assert.Equal(expectedResources.Count, actualResources.Count); foreach (var resource in expectedResources) { DatabaseRestoreResource actual = actualResources.Single(x => x.DatabaseName == resource.DatabaseName); Assert.False(resource.CollectionNames.Except(actual.CollectionNames).Any() && actual.CollectionNames.Except(resource.CollectionNames).Any()); } }
public DatabaseRestoreResource ToSDKModel() { DatabaseRestoreResource databaseRestoreResource = new DatabaseRestoreResource() { DatabaseName = DatabaseName }; if (CollectionNames != null) { List <string> collectionNames = new List <string>(); collectionNames.AddRange(CollectionNames); databaseRestoreResource.CollectionNames = collectionNames; } return(databaseRestoreResource); }
public async Task RestorableSqlTests() { var handler1 = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType())) { // Create client CosmosDBManagementClient cosmosDBManagementClient = CosmosDBTestUtilities.GetCosmosDBClient(context, handler1); ResourceManagementClient resourcesClient = CosmosDBTestUtilities.GetResourceManagementClient(context, handler1); DatabaseAccountGetResults databaseAccount = await cosmosDBManagementClient.DatabaseAccounts.GetAsync(resourceGroupName, sourceDatabaseAccountName); RestorableDatabaseAccountGetResult restorableDatabaseAccount = (await cosmosDBManagementClient.RestorableDatabaseAccounts.GetByLocationAsync(location, sourceDatabaseAccountInstanceId)); Assert.Equal(databaseAccount.InstanceId, restorableDatabaseAccount.Name); Assert.Equal(databaseAccount.Name, restorableDatabaseAccount.AccountName); Assert.Equal(ApiType.Sql, restorableDatabaseAccount.ApiType); Assert.Equal(3, restorableDatabaseAccount.RestorableLocations.Count); foreach (var location in restorableDatabaseAccount.RestorableLocations) { Assert.NotNull(location.CreationTime); // Assert.Null(location.DeletionTime); Assert.False(string.IsNullOrEmpty(location.LocationName)); Assert.False(string.IsNullOrEmpty(location.RegionalDatabaseAccountInstanceId)); } List <RestorableSqlDatabaseGetResult> restorableSqlDatabases = (await cosmosDBManagementClient.RestorableSqlDatabases.ListAsync(location, restorableDatabaseAccount.Name)).ToList(); RestorableSqlDatabaseGetResult restorableSqlDatabase = restorableSqlDatabases.First(); Assert.Equal(2, restorableSqlDatabases.Count()); string dbRid = restorableSqlDatabase.Resource.OwnerResourceId; List <RestorableSqlContainerGetResult> restorableSqlContainers = (await cosmosDBManagementClient.RestorableSqlContainers.ListAsync(location, restorableDatabaseAccount.Name, dbRid)).ToList(); Assert.Equal(2, restorableSqlContainers.Count()); List <DatabaseRestoreResource> restorableSqlResources = (await cosmosDBManagementClient.RestorableSqlResources.ListAsync(location, restorableDatabaseAccount.Name, location, restoreTimestamp.ToString())).ToList(); DatabaseRestoreResource databaseRestoreResource1 = new DatabaseRestoreResource() { DatabaseName = "database1", CollectionNames = new List <string>() { "container1", "container2" } }; DatabaseRestoreResource databaseRestoreResource2 = new DatabaseRestoreResource() { DatabaseName = "databaseA", CollectionNames = new List <string>() }; List <DatabaseRestoreResource> resources = new List <DatabaseRestoreResource>() { databaseRestoreResource1, databaseRestoreResource2 }; ValidateDatabaseRestoreResource(resources, restorableSqlResources); } }