public void WhenViewModelIsCreated_ThenItRequestsAvailableTemplates() { bool loadRequested = false; var repository = new Mock<IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireTemplatesAsync(It.IsAny<Action<IOperationResult<IEnumerable<QuestionnaireTemplate>>>>())) .Callback<Action<IOperationResult<IEnumerable<QuestionnaireTemplate>>>>(c => loadRequested = true); var uiService = new Mock<ISingleViewUIService>(); var viewModel = new AvailableQuestionnaireTemplatesListViewModel(repository.Object, uiService.Object); Assert.IsTrue(loadRequested); Assert.AreEqual(0, viewModel.QuestionnaireTemplates.Count); }
public void WhenInitialLoadOperationIscompleted_ThenViewModelPopulatesTheCollectionOfQuestionnaireTemplates() { Action<IOperationResult<IEnumerable<QuestionnaireTemplate>>> callback = null; var repository = new Mock<IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireTemplatesAsync(It.IsAny<Action<IOperationResult<IEnumerable<QuestionnaireTemplate>>>>())) .Callback<Action<IOperationResult<IEnumerable<QuestionnaireTemplate>>>>(c => callback = c); var uiService = new Mock<ISingleViewUIService>(); var viewModel = new AvailableQuestionnaireTemplatesListViewModel(repository.Object, uiService.Object); Assert.AreEqual(0, viewModel.QuestionnaireTemplates.Count); callback(CreateQuestionnaireTemplates()); Assert.AreEqual("Questionnaire #1", viewModel.QuestionnaireTemplates[0].Title); Assert.AreEqual("Questionnaire #2", viewModel.QuestionnaireTemplates[1].Title); }
public void WhenExecutingTheTakeSurveyCommand_ThenRequestsTransitionToQuestionnaireView() { var repository = new Mock<IQuestionnaireRepository>(); repository .Setup(r => r.GetQuestionnaireTemplatesAsync(It.IsAny<Action<IOperationResult<IEnumerable<QuestionnaireTemplate>>>>())); QuestionnaireTemplate templateRequested = null; var uiServiceMock = new Mock<ISingleViewUIService>(); uiServiceMock .Setup(svc => svc.ShowView(ViewNames.CompleteQuestionnaire, It.IsAny<QuestionnaireTemplate>())) .Callback<string, QuestionnaireTemplate>((vn, qt) => templateRequested = qt); var template = new QuestionnaireTemplate(); var templateViewModel = new AvailableQuestionnaireTemplatesListViewModel(repository.Object, uiServiceMock.Object); templateViewModel.TakeSurveyCommand.Execute(template); Assert.AreSame(template, templateRequested); }