示例#1
0
        public void InitializePresenter(IStepPickView view, StepPickViewModel viewModel = null)
        {
            ViewModel = viewModel ?? new StepPickViewModel();

            View             = view;
            View.DataContext = ViewModel;
            View.Presenter   = this;

            _kmlObjectsTreePresenter.InitializePresenter(View.KmlObjectsTreeView, ViewModel.KmlObjectsTree);
        }
        private StepPickViewModel SetupForActivatedMethod(KmlDocument kmlDocument)
        {
            var kmzUrl = new Uri(DEFAULT_KML_URL);
            var vm     = new StepPickViewModel();

            _userSessionMock.SetupGet(x => x.InputSource).Returns(InputSource.GoogleMyMapsUrl);
            _userSessionMock.SetupGet(x => x.InputUri).Returns("http://input-uri");
            _presenter.SetupGet(x => x.ViewModel).Returns(vm);
            _googleMyMapAdapterMock.Setup(x => x.GetKmlDownloadUrl(new Uri("http://input-uri"))).Returns(kmzUrl);
            _kmlFileReaderMock.Setup(x => x.ReadFromFile(It.IsAny <string>())).Returns(Task.FromResult(kmlDocument));

            return(vm);
        }
        public async Task When_going_next_and_placemarks_arent_available_then_false_is_returned()
        {
            // Arrange
            var kmlDocument = new KmlDocument
            {
                Folders =
                {
                    new KmlFolder(new[]  {
                        new KmlPlacemark {
                            Name = "pm-1"
                        }
                    }
                                  )
                }
            };
            var vm = new StepPickViewModel
            {
                KmlObjectsTree =
                {
                    FoldersToInclude        =
                    {
                        new KmlFolderNodeViewModel(kmlDocument.Folders[0])
                        {
                            Enabled  = true,
                            Children =
                            {
                                new KmlPlacemarkNodeViewModel(kmlDocument.Folders[0].Placemarks[0], null)
                                {
                                    Enabled = false
                                }
                            }
                        }
                    }
                }
            };

            _presenter.SetupGet(x => x.ViewModel).Returns(vm);
            _presenter.Object.SetDocument(kmlDocument);
            _userSessionMock.SetupProperty(x => x.Document);

            // Act
            var result = await _presenter.Object.BeforeGoNext();

            // Verify
            Assert.IsFalse(result);
        }
        public async Task When_going_next_the_session_is_updated()
        {
            // Arrange
            var kmlDocument = new KmlDocument {
                Folders =
                {
                    new KmlFolder("folder-1"),
                    new KmlFolder("folder-2", new[] {
                        new KmlPlacemark {
                            Name = "pm-1"
                        },
                        new KmlPlacemark {
                            Name = "pm-2"
                        }
                    }
                                  )
                }
            };
            var vm = new StepPickViewModel {
                KmlObjectsTree =
                {
                    FoldersToInclude        =
                    {
                        new KmlFolderNodeViewModel(kmlDocument.Folders[0])
                        {
                            Enabled         = false
                        },
                        new KmlFolderNodeViewModel(kmlDocument.Folders[1])
                        {
                            Enabled  = true,
                            Children =
                            {
                                new KmlPlacemarkNodeViewModel(kmlDocument.Folders[1].Placemarks[0], null)
                                {
                                    Enabled = false
                                },
                                new KmlPlacemarkNodeViewModel(kmlDocument.Folders[1].Placemarks[1], null)
                                {
                                    Enabled = true
                                }
                            }
                        }
                    }
                }
            };

            _presenter.SetupGet(x => x.ViewModel).Returns(vm);
            _presenter.Object.SetDocument(kmlDocument);
            _userSessionMock.SetupProperty(x => x.Document);

            // Act
            var result = await _presenter.Object.BeforeGoNext();

            // Verify
            Assert.IsTrue(result);
            Assert.AreEqual(kmlDocument.Title, _userSessionMock.Object.Document.Title);
            Assert.AreEqual(1, _userSessionMock.Object.Document.Folders.Count);
            Assert.AreEqual(kmlDocument.Folders[1].Name, _userSessionMock.Object.Document.Folders[0].Name);
            Assert.AreEqual(1, _userSessionMock.Object.Document.Folders[0].Placemarks.Count);
            Assert.AreEqual(kmlDocument.Folders[1].Placemarks[1].Name, _userSessionMock.Object.Document.Folders[0].Placemarks[0].Name);
        }