public void TestRestoreDeletedItemsFileWithOverwriteOrCopy()

in AdlsDotNetSDKUnitTest/SdkUnitTest.cs [2761:2817]


        public void TestRestoreDeletedItemsFileWithOverwriteOrCopy()
        {
            // Test copy
            string streamName = GetFileOrFolderName("file");
            SetupTrashFile(streamName, "file");

            string path = $"{UnitTestDir}/" + streamName;
            _adlsClient.CreateFile(path, IfExists.Overwrite);

            Thread.Sleep(3000);

            IEnumerable<TrashEntry> trashEntries = _adlsClient.EnumerateDeletedItems(streamName, null, 1, null);
            Assert.IsTrue(trashEntries.Count() == 1);
            Assert.IsTrue(trashEntries.ElementAt(0).Type == TrashEntryType.FILE);

            string restoreToken = trashEntries.ElementAt(0).TrashDirPath;
            string destPath = trashEntries.ElementAt(0).OriginalPath;

            try
            {
                _adlsClient.RestoreDeletedItems(restoreToken, destPath, "file");
                Assert.IsTrue(false);
            }
            catch (AdlsException ex)
            {
                Assert.IsTrue(ex.HttpStatus == HttpStatusCode.Conflict);
            }

            _adlsClient.RestoreDeletedItems(restoreToken, destPath, "file", "copy");
            
            // Test overwrite
            streamName = GetFileOrFolderName("file");
            SetupTrashFile(streamName, "file");

            path = $"{UnitTestDir}/" + streamName;
            _adlsClient.CreateFile(path, IfExists.Overwrite, "777");

            Thread.Sleep(3000);
            trashEntries = _adlsClient.EnumerateDeletedItems(streamName, null, 1, null);
            Assert.IsTrue(trashEntries.Count() == 1);
            Assert.IsTrue(trashEntries.ElementAt(0).Type == TrashEntryType.FILE);

            restoreToken = trashEntries.ElementAt(0).TrashDirPath;
            destPath = trashEntries.ElementAt(0).OriginalPath;

            try
            {
                _adlsClient.RestoreDeletedItems(restoreToken, destPath, "file");
                Assert.IsTrue(false);
            }
            catch (AdlsException ex)
            {
                Assert.IsTrue(ex.HttpStatus == HttpStatusCode.Conflict);
            }

            _adlsClient.RestoreDeletedItems(restoreToken, destPath, "file", "overwrite");
        }