public void RegisterACommandShouldRaiseCanExecuteEvent() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommand = new TestCommand(); multiCommand.RegisterCommand(new TestCommand()); Assert.True(multiCommand.CanExecuteChangedRaised); }
public void ShouldDelegateCanExecuteToSingleRegistrant() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommand = new TestCommand(); multiCommand.RegisterCommand(testCommand); Assert.False(testCommand.CanExecuteCalled); multiCommand.CanExecute(null); Assert.True(testCommand.CanExecuteCalled); }
public void ShouldBubbleException() { Assert.Throws <DivideByZeroException>(() => { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); BadDivisionCommand testCommand = new BadDivisionCommand(); multiCommand.RegisterCommand(testCommand); multiCommand.Execute(null); }); }
public void CanExecuteShouldReturnTrueIfAllRegistrantsTrue() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand() { CanExecuteValue = true }; TestCommand testCommandTwo = new TestCommand() { CanExecuteValue = true }; multiCommand.RegisterCommand(testCommandOne); multiCommand.RegisterCommand(testCommandTwo); Assert.True(multiCommand.CanExecute(null)); }
public void UnregisterCommandShouldRaiseCanExecuteEvent() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand(); multiCommand.RegisterCommand(testCommandOne); multiCommand.CanExecuteChangedRaised = false; multiCommand.UnregisterCommand(testCommandOne); Assert.True(multiCommand.CanExecuteChangedRaised); }
public void ExecuteDoesNotThrowWhenAnExecuteCommandModifiesTheCommandsCollection() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); SelfUnregisterableCommand commandOne = new SelfUnregisterableCommand(multiCommand); SelfUnregisterableCommand commandTwo = new SelfUnregisterableCommand(multiCommand); multiCommand.RegisterCommand(commandOne); multiCommand.RegisterCommand(commandTwo); multiCommand.Execute(null); Assert.True(commandOne.ExecutedCalled); Assert.True(commandTwo.ExecutedCalled); }
public void UnregisterCommandDisconnectsCanExecuteChangedDelegate() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand() { CanExecuteValue = true }; multiCommand.RegisterCommand(testCommandOne); multiCommand.UnregisterCommand(testCommandOne); multiCommand.CanExecuteChangedRaised = false; testCommandOne.FireCanExecuteChanged(); Assert.False(multiCommand.CanExecuteChangedRaised); }
public void ShouldReraiseCanExecuteChangedEvent() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand() { CanExecuteValue = true }; Assert.False(multiCommand.CanExecuteChangedRaised); multiCommand.RegisterCommand(testCommandOne); multiCommand.CanExecuteChangedRaised = false; testCommandOne.FireCanExecuteChanged(); Assert.True(multiCommand.CanExecuteChangedRaised); }
public void ShouldReraiseDelegateCommandCanExecuteChangedEventAfterCollect() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); DelegateCommand <object> delegateCommand = new DelegateCommand <object>(delegate { }); Assert.False(multiCommand.CanExecuteChangedRaised); multiCommand.RegisterCommand(delegateCommand); multiCommand.CanExecuteChangedRaised = false; GC.Collect(); delegateCommand.RaiseCanExecuteChanged(); Assert.True(multiCommand.CanExecuteChangedRaised); }
public void UnregisterCommandRemovesFromExecuteDelegation() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand() { CanExecuteValue = true }; multiCommand.RegisterCommand(testCommandOne); multiCommand.UnregisterCommand(testCommandOne); Assert.False(testCommandOne.ExecuteCalled); multiCommand.Execute(null); Assert.False(testCommandOne.ExecuteCalled); }
public void ShouldDelegateCanExecuteToMultipleRegistrants() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand(); TestCommand testCommandTwo = new TestCommand(); multiCommand.RegisterCommand(testCommandOne); multiCommand.RegisterCommand(testCommandTwo); Assert.False(testCommandOne.CanExecuteCalled); Assert.False(testCommandTwo.CanExecuteCalled); multiCommand.CanExecute(null); Assert.True(testCommandOne.CanExecuteCalled); Assert.True(testCommandTwo.CanExecuteCalled); }
public void CanExecuteShouldReturnFalseIfASingleRegistrantsFalse() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand() { CanExecuteValue = true }; TestCommand testCommandTwo = new TestCommand() { CanExecuteValue = false }; multiCommand.RegisterCommand(testCommandOne); multiCommand.RegisterCommand(testCommandTwo); Assert.False(multiCommand.CanExecute(null)); }
public void ShouldReraiseCanExecuteChangedEventAfterCollect() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); TestCommand testCommandOne = new TestCommand() { CanExecuteValue = true }; Assert.False(multiCommand.CanExecuteChangedRaised); multiCommand.RegisterCommand(testCommandOne); multiCommand.CanExecuteChangedRaised = false; GC.Collect(); testCommandOne.FireCanExecuteChanged(); Assert.True(multiCommand.CanExecuteChangedRaised); }
public void CanExecuteShouldReturnFalseWithNoCommandsRegistered() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); Assert.False(multiCommand.CanExecute(null)); }
public void ShouldReraiseDelegateCommandCanExecuteChangedEventAfterCollect() { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); DelegateCommand<object> delegateCommand = new DelegateCommand<object>(delegate { }); Assert.False(multiCommand.CanExecuteChangedRaised); multiCommand.RegisterCommand(delegateCommand); multiCommand.CanExecuteChangedRaised = false; GC.Collect(); delegateCommand.RaiseCanExecuteChanged(); Assert.True(multiCommand.CanExecuteChangedRaised); }
public void ShouldBubbleException() { Assert.Throws<DivideByZeroException>(() => { TestableCompositeCommand multiCommand = new TestableCompositeCommand(); BadDivisionCommand testCommand = new BadDivisionCommand(); multiCommand.RegisterCommand(testCommand); multiCommand.Execute(null); }); }