public void InitializePresenter(IStepIntroView view, StepIntroViewModel viewModel = null) { ViewModel = viewModel ?? new StepIntroViewModel(); View = view; View.DataContext = ViewModel; View.Presenter = this; ViewModel.ReportLanguage = _userSession.ReportLanguage; ViewModel.InputSourceChanged += (sender, inputSource) => { _userSession.InputSource = inputSource; ViewModel.InputUri = null; }; ViewModel.InputUriChanged += (sender, inputUri) => { _userSession.InputUri = inputUri; }; ViewModel.ReportLanguageChanged += (sender, userLanguage) => { _userSession.ReportLanguage = userLanguage; }; }
public async Task When_dropping_inproper_mymaps_link_an_error_message_is_shown() { // Arrange var vm = new StepIntroViewModel { InputUri = "old-uri", InputSource = InputSource.LocalFile }; _presenter.SetupGet(x => x.ViewModel).Returns(vm); var dataObjectMock = new Mock <IDataObject>(); dataObjectMock.Setup(x => x.GetDataPresent(DataFormats.Text)).Returns(true); dataObjectMock.Setup(x => x.GetData(DataFormats.Text)).Returns("bad-uri"); _googleMyMapAdapterMock.Setup(x => x.DoesLookLikeMyMapsUrl("bad-uri")).Returns(false); // Act await _presenter.Object.HandleInputUriDrop(dataObjectMock.Object); // Verify Assert.AreEqual(InputSource.LocalFile, vm.InputSource); Assert.AreEqual("old-uri", vm.InputUri); }
public async Task When_dropping_proper_file_the_viewmodel_is_updated() { // Arrange var vm = new StepIntroViewModel { InputUri = "old-uri", InputSource = InputSource.GoogleMyMapsUrl }; _presenter.SetupGet(x => x.ViewModel).Returns(vm); var dataObjectMock = new Mock <IDataObject>(); dataObjectMock.Setup(x => x.GetDataPresent(DataFormats.FileDrop)).Returns(true); dataObjectMock.Setup(x => x.GetData(DataFormats.FileDrop)).Returns(new[] { "file-path.kmz" }); _fileServiceMock.Setup(x => x.Exists("file-path.kmz")).Returns(true); // Act await _presenter.Object.HandleInputUriDrop(dataObjectMock.Object); // Verify Assert.AreEqual(InputSource.LocalFile, vm.InputSource); Assert.AreEqual("file-path.kmz", vm.InputUri); }
public async Task When_dropping_unsupported_file_an_error_message_is_shown() { // Arrange var vm = new StepIntroViewModel { InputSource = InputSource.GoogleMyMapsUrl, InputUri = "old-uri" }; _presenter.SetupGet(x => x.ViewModel).Returns(vm); var dataObjectMock = new Mock <IDataObject>(); dataObjectMock.Setup(x => x.GetDataPresent(DataFormats.FileDrop)).Returns(true); dataObjectMock.Setup(x => x.GetData(DataFormats.FileDrop)).Returns(new[] { "file-path.bad" }); _fileServiceMock.Setup(x => x.Exists("file-path.bad")).Returns(true); // Act await _presenter.Object.HandleInputUriDrop(dataObjectMock.Object); // Verify _dialogServiceMock.Verify(x => x.InvalidOperationMessage(It.IsAny <string>()), Times.Once); Assert.AreEqual(InputSource.GoogleMyMapsUrl, vm.InputSource); Assert.AreEqual("old-uri", vm.InputUri); }