@@ -339,5 +339,75 @@ public void TestDatabaseGeoRecovery()
339339 } ) ;
340340 }
341341 }
342+
343+ [ Fact ]
344+ public void TestDatabaseRestorePoint ( )
345+ {
346+ using ( SqlManagementTestContext context = new SqlManagementTestContext ( this ) )
347+ {
348+ ResourceGroup resourceGroup = context . CreateResourceGroup ( ) ;
349+ Server server = context . CreateServer ( resourceGroup ) ;
350+ SqlManagementClient sqlClient = context . GetClient < SqlManagementClient > ( ) ;
351+ string restoreLabel = "restorePointLabel" ;
352+
353+ // Create database with only required parameters
354+ var db = sqlClient . Databases . CreateOrUpdate ( resourceGroup . Name , server . Name , SqlManagementTestUtilities . GenerateName ( ) ,
355+ new Database
356+ {
357+ Location = server . Location ,
358+ Edition = DatabaseEdition . DataWarehouse ,
359+ RequestedServiceObjectiveName = ServiceObjectiveName . DW100
360+ } ) ;
361+ Assert . NotNull ( db ) ;
362+
363+ CreateDatabaseRestorePointDefinition restoreDefinition = new CreateDatabaseRestorePointDefinition { RestorePointLabel = restoreLabel } ;
364+
365+ RestorePoint postResponse = sqlClient . RestorePoints . Create (
366+ resourceGroup . Name ,
367+ server . Name ,
368+ db . Name ,
369+ restoreDefinition ) ;
370+
371+ Assert . True ( postResponse . RestorePointType == RestorePointType . DISCRETE ) ;
372+ Assert . True ( postResponse . RestorePointLabel == restoreLabel ) ;
373+ Assert . True ( ! string . IsNullOrWhiteSpace ( postResponse . RestorePointCreationDate . ToString ( ) ) ) ;
374+
375+ IEnumerable < RestorePoint > listResponse =
376+ sqlClient . RestorePoints . ListByDatabase (
377+ resourceGroup . Name ,
378+ server . Name ,
379+ db . Name ) ;
380+
381+ IEnumerable < RestorePoint > restorePointList = listResponse . ToList < RestorePoint > ( ) ;
382+
383+ Assert . True ( restorePointList . Any ( ) ) ;
384+
385+ RestorePoint getResponse =
386+ sqlClient . RestorePoints . Get (
387+ resourceGroup . Name ,
388+ server . Name ,
389+ db . Name ,
390+ postResponse . Name ) ;
391+
392+ Assert . True ( getResponse . RestorePointType == RestorePointType . DISCRETE ) ;
393+ Assert . True ( ! string . IsNullOrWhiteSpace ( getResponse . RestorePointCreationDate . ToString ( ) ) ) ;
394+ Assert . True ( getResponse . Name == postResponse . Name ) ;
395+
396+ sqlClient . RestorePoints . Delete (
397+ resourceGroup . Name ,
398+ server . Name ,
399+ db . Name ,
400+ getResponse . Name ) ;
401+
402+ IEnumerable < RestorePoint > listResponseAfterDelete =
403+ sqlClient . RestorePoints . ListByDatabase (
404+ resourceGroup . Name ,
405+ server . Name ,
406+ db . Name ) ;
407+
408+ Assert . True ( ! listResponseAfterDelete . Any ( )
409+ || ! listResponseAfterDelete . Where ( x => x . Name == postResponse . Name ) . Any ( ) ) ;
410+ }
411+ }
342412 }
343413}
0 commit comments