using Core.Common.Base.Data; using NUnit.Framework; using Rhino.Mocks; namespace Core.Common.Gui.Test { [TestFixture] public class StorageCommandHandlerTest { private MockRepository mocks; [SetUp] public void SetUp() { mocks = new MockRepository(); } [Test] public void CreateNewProject_NoProjectSet_NewProjectIsSet() { // SetUp IViewCommands viewCommands = mocks.StrictMock(); IGui guiMock = mocks.StrictMock(); guiMock.Stub(g => g.ProjectOpened += null).IgnoreArguments(); guiMock.Stub(g => g.ProjectClosing += null).IgnoreArguments(); guiMock.Expect(x => x.Project).PropertyBehavior(); guiMock.Expect(x => x.ProjectFilePath).PropertyBehavior(); guiMock.Stub(x => x.RefreshGui()); mocks.ReplayAll(); StorageCommandHandler storageCommandHandler = new StorageCommandHandler(viewCommands, guiMock); // Call storageCommandHandler.CreateNewProject(); // Assert Assert.IsInstanceOf(guiMock.Project); Assert.AreEqual("", guiMock.ProjectFilePath); mocks.VerifyAll(); } [Test] public void CreateNewProject_SavedProjectThenNewProject_NewProjectAndPathAreSet() { // SetUp const string savedProjectPath = @"C:\savedProject.rtd"; IViewCommands viewCommands = mocks.StrictMock(); viewCommands.Expect(g => g.RemoveAllViewsForItem(null)).IgnoreArguments(); Project projectMock = mocks.StrictMock(); projectMock.Name = "test"; projectMock.StorageId = 1234L; IGui guiMock = mocks.StrictMock(); guiMock.Stub(g => g.ProjectOpened += null).IgnoreArguments(); guiMock.Stub(g => g.ProjectClosing += null).IgnoreArguments(); guiMock.Expect(x => x.Project).PropertyBehavior(); guiMock.Expect(x => x.ProjectFilePath).PropertyBehavior(); guiMock.Stub(x => x.RefreshGui()); guiMock.Project = projectMock; guiMock.ProjectFilePath = savedProjectPath; mocks.ReplayAll(); StorageCommandHandler storageCommandHandler = new StorageCommandHandler(viewCommands, guiMock); // Call storageCommandHandler.CreateNewProject(); // Assert Assert.IsInstanceOf(guiMock.Project); Assert.AreNotEqual(projectMock, guiMock.Project); Assert.AreNotEqual(projectMock.StorageId, guiMock.Project.StorageId); Assert.AreNotEqual(savedProjectPath, guiMock.ProjectFilePath); Assert.AreEqual("", guiMock.ProjectFilePath); mocks.VerifyAll(); } } }