示例#1
0
        private static TempFolder CreateSetFolder(FilePickerVM vm)
        {
            var temp = new TempFolder();

            vm.TargetPath = temp.Dir;
            return(temp);
        }
示例#2
0
        private static async Task <TempFolder> CreateSetFolder(FilePickerVM vm)
        {
            var temp = await TempFolder.Create();

            vm.TargetPath = temp.Dir;
            return(temp);
        }
示例#3
0
        public static TempFile CreateSetFile(FilePickerVM vm)
        {
            var temp = new TempFile();

            using (new FileStream(temp.File.FullName, FileMode.CreateNew)) { }
            vm.TargetPath = temp.Path;
            return(temp);
        }
示例#4
0
        public static TempFolder CreateSetFolder(FilePickerVM vm)
        {
            var temp = new TempFolder();

            Directory.CreateDirectory(temp.Dir.FullName);
            vm.TargetPath = temp.Dir.FullName;
            return(temp);
        }
示例#5
0
        public async Task AdditionalError_Success()
        {
            var vm = new FilePickerVM();

            vm.AdditionalError = Observable.Return <IErrorResponse>(ErrorResponse.Succeed());
            await Task.Delay(250);

            Assert.True(vm.ErrorState.Succeeded);
            Assert.False(vm.InError);
            Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
        }
示例#6
0
        public async Task AdditionalError_Fail()
        {
            var    vm      = new FilePickerVM();
            string errText = "An error";

            vm.AdditionalError = Observable.Return <IErrorResponse>(ErrorResponse.Fail(errText));
            await Task.Delay(250);

            Assert.False(vm.ErrorState.Succeeded);
            Assert.True(vm.InError);
            Assert.Equal(errText, vm.ErrorTooltip);
        }
示例#7
0
        public async Task FolderIfNotEmptyCheck_DoesNotExist()
        {
            var vm = new FilePickerVM();

            vm.PathType         = FilePickerVM.PathTypeOptions.Folder;
            vm.ExistCheckOption = FilePickerVM.CheckOptions.IfPathNotEmpty;
            await Task.Delay(250);

            Assert.False(vm.Exists);
            Assert.True(vm.ErrorState.Succeeded, vm.ErrorState.Reason);
            Assert.False(vm.InError);
            Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
        }
示例#8
0
        public async Task Stock()
        {
            var vm = new FilePickerVM();

            Assert.Equal(FilePickerVM.PathTypeOptions.Off, vm.PathType);
            Assert.Equal(FilePickerVM.CheckOptions.Off, vm.ExistCheckOption);
            await Task.Delay(250);

            Assert.False(vm.Exists);
            Assert.True(vm.ErrorState.Succeeded);
            Assert.False(vm.InError);
            Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
        }
示例#9
0
        public async Task ExistCheckTypeOff_DoesNotExist()
        {
            var vm = new FilePickerVM();

            vm.PathType         = FilePickerVM.PathTypeOptions.Off;
            vm.ExistCheckOption = FilePickerVM.CheckOptions.On;
            await Task.Delay(250);

            Assert.False(vm.Exists);
            Assert.True(vm.ErrorState.Succeeded);
            Assert.False(vm.InError);
            Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
        }
示例#10
0
        public async Task FolderOnExistsCheck_DoesNotExist()
        {
            var vm = new FilePickerVM();

            vm.PathType         = FilePickerVM.PathTypeOptions.Folder;
            vm.ExistCheckOption = FilePickerVM.CheckOptions.On;
            await Task.Delay(250);

            Assert.False(vm.Exists);
            Assert.False(vm.ErrorState.Succeeded);
            Assert.True(vm.InError);
            Assert.Equal(FilePickerVM.PathDoesNotExistText, vm.ErrorTooltip);
        }
示例#11
0
        public async Task FileIfNotEmptyCheck_SetPath_DoesNotExist()
        {
            var vm = new FilePickerVM();

            vm.PathType         = FilePickerVM.PathTypeOptions.File;
            vm.TargetPath       = "SomePath.jpg";
            vm.ExistCheckOption = FilePickerVM.CheckOptions.IfPathNotEmpty;
            await Task.Delay(250);

            Assert.IsFalse(vm.Exists);
            Assert.IsFalse(vm.ErrorState.Succeeded);
            Assert.IsTrue(vm.InError);
            Assert.AreEqual(FilePickerVM.PathDoesNotExistText, vm.ErrorTooltip);
        }
示例#12
0
        public async Task FolderIfNotEmptyCheck_SetPath_DoesNotExist()
        {
            var vm = new FilePickerVM();

            vm.PathType         = FilePickerVM.PathTypeOptions.Folder;
            vm.TargetPath       = (AbsolutePath)"SomePath.jpg";
            vm.ExistCheckOption = FilePickerVM.CheckOptions.IfPathNotEmpty;
            await Task.Delay(250);

            Assert.False(vm.Exists);
            Assert.False(vm.ErrorState.Succeeded, vm.ErrorState.Reason);
            Assert.True(vm.InError);
            Assert.Equal(FilePickerVM.PathDoesNotExistText, vm.ErrorTooltip);
        }
