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.IsTrue(commandOne.ExecutedCalled); Assert.IsTrue(commandTwo.ExecutedCalled); }