From 5ee1f55497a4e30322a56f133f897ecde1612967 Mon Sep 17 00:00:00 2001 From: mo Date: Sun, 4 Nov 2018 15:22:16 -0700 Subject: initial commit. --- .../Presentation/Model/Menu/Help/HelpMenuSpecs.cs | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/Notepad/Presentation/Model/Menu/Help/HelpMenuSpecs.cs (limited to 'src/Notepad/Presentation/Model/Menu/Help/HelpMenuSpecs.cs') diff --git a/src/Notepad/Presentation/Model/Menu/Help/HelpMenuSpecs.cs b/src/Notepad/Presentation/Model/Menu/Help/HelpMenuSpecs.cs new file mode 100644 index 0000000..c716376 --- /dev/null +++ b/src/Notepad/Presentation/Model/Menu/Help/HelpMenuSpecs.cs @@ -0,0 +1,76 @@ +using System.Collections.Generic; +using MbUnit.Framework; +using Notepad.Domain.Repositories; +using Notepad.Infrastructure.Extensions; +using Notepad.Presentation.Model.Menu.Help; +using Notepad.Test.Extensions; +using Rhino.Mocks; + +namespace Notepad.Presentation.Model.Menu.Help { + public class HelpMenuSpecs {} + + [TestFixture] + public class when_asking_the_help_menu_for_its_name_ { + [Test] + public void should_return_the_correct_name() { + CreateSUT().Name().ShouldBeEqualTo(MenuNames.Help); + } + + private ISubMenu CreateSUT() { + return new HelpMenu(null); + } + } + + [TestFixture] + public class when_asking_the_help_menu_for_its_menu_items_ { + private MockRepository mockery; + private IRepository repository; + private ISubMenu sut; + + [SetUp] + public void SetUp() { + mockery = new MockRepository(); + repository = mockery.DynamicMock>(); + sut = CreateSUT(); + } + + [Test] + public void should_ask_the_repository_for_all_the_menu_items() { + using (mockery.Record()) { + Expect + .Call(repository.All()) + .Return(new List()) + .Repeat + .AtLeastOnce(); + } + + using (mockery.Playback()) { + sut.AllMenuItems().Walk(); + } + } + + [Test] + public void should_return_the_menu_items_that_belong_to_the_help_menu() { + var saveMenuItem = mockery.DynamicMock(); + var helpMenuItem = mockery.DynamicMock(); + + var allMenuItems = new List {saveMenuItem, helpMenuItem}; + + using (mockery.Record()) { + SetupResult.For(repository.All()).Return(allMenuItems); + SetupResult.For(saveMenuItem.BelongsTo(sut)).Return(false); + SetupResult.For(helpMenuItem.BelongsTo(sut)).Return(true); + } + + using (mockery.Playback()) { + var returnedItems = sut.AllMenuItems(); + returnedItems.ShouldNotContain(saveMenuItem); + returnedItems.ShouldContain(helpMenuItem); + } + } + + private ISubMenu CreateSUT() { + return new HelpMenu(repository); + } + } +} \ No newline at end of file -- cgit v1.2.3