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