PageRenderTime 40ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/V2.2/trunk/CAL/Desktop/Composite.Presentation.Tests/Commands/ClickFixture.cs

#
C# | 94 lines | 62 code | 16 blank | 16 comment | 0 complexity | c6b42dc36c1dfadcf8917adbb73d68c4 MD5 | raw file
  1. //===================================================================================
  2. // Microsoft patterns & practices
  3. // Composite Application Guidance for Windows Presentation Foundation and Silverlight
  4. //===================================================================================
  5. // Copyright (c) Microsoft Corporation. All rights reserved.
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
  7. // OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
  8. // LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  9. // FITNESS FOR A PARTICULAR PURPOSE.
  10. //===================================================================================
  11. // The example companies, organizations, products, domain names,
  12. // e-mail addresses, logos, people, places, and events depicted
  13. // herein are fictitious. No association with any real company,
  14. // organization, product, domain name, email address, logo, person,
  15. // places, or events is intended or should be inferred.
  16. //===================================================================================
  17. using Microsoft.Practices.Composite.Presentation.Commands;
  18. using Microsoft.Practices.Composite.Presentation.Tests.Mocks;
  19. using Microsoft.VisualStudio.TestTools.UnitTesting;
  20. namespace Microsoft.Practices.Composite.Presentation.Tests.Commands
  21. {
  22. [TestClass]
  23. public class ClickFixture
  24. {
  25. [TestMethod]
  26. public void ShouldHookUpClickCommandBehaviorWhenSettingProperty()
  27. {
  28. var clickableObject = new MockClickableObject();
  29. var command = new MockCommand();
  30. Click.SetCommand(clickableObject, command);
  31. Assert.IsFalse(command.ExecuteCalled);
  32. clickableObject.RaiseClick();
  33. Assert.IsTrue(command.ExecuteCalled);
  34. Assert.AreSame(command, Click.GetCommand(clickableObject));
  35. }
  36. [TestMethod]
  37. public void ShouldUpdateCommandOnBehaviorWhenChangingProperty()
  38. {
  39. var clickableObject = new MockClickableObject();
  40. var oldCommand = new MockCommand();
  41. var newCommand = new MockCommand();
  42. Click.SetCommand(clickableObject, oldCommand);
  43. Click.SetCommand(clickableObject, newCommand);
  44. clickableObject.RaiseClick();
  45. Assert.IsTrue(newCommand.ExecuteCalled);
  46. Assert.IsFalse(oldCommand.ExecuteCalled);
  47. }
  48. [TestMethod]
  49. public void ShouldExecuteWithCommandParameter()
  50. {
  51. var clickableObject = new MockClickableObject();
  52. var command = new MockCommand();
  53. var parameter = new object();
  54. Click.SetCommand(clickableObject, command);
  55. Click.SetCommandParameter(clickableObject, parameter);
  56. Assert.IsNull(command.ExecuteParameter);
  57. clickableObject.RaiseClick();
  58. Assert.IsTrue(command.ExecuteCalled);
  59. Assert.IsNotNull(command.ExecuteParameter);
  60. Assert.AreSame(parameter, command.ExecuteParameter);
  61. }
  62. [TestMethod]
  63. public void ShouldCallCanExecuteOnParameterChange()
  64. {
  65. var clickableObject = new MockClickableObject();
  66. var command = new MockCommand();
  67. var parameter = new object();
  68. Click.SetCommand(clickableObject, command);
  69. Assert.IsNull(command.CanExecuteParameter);
  70. Assert.IsTrue(clickableObject.IsEnabled);
  71. command.CanExecuteReturnValue = false;
  72. Click.SetCommandParameter(clickableObject, parameter);
  73. Assert.IsNotNull(command.CanExecuteParameter);
  74. Assert.AreSame(parameter, command.CanExecuteParameter);
  75. Assert.IsFalse(clickableObject.IsEnabled);
  76. }
  77. }
  78. }