/ide/test/org/voisen/crayon/command/startup/CreateWindowsCommandTest.as

https://github.com/GunioRobot/crayon · ActionScript · 106 lines · 64 code · 22 blank · 20 comment · 3 complexity · ec7e0341213f9d41f0ab3e5503928208 MD5 · raw file

  1. package org.voisen.crayon.command.startup
  2. {
  3. import flash.desktop.NativeApplication;
  4. import flash.display.NativeWindow;
  5. import flash.events.Event;
  6. import mockolate.nice;
  7. import mockolate.prepare;
  8. import mockolate.received;
  9. import org.flexunit.async.Async;
  10. import org.hamcrest.assertThat;
  11. import org.robotlegs.base.MediatorMap;
  12. import org.robotlegs.mvcs.SignalCommand;
  13. import org.voisen.crayon.view.editor.EditorWindow;
  14. public class CreateWindowsCommandTest
  15. {
  16. //--------------------------------------------------------------------------
  17. //
  18. // Properties
  19. //
  20. //--------------------------------------------------------------------------
  21. protected var command:CreateWindowsCommand;
  22. //--------------------------------------------------------------------------
  23. //
  24. // Prep
  25. //
  26. //--------------------------------------------------------------------------
  27. [Before(async)]
  28. public function setUp():void
  29. {
  30. command = new CreateWindowsCommand();
  31. Async.proceedOnEvent(this, prepare(MediatorMap), Event.COMPLETE);
  32. }
  33. [After]
  34. public function tearDown():void
  35. {
  36. closeAllWindows();
  37. command = null;
  38. }
  39. //--------------------------------------------------------------------------
  40. //
  41. // Protected Methods
  42. //
  43. //--------------------------------------------------------------------------
  44. protected function closeAllWindows():void
  45. {
  46. for each (var window:NativeWindow in NativeApplication.nativeApplication.openedWindows)
  47. window.close();
  48. }
  49. protected function getWindowInstance(clazz:Class):NativeWindow
  50. {
  51. for each (var window:NativeWindow in NativeApplication.nativeApplication.openedWindows)
  52. {
  53. if (window is clazz)
  54. return window;
  55. }
  56. return null;
  57. }
  58. //--------------------------------------------------------------------------
  59. //
  60. // Tests
  61. //
  62. //--------------------------------------------------------------------------
  63. [Test]
  64. public function should_extend_signal_command():void
  65. {
  66. assertThat(command is SignalCommand);
  67. }
  68. [Test]
  69. public function should_create_editor_window():void
  70. {
  71. command.mediatorMap = nice(MediatorMap);
  72. command.execute();
  73. assertThat(NativeApplication.nativeApplication.activeWindow is EditorWindow);
  74. }
  75. [Test]
  76. public function should_create_mediator_for_editor_window_stage():void
  77. {
  78. command.mediatorMap = nice(MediatorMap);
  79. command.execute();
  80. var editorWindow:NativeWindow = getWindowInstance(EditorWindow);
  81. assertThat(command.mediatorMap, received().method('createMediator').arg(editorWindow.stage).once());
  82. }
  83. }
  84. }