public async Task ScreenDoesNotNeedToBeActiveItemToCloseIt() { // conductor conducts conducted // conducted.TryCloseAsync() will ask conductor to close it var conductor = new Conductor <IScreen> .Collection.OneActive(); var conducted1 = new StateScreen { IsClosable = true }; var conducted2 = new StateScreen { IsClosable = true }; // All items are closable conductor.Items.Add(conducted1); conductor.Items.Add(conducted2); // ActivateWith allows synced parent-child activation. conducted2.ActivateWith(conductor); // ActiveItem is automatically conducted. conductor.ActiveItem = conducted1; await((IActivate)conductor).ActivateAsync(CancellationToken.None); await conducted2.TryCloseAsync(); Assert.False(conducted2.IsActive); Assert.True(conducted2.IsClosed); }
public async Task ScreenTryCloseAsyncWillAskConductorToCloseIt() { // conductor conducts conducted // conducted.TryCloseAsync() will ask conductor to close it var conductor = new Conductor <IScreen> .Collection.AllActive(); var conducted1 = new StateScreen { IsClosable = true }; var conducted2 = new StateScreen { IsClosable = true }; // All items are closable conductor.Items.Add(conducted1); conductor.Items.Add(conducted2); await((IActivate)conductor).ActivateAsync(CancellationToken.None); await conducted1.TryCloseAsync(); Assert.True(conductor.IsActive); Assert.False(conducted1.IsActive); Assert.True(conducted1.IsClosed); Assert.True(conducted2.IsActive); Assert.False(conducted2.IsClosed); }
public async Task ScreenTryCloseAsyncWillAskConductorToCloseIt() { // conductor conducts conducted // conducted.TryCloseAsync() will ask conductor to close it var conductor = new Conductor <IScreen>(); var conducted = new StateScreen { IsClosable = true }; conductor.ActiveItem = conducted; await((IActivate)conductor).ActivateAsync(CancellationToken.None); await conducted.TryCloseAsync(); Assert.True(conductor.IsActive); Assert.False(conducted.IsActive); Assert.True(conducted.IsClosed); }