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 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 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); } }
public async Task TestCommandSubscription() { var testScheduler = new TestScheduler(); using (var busyStatusMonitor = new BusyStatusMonitor(testScheduler)) { Assert.False(busyStatusMonitor.IsBusy); var command = ReactiveCommand.Create(() => { }, null, Scheduler.Immediate); busyStatusMonitor.AddCommand(command, "command"); var list = new List <bool>(); using (busyStatusMonitor.Subscribe(x => list.Add(x))) { await command.Execute(); testScheduler.AdvanceBy(2); Assert.Equal(true, list.Last()); testScheduler.AdvanceBy(1); Assert.Equal(false, list.Last()); } } }