public void Suspend()
        {
            var dir   = Get("Suspend");
            var args  = Preset.Extract.ToArguments().Concat(GetSource("SampleHeavy.7z"));
            var value = new ExtractSetting
            {
                SaveLocation  = SaveLocation.Preset,
                SaveDirectory = dir,
            };

            using (var vm = NewVM(args, value))
            {
                vm.Start();
                Assert.That(Wait.For(() => vm.State == TimerState.Run), $"1.{vm.State}");
                vm.SuspendOrResume();
                Assert.That(Wait.For(() => vm.State == TimerState.Suspend), $"2.{vm.State}");
                vm.SuspendOrResume();
                Assert.That(Wait.For(() => vm.State == TimerState.Run), $"3.{vm.State}");
                Task.Delay(1000).Wait();
            }

            var dest = Io.Combine(dir, "SampleHeavy");

            Assert.That(Io.Exists(dest), dest);
        }
Пример #2
0
        /* ----------------------------------------------------------------- */
        ///
        /// NewVM
        ///
        /// <summary>
        /// Creates a new instance of the ExtractViewModel class with
        /// the specified arguments.
        /// </summary>
        ///
        /// <param name="args">Program arguments.</param>
        /// <param name="settings">User settings for compression.</param>
        ///
        /// <returns>ExtractViewModel object.</returns>
        ///
        /* ----------------------------------------------------------------- */
        protected ExtractViewModel NewVM(IEnumerable <string> args, ExtractSetting settings)
        {
            var ss = NewSettings();

            ss.Value.Extract            = settings;
            ss.Value.Extract.OpenMethod = OpenMethod.None;

            return(new ExtractViewModel(new(args), ss, new()));
        }
        public void CancelPassword()
        {
            var dest  = Get("CancelPassword");
            var args  = Preset.Extract.ToArguments().Concat(GetSource("Password.7z"));
            var value = new ExtractSetting
            {
                SaveLocation  = SaveLocation.Preset,
                SaveDirectory = dest,
            };

            using var vm = NewVM(args, value);
            vm.Test();
        }
        public void CancelOverwrite()
        {
            var dummy = GetSource("Sample.txt");
            var size  = Io.Get(dummy).Length;
            var dest  = Get("CancelOverwrite");
            var args  = Preset.Extract.ToArguments().Concat(GetSource("Complex.1.0.0.zip"));
            var value = new ExtractSetting
            {
                SaveLocation  = SaveLocation.Preset,
                SaveDirectory = dest,
            };

            Io.Copy(dummy, Io.Combine(dest, "Foo.txt"), true);
            using var vm = NewVM(args, value);
            using (vm.SetOverwrite(OverwriteMethod.Cancel)) vm.Test();
            Assert.That(Io.Get(Io.Combine(dest, "Foo.txt")).Length, Is.EqualTo(size));
        }
        public void DeleteSource()
        {
            var src   = Get("Complex.zip");
            var dest  = Get("DeleteSource");
            var args  = Preset.Extract.ToArguments().Concat(src);
            var value = new ExtractSetting
            {
                SaveLocation  = SaveLocation.Preset,
                SaveDirectory = dest,
                DeleteSource  = true,
            };

            Io.Copy(GetSource("Complex.1.0.0.zip"), src, true);
            Assert.That(Io.Exists(src), Is.True);
            using var vm = NewVM(args, value);
            vm.Test();
            Assert.That(Io.Exists(src), Is.False);
            Assert.That(Io.Exists(Io.Combine(dest, "Complex")), Is.True);
        }
        public void Rename()
        {
            var dummy = GetSource("Sample.txt");
            var dest  = Get(@"Rename");
            var args  = Preset.Extract.ToArguments().Concat(GetSource("Complex.1.0.0.zip"));
            var value = new ExtractSetting
            {
                SaveLocation  = SaveLocation.Preset,
                SaveDirectory = dest,
            };

            Io.Copy(dummy, Io.Combine(dest, @"Complex.1.0.0\Foo.txt"), true);
            Io.Copy(dummy, Io.Combine(dest, @"Complex.1.0.0\Directory\Empty.txt"), true);

            using var vm = NewVM(args, value);
            using (vm.SetOverwrite(OverwriteMethod.Rename)) vm.Test();

            Assert.That(Io.Exists(Io.Combine(dest, @"Complex.1.0.0\Foo(1).txt")), Is.True);
            Assert.That(Io.Exists(Io.Combine(dest, @"Complex.1.0.0\Directory\Empty(1).txt")), Is.True);
        }
        public void Extract(string dest, IEnumerable <string> files, IEnumerable <string> args, ExtractSetting settings)
        {
            settings.SaveDirectory = Get("Preset");

            using var vm = NewVM(args.Concat(files.Select(e => GetSource(e))), settings);
            using (vm.SetPassword("password")) // if needed
                using (vm.SetDestination(Get("Runtime")))
                {
                    Assert.That(vm.State, Is.EqualTo(TimerState.Stop));
                    Assert.That(vm.Cancelable, Is.False);
                    Assert.That(vm.Suspended, Is.False);
                    Assert.That(vm.Count, Is.Not.Null.And.Not.Empty);
                    Assert.That(vm.Title, Does.StartWith("0%").And.EndsWith("CubeICE"));
                    Assert.That(vm.Text, Does.StartWith("ファイルを解凍する準備をしています"));
                    vm.Test();
                    GetType().LogDebug(vm.Elapsed, vm.Remaining, vm.Title);
                }

            Assert.That(Io.Exists(Get(dest)), Is.True, dest);
        }