示例#13
0
        public async Task FileWithFilters_PassesButDoesntExist()
        {
            var vm = new FilePickerVM();

            vm.PathType         = FilePickerVM.PathTypeOptions.File;
            vm.ExistCheckOption = FilePickerVM.CheckOptions.Off;
            vm.TargetPath       = (AbsolutePath)"SomePath.png";
            vm.Filters.Add(new Microsoft.WindowsAPICodePack.Dialogs.CommonFileDialogFilter("test", $"*.{vm.TargetPath.Extension}"));
            await Task.Delay(250);

            Assert.False(vm.Exists);
            Assert.True(vm.ErrorState.Succeeded, vm.ErrorState.Reason);
            Assert.False(vm.InError);
            Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
        }
示例#14
0
        public async Task FileWithFilters_IfNotEmptyCheck_DoesntExist()
        {
            var vm = new FilePickerVM();

            vm.PathType          = FilePickerVM.PathTypeOptions.File;
            vm.ExistCheckOption  = FilePickerVM.CheckOptions.Off;
            vm.FilterCheckOption = FilePickerVM.CheckOptions.IfPathNotEmpty;
            vm.Filters.Add(new Microsoft.WindowsAPICodePack.Dialogs.CommonFileDialogFilter("test", $"*.{Path.GetExtension(vm.TargetPath)}"));
            await Task.Delay(250);

            Assert.IsFalse(vm.Exists);
            Assert.IsTrue(vm.ErrorState.Succeeded);
            Assert.IsFalse(vm.InError);
            Assert.IsTrue(string.IsNullOrEmpty(vm.ErrorTooltip));
        }
示例#15
0
        public async Task FileNoExistsCheck_Exists()
        {
            var vm = new FilePickerVM();

            using (CreateSetFile(vm))
            {
                vm.PathType         = FilePickerVM.PathTypeOptions.File;
                vm.ExistCheckOption = FilePickerVM.CheckOptions.Off;
                await Task.Delay(250);

                Assert.False(vm.Exists);
                Assert.True(vm.ErrorState.Succeeded);
                Assert.False(vm.InError);
                Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
            }
        }
示例#16
0
        public async Task FolderExistsButSetToFile()
        {
            var vm = new FilePickerVM();

            await using (CreateSetFolder(vm))
            {
                vm.PathType         = FilePickerVM.PathTypeOptions.File;
                vm.ExistCheckOption = FilePickerVM.CheckOptions.On;
                await Task.Delay(250);

                Assert.False(vm.Exists);
                Assert.False(vm.ErrorState.Succeeded);
                Assert.True(vm.InError);
                Assert.Equal(FilePickerVM.PathDoesNotExistText, vm.ErrorTooltip);
            }
        }
示例#17
0
        public async Task FolderIfNotEmptyCheck_Exists()
        {
            var vm = new FilePickerVM();

            using (CreateSetFolder(vm))
            {
                vm.PathType         = FilePickerVM.PathTypeOptions.Folder;
                vm.ExistCheckOption = FilePickerVM.CheckOptions.IfPathNotEmpty;
                await Task.Delay(250);

                Assert.IsTrue(vm.Exists);
                Assert.IsTrue(vm.ErrorState.Succeeded);
                Assert.IsFalse(vm.InError);
                Assert.IsTrue(string.IsNullOrEmpty(vm.ErrorTooltip));
            }
        }
示例#18
0
        public async Task FileWithFilters_Passes()
        {
            var vm = new FilePickerVM();

            await using (var file = CreateSetFile(vm))
            {
                vm.PathType         = FilePickerVM.PathTypeOptions.File;
                vm.ExistCheckOption = FilePickerVM.CheckOptions.Off;
                vm.Filters.Add(new Microsoft.WindowsAPICodePack.Dialogs.CommonFileDialogFilter("test", $"*{vm.TargetPath.Extension}"));
                await Task.Delay(250);

                Assert.False(vm.Exists);
                Assert.True(vm.ErrorState.Succeeded);
                Assert.False(vm.InError);
                Assert.True(string.IsNullOrEmpty(vm.ErrorTooltip));
            }
        }
示例#19
0
        public async Task FileWithFilters_ExistsButFails()
        {
            var vm = new FilePickerVM();

            using (CreateSetFile(vm))
            {
                vm.PathType         = FilePickerVM.PathTypeOptions.File;
                vm.ExistCheckOption = FilePickerVM.CheckOptions.Off;
                vm.Filters.Add(new Microsoft.WindowsAPICodePack.Dialogs.CommonFileDialogFilter("test", $"*.{vm.TargetPath.Extension}z"));
                await Task.Delay(250);

                Assert.False(vm.Exists);
                Assert.False(vm.ErrorState.Succeeded);
                Assert.True(vm.InError);
                Assert.Equal(FilePickerVM.DoesNotPassFiltersText, vm.ErrorTooltip);
            }
        }
示例#20
0
 public MainWindowVM(ConfigLoaderVM configLoaderVM,
                     FilePickerVM filePickerVM)
 {
     ConfigLoader = configLoaderVM;
     FilePicker   = filePickerVM;
 }