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);
        }
Ejemplo n.º 6
0
        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);
            }
        }