public void Copy_ShouldCopyFolder_WithItsContent()
        {
            var imageFileBuilderMock     = new Mock <IImageFileBuilder>();
            var sourcePath               = TestFolder + "FB51D97B-5106-45EC-8EA6-A8ACE3EA7558\\";
            var destinationDirectoryPath = TestFolder + "E5C698D6-C470-412C-8F3E-703100AD2A79\\";
            var subFolder1               = "folder1\\";
            var subFolder2               = "folder2\\";
            var file1 = "testFile1.jpg";

            Directory.CreateDirectory(sourcePath);
            Directory.CreateDirectory(destinationDirectoryPath);
            Directory.CreateDirectory(sourcePath + subFolder1);
            Directory.CreateDirectory(sourcePath + subFolder2);

            var fileStream = File.Create(sourcePath + subFolder2 + file1);

            fileStream.Close();

            var service = new DirectoryService(imageFileBuilderMock.Object);

            service.Copy(sourcePath, destinationDirectoryPath);

            Assert.True(Directory.Exists(sourcePath + subFolder1) && Directory.Exists(destinationDirectoryPath + subFolder1) &&
                        File.Exists(sourcePath + subFolder2 + file1) && File.Exists(sourcePath + subFolder2 + file1));
        }
        public void Copy_ShouldThrowArgumentNullException_WhenDestinationDirectoryPathIsNull()
        {
            var    imageFileBuilderMock     = new Mock <IImageFileBuilder>();
            var    sourcePath               = TestFolder + "0972F3EA-7C52-43A0-8139-C9862D1F34EA";
            string destinationDirectoryPath = null;

            Directory.CreateDirectory(sourcePath);

            var service = new DirectoryService(imageFileBuilderMock.Object);

            Assert.Throws <ArgumentNullException>(() => service.Copy(sourcePath, destinationDirectoryPath));
        }
        public async Task Paste()
        {
            var    paths = Clipboard.GetFiles();
            string directoryPath;

            if (CommonViewModel.CurrentlyOpenedElement.FullName.EndsWith("\\"))
            {
                directoryPath = CommonViewModel.CurrentlyOpenedElement.FullName;
            }
            else
            {
                directoryPath = CommonViewModel.CurrentlyOpenedElement.FullName + "\\";
            }

            foreach (var t in paths)
            {
                if (DirectoryService.IsDirectory(t))
                {
                    var directoryName = DirectoryService.GetInfo(t).Name;

                    if (Clipboard.FilesState == ClipboardFilesState.Copied)
                    {
                        await Task.Run(() => DirectoryService.Copy(t, directoryPath + directoryName));
                    }
                    else if (Clipboard.FilesState == ClipboardFilesState.Cut)
                    {
                        await Task.Run(() => DirectoryService.Move(t, directoryPath + directoryName));
                    }
                }
                else
                {
                    var fileName = FileService.GetInfo(t).Name;

                    if (Clipboard.FilesState == ClipboardFilesState.Copied)
                    {
                        await Task.Run(() => FileService.Copy(t, directoryPath + fileName));
                    }
                    else if (Clipboard.FilesState == ClipboardFilesState.Cut)
                    {
                        await Task.Run(() => FileService.Move(t, directoryPath + fileName));
                    }
                }
            }

            Clipboard.Clear();

            await CommonViewModel.LoadCurrentlyShownElementsAsync();
        }