コード例 #1
0
        public void WhenSummaryRequestOperationisCompleted_ThenUpdatesCurrentSummaryAndStatusChangesToNormal()
        {
            var questionnaireRepositoryMock = new Mock <IQuestionnaireRepository>();

            Action <IOperationResult <QuestionnaireTemplateSummary> > summaryCallback = null;
            var summary = new QuestionnaireTemplateSummary();

            questionnaireRepositoryMock
            .Setup(qs => qs.GetQuestionnaireTemplateSummaryAsync(It.IsAny <QuestionnaireTemplate>(), It.IsAny <Action <IOperationResult <QuestionnaireTemplateSummary> > >()))
            .Callback <QuestionnaireTemplate, Action <IOperationResult <QuestionnaireTemplateSummary> > >((qt, ac) => summaryCallback = ac);

            var viewModel = new QuestionnaireTemplateSummaryViewModel(questionnaireRepositoryMock.Object);

            viewModel.CurrentlySelectedQuestionnaireTemplate = new QuestionnaireTemplate();

            var summaryResult = new Mock <IOperationResult <QuestionnaireTemplateSummary> >();

            summaryResult.SetupGet(r => r.Result).Returns(summary);

            var tracker = new PropertyChangeTracker(viewModel);

            summaryCallback(summaryResult.Object);

            Assert.AreEqual("Normal", viewModel.CurrentState);
            Assert.AreSame(summary, viewModel.QuestionnaireTemplateSummary);
            CollectionAssert.Contains(tracker.ChangedProperties, "CurrentState");
            CollectionAssert.Contains(tracker.ChangedProperties, "QuestionnaireTemplateSummary");
        }
コード例 #2
0
        public void WhenCurrentlySelectedTemplateChangesToNullBeforePreviousSummaryRequestOperationisCompleted_ThenStatusIsSetToNormalAndOriginalRequestOperationCompletionDoesNotCauseAnUpdate()
        {
            var questionnaireRepositoryMock = new Mock <IQuestionnaireRepository>();

            Action <IOperationResult <QuestionnaireTemplateSummary> > summaryCallback = null;
            var summary = new QuestionnaireTemplateSummary();

            questionnaireRepositoryMock
            .Setup(qs => qs.GetQuestionnaireTemplateSummaryAsync(It.IsAny <QuestionnaireTemplate>(), It.IsAny <Action <IOperationResult <QuestionnaireTemplateSummary> > >()))
            .Callback <QuestionnaireTemplate, Action <IOperationResult <QuestionnaireTemplateSummary> > >((qt, ac) => summaryCallback = ac);

            var viewModel = new QuestionnaireTemplateSummaryViewModel(questionnaireRepositoryMock.Object);

            viewModel.CurrentlySelectedQuestionnaireTemplate = new QuestionnaireTemplate();

            var originalSummaryCallback = summaryCallback;

            var summaryResult = new Mock <IOperationResult <QuestionnaireTemplateSummary> >();

            summaryResult.SetupGet(r => r.Result).Returns(summary);

            viewModel.CurrentlySelectedQuestionnaireTemplate = null;

            Assert.AreEqual("Normal", viewModel.CurrentState);
            Assert.IsNull(viewModel.QuestionnaireTemplateSummary);

            originalSummaryCallback(summaryResult.Object);

            Assert.AreEqual("Normal", viewModel.CurrentState);
            Assert.IsNull(viewModel.QuestionnaireTemplateSummary);
        }
コード例 #3
0
        public void WhenViewModelIsCreated_ThenItHasNoSummaryOrSelectedTemplate()
        {
            var questionnaireRepositoryMock = new Mock <IQuestionnaireRepository>();

            var viewModel = new QuestionnaireTemplateSummaryViewModel(questionnaireRepositoryMock.Object);

            Assert.IsNull(viewModel.CurrentlySelectedQuestionnaireTemplate);
            Assert.IsNull(viewModel.QuestionnaireTemplateSummary);
        }
コード例 #4
0
        public void WhenSelectedTemplateIsSetToNull_ThenSummaryIsCleared()
        {
            var questionnaireRepositoryMock = new Mock <IQuestionnaireRepository>(MockBehavior.Strict);

            var viewModel = new QuestionnaireTemplateSummaryViewModel(questionnaireRepositoryMock.Object);

            viewModel.CurrentlySelectedQuestionnaireTemplate = null;

            Assert.IsNull(viewModel.QuestionnaireTemplateSummary);
            Assert.AreEqual("Normal", viewModel.CurrentState);
            questionnaireRepositoryMock.VerifyAll();
        }
コード例 #5
0
        public void WhenSelectedTemplateIsSetToNonNull_ThenSummaryIsRequestedAndStatusChangesToUpdatingSummary()
        {
            var questionnaireRepositoryMock = new Mock <IQuestionnaireRepository>();
            var requestedSummary            = false;

            questionnaireRepositoryMock
            .Setup(qs => qs.GetQuestionnaireTemplateSummaryAsync(It.IsAny <QuestionnaireTemplate>(), It.IsAny <Action <IOperationResult <QuestionnaireTemplateSummary> > >()))
            .Callback <QuestionnaireTemplate, Action <IOperationResult <QuestionnaireTemplateSummary> > >((qt, ac) => { requestedSummary = true; });

            var viewModel = new QuestionnaireTemplateSummaryViewModel(questionnaireRepositoryMock.Object);

            var tracker = new PropertyChangeTracker(viewModel);

            viewModel.CurrentlySelectedQuestionnaireTemplate = new QuestionnaireTemplate();

            Assert.IsTrue(requestedSummary);
            Assert.IsNull(viewModel.QuestionnaireTemplateSummary);
            Assert.AreEqual("RequestingSummary", viewModel.CurrentState);
            CollectionAssert.Contains(tracker.ChangedProperties, "CurrentState");
        }