Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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();
        }