public void TestStatusText()
 {
     using (var busyStatusMonitor = new BusyStatusMonitor(Scheduler.Immediate))
     {
         Assert.Null(busyStatusMonitor.StatusText);
         using (busyStatusMonitor.ReportStatus("test1"))
         {
             Assert.Equal("test1", busyStatusMonitor.StatusText);
             using (busyStatusMonitor.ReportStatus("test2"))
             {
                 Assert.Equal("test1\ntest2", busyStatusMonitor.StatusText);
             }
             Assert.Equal("test1", busyStatusMonitor.StatusText);
         }
         Assert.Null(busyStatusMonitor.StatusText);
     }
 }
 public void TestIsBusy()
 {
     using (var busyStatusMonitor = new BusyStatusMonitor(Scheduler.Immediate))
     {
         Assert.False(busyStatusMonitor.IsBusy);
         using (busyStatusMonitor.ReportStatus(""))
         {
             Assert.True(busyStatusMonitor.IsBusy);
             using (busyStatusMonitor.ReportStatus(""))
             {
                 Assert.True(busyStatusMonitor.IsBusy);
             }
             Assert.True(busyStatusMonitor.IsBusy);
         }
         Assert.False(busyStatusMonitor.IsBusy);
     }
 }
 public void TestSubscribe()
 {
     using (var busyStatusMonitor = new BusyStatusMonitor(Scheduler.Immediate))
     {
         var isBusy = false;
         busyStatusMonitor.Subscribe(x => { isBusy = x; });
         Assert.False(isBusy);
         using (busyStatusMonitor.ReportStatus(""))
         {
             Assert.True(isBusy);
             using (busyStatusMonitor.ReportStatus(""))
             {
                 Assert.True(isBusy);
             }
             Assert.True(isBusy);
         }
         Assert.False(isBusy);
     }
 }