master
  1using MbUnit.Framework;
  2using Notepad.Presentation.Presenters.Commands;
  3using Notepad.Presentation.Presenters.Menu.Help;
  4using Notepad.Test.Extensions;
  5using Rhino.Mocks;
  6
  7namespace Notepad.Presentation.Model.Menu.Help {
  8    public class AboutMenuItemSpecs {}
  9
 10    [TestFixture]
 11    public class when_asking_the_about_menu_item_for_its_name_ {
 12        [Test]
 13        public void should_return_the_correct_name() {
 14            CreateSUT().Name().ShouldBeEqualTo(MenuItemNames.About);
 15        }
 16
 17        private IMenuItem CreateSUT() {
 18            return new AboutMenuItem(null);
 19        }
 20    }
 21
 22    [TestFixture]
 23    public class when_clicking_on_the_about_menu_item_ {
 24        private MockRepository mockery;
 25        private IRunPresenterCommand<IAboutApplicationPresenter> displayAboutCommand;
 26
 27        [SetUp]
 28        public void SetUp() {
 29            mockery = new MockRepository();
 30            displayAboutCommand = mockery.DynamicMock<IRunPresenterCommand<IAboutApplicationPresenter>>();
 31        }
 32
 33        [Test]
 34        public void should_execute_the_display_about_command() {
 35            using (mockery.Record()) {}
 36
 37            using (mockery.Playback()) {
 38                CreateSUT().Click();
 39            }
 40        }
 41
 42        private IMenuItem CreateSUT() {
 43            return new AboutMenuItem(displayAboutCommand);
 44        }
 45    }
 46
 47    [TestFixture]
 48    public class when_asking_the_about_menu_item_if_it_belongs_to_a_menu_that_it_does {
 49        private MockRepository mockery;
 50        private ISubMenu menuThatThisItemBelongsTo;
 51
 52        [SetUp]
 53        public void SetUp() {
 54            mockery = new MockRepository();
 55            menuThatThisItemBelongsTo = mockery.DynamicMock<ISubMenu>();
 56
 57            SetupResult.For(menuThatThisItemBelongsTo.Name()).Return(MenuNames.Help);
 58        }
 59
 60        [Test]
 61        public void should_return_true() {
 62            using (mockery.Record()) {}
 63
 64            using (mockery.Playback()) {
 65                CreateSUT().BelongsTo(menuThatThisItemBelongsTo).ShouldBeEqualTo(true);
 66            }
 67        }
 68
 69        private IMenuItem CreateSUT() {
 70            return new AboutMenuItem(null);
 71        }
 72    }
 73
 74    [TestFixture]
 75    public class when_asking_the_about_menu_item_if_it_belongs_to_a_menu_item_that_it_does_not {
 76        private MockRepository mockery;
 77        private ISubMenu unknownMenu;
 78
 79        [SetUp]
 80        public void SetUp() {
 81            mockery = new MockRepository();
 82            unknownMenu = mockery.DynamicMock<ISubMenu>();
 83
 84            SetupResult.For(unknownMenu.Name()).Return("blah");
 85        }
 86
 87        [Test]
 88        public void should_return_false() {
 89            using (mockery.Record()) {}
 90
 91            using (mockery.Playback()) {
 92                CreateSUT().BelongsTo(unknownMenu).ShouldBeEqualTo(false);
 93            }
 94        }
 95
 96
 97        private IMenuItem CreateSUT() {
 98            return new AboutMenuItem(null);
 99        }
100    }
101}