public void GivenSuccessfullyExecutedOpenProjectActivity_WhenFinishingOpenProjectActivity_ThenProjectOwnerAndNewProjectUpdatedWithLogMessage() { // Given const string someFilePath = @"c:\\folder\someFilePath.rtd"; var mocks = new MockRepository(); var project = mocks.Stub <IProject>(); project.Expect(p => p.NotifyObservers()); var projectStorage = mocks.Stub <IStoreProject>(); projectStorage.Stub(ps => ps.LoadProject(someFilePath)) .Return(project); var projectFactory = mocks.Stub <IProjectFactory>(); var projectOwner = mocks.Stub <IProjectOwner>(); projectOwner.Expect(po => po.SetProject(project, someFilePath)); mocks.ReplayAll(); var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties { FilePath = someFilePath, ProjectOwner = projectOwner, ProjectFactory = projectFactory, ProjectStorage = projectStorage }; var activity = new OpenProjectActivity(openProjectProperties); activity.Run(); // Precondition Assert.AreEqual(ActivityState.Executed, activity.State); // When Action call = () => { activity.LogState(); activity.Finish(); }; // Then const string expectedMessage = "Openen van project is gelukt."; TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); Assert.AreEqual(ActivityState.Finished, activity.State); Assert.AreEqual(Path.GetFileNameWithoutExtension(someFilePath), project.Name); mocks.VerifyAll(); }
public void LogState_ActivityCancelled_ProjectOwnerNotUpdatedWithLogMessage() { // Setup const string someFilePath = @"c:\\folder\someFilePath.rtd"; var mocks = new MockRepository(); var project = mocks.Stub <IProject>(); project.Expect(p => p.NotifyObservers()) .Repeat.Never(); var projectStorage = mocks.Stub <IStoreProject>(); projectStorage.Stub(ps => ps.LoadProject(someFilePath)) .Return(project); var projectFactory = mocks.Stub <IProjectFactory>(); var projectOwner = mocks.Stub <IProjectOwner>(); projectOwner.Expect(po => po.SetProject(project, someFilePath)) .Repeat.Never(); mocks.ReplayAll(); var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties { FilePath = someFilePath, ProjectOwner = projectOwner, ProjectFactory = projectFactory, ProjectStorage = projectStorage }; var activity = new OpenProjectActivity(openProjectProperties); activity.Run(); activity.Cancel(); // Precondition Assert.AreEqual(ActivityState.Canceled, activity.State); // Call Action call = () => activity.LogState(); // Assert Tuple <string, LogLevelConstant> expectedMessage = Tuple.Create("Openen van project is geannuleerd.", LogLevelConstant.Warn); TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedMessage, 1); Assert.AreEqual(ActivityState.Canceled, activity.State); mocks.VerifyAll(); }
public void GivenOpenProjectActivityFailedDueToException_WhenFinishingOpenProjectActivity_ThenProjectOwnerHasNullProjectWithLogMessage(Exception exceptionToThrow) { // Given const string someFilePath = @"c:\\folder\someFilePath.rtd"; var mocks = new MockRepository(); var projectStorage = mocks.Stub <IStoreProject>(); projectStorage.Stub(ps => ps.LoadProject(someFilePath)) .Throw(exceptionToThrow); var projectFactory = mocks.StrictMock <IProjectFactory>(); var projectOwner = mocks.StrictMock <IProjectOwner>(); projectOwner.Expect(po => po.SetProject(null, null)); mocks.ReplayAll(); var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties { FilePath = someFilePath, ProjectOwner = projectOwner, ProjectFactory = projectFactory, ProjectStorage = projectStorage }; var activity = new OpenProjectActivity(openProjectProperties); activity.Run(); // Precondition Assert.AreEqual(ActivityState.Failed, activity.State); // When Action call = () => { activity.LogState(); activity.Finish(); }; // Then var expectedMessage = Tuple.Create("Openen van project is mislukt.", LogLevelConstant.Error); TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedMessage, 1); Assert.AreEqual(ActivityState.Failed, activity.State); mocks.VerifyAll(); }