/test/robotlegs/bender/extensions/mediatorMap/impl/MediatorMapTest.as

https://github.com/creynders/robotlegs-framework
ActionScript | 84 lines | 57 code | 12 blank | 15 comment | 0 complexity | 0b1f3fc919b9648ce4dc20bdb9636324 MD5 | raw file
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) 2009-2013 the original author or authors. All Rights Reserved.
  3. //
  4. // NOTICE: You are permitted to use, modify, and distribute this file
  5. // in accordance with the terms of the license agreement accompanying it.
  6. //------------------------------------------------------------------------------
  7. package robotlegs.bender.extensions.mediatorMap.impl
  8. {
  9. import flash.display.Sprite;
  10. import flash.media.Sound;
  11. import org.hamcrest.assertThat;
  12. import org.hamcrest.core.not;
  13. import org.hamcrest.object.equalTo;
  14. import org.hamcrest.object.instanceOf;
  15. import robotlegs.bender.extensions.matching.TypeMatcher;
  16. import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper;
  17. import robotlegs.bender.framework.impl.Context;
  18. public class MediatorMapTest
  19. {
  20. /*============================================================================*/
  21. /* Private Properties */
  22. /*============================================================================*/
  23. private var mediatorMap:MediatorMap;
  24. /*============================================================================*/
  25. /* Test Setup and Teardown */
  26. /*============================================================================*/
  27. [Before]
  28. public function setUp():void
  29. {
  30. const context:Context = new Context();
  31. mediatorMap = new MediatorMap(context);
  32. }
  33. /*============================================================================*/
  34. /* Tests */
  35. /*============================================================================*/
  36. [Test]
  37. public function mapMatcher_creates_mapper():void
  38. {
  39. const matcher:TypeMatcher = new TypeMatcher().allOf(Sprite);
  40. assertThat(mediatorMap.mapMatcher(matcher), instanceOf(IMediatorMapper));
  41. }
  42. [Test]
  43. public function mapMatcher_to_matching_TypeMatcher_returns_same_mapper():void
  44. {
  45. const matcher1:TypeMatcher = new TypeMatcher().allOf(Sprite);
  46. const matcher2:TypeMatcher = new TypeMatcher().allOf(Sprite);
  47. const mapper1:Object = mediatorMap.mapMatcher(matcher1);
  48. const mapper2:Object = mediatorMap.mapMatcher(matcher2);
  49. assertThat(mapper1, equalTo(mapper2));
  50. }
  51. [Test]
  52. public function mapMatcher_to_differing_TypeMatcher_returns_different_mapper():void
  53. {
  54. const matcher1:TypeMatcher = new TypeMatcher().allOf(Sprite);
  55. const matcher2:TypeMatcher = new TypeMatcher().allOf(Sound);
  56. const mapper1:Object = mediatorMap.mapMatcher(matcher1);
  57. const mapper2:Object = mediatorMap.mapMatcher(matcher2);
  58. assertThat(mapper1, not(equalTo(mapper2)));
  59. }
  60. [Test]
  61. public function unmap_returns_mapper():void
  62. {
  63. const mapper:Object = mediatorMap.mapMatcher(new TypeMatcher().allOf(Sprite));
  64. assertThat(mediatorMap.unmapMatcher(new TypeMatcher().allOf(Sprite)), equalTo(mapper));
  65. }
  66. [Test]
  67. public function robust_to_unmapping_non_existent_mappings():void
  68. {
  69. mediatorMap.unmapMatcher(new TypeMatcher().allOf(Sprite)).fromAll();
  70. }
  71. }
  72. }