2 using System.Threading;
5 using NaGet.SubCommands.SubTask;
7 namespace test_na_get_lib
10 public class FunctionalSubTaskTest
13 public void UseProgress()
15 FunctionalSubTask subtask = new FunctionalSubTask(null, null);
16 Assert.IsFalse(subtask.UseProgress);
20 public void Cancelable()
22 FunctionalSubTask subtask = new FunctionalSubTask(null, null);
23 Assert.IsFalse(subtask.Cancelable);
29 object arg = new object();
30 bool passBlock = false;
31 FunctionalSubTask subtask = null;
35 Action<object> func1 = delegate (object argv) {
37 Assert.IsTrue(subtask.Running);
38 Assert.IsFalse(subtask.Done);
39 Assert.AreEqual(arg, argv);
41 subtask = new FunctionalSubTask(func1, arg);
44 Assert.IsFalse(subtask.Running);
45 Assert.IsFalse(subtask.Cancelled);
46 Assert.IsTrue(subtask.Done);
47 Assert.IsTrue(passBlock);
51 Action<object> func2 = delegate (object argv) {
54 throw new TestException("foobar");
57 subtask = new FunctionalSubTask(func2, null);
60 Assert.IsTrue(passBlock);
61 Assert.Fail("shall not be reached here");
62 } catch (TestException ex) {
63 Assert.IsTrue(passBlock);
64 Assert.AreEqual("foobar", ex.Message);
67 Assert.IsTrue(subtask.Done);
68 Assert.IsFalse(subtask.Cancelled);
73 subtask = new FunctionalSubTask(null, null);
77 Assert.Fail("shall not be reached here");
78 } catch (NullReferenceException) {
81 Assert.IsTrue(subtask.Done);
82 Assert.IsFalse(subtask.Cancelled);
86 private class TestException : Exception
88 public TestException(string msg)