public void no_overlay_when_created()
        {
            // ARRANGE
            // ACT
            var viewModel = new ChromeViewModel(_mainViewModel, _overlayService.Object);

            // ASSERT
            Assert.That(viewModel.HasOverlay, Is.False);
            Assert.That(viewModel.OverlayHeader, Is.Empty);
            Assert.That(viewModel.Overlay, Is.Null);
        }
        public void shows_overlay()
        {
            // ARRANGE
            var viewModel        = new ChromeViewModel(_mainViewModel, _overlayService.Object);
            var contentViewModel = new Mock <BaseViewModel>();
            var overlayViewModel = new OverlayViewModel("header 1", contentViewModel.Object, Disposable.Empty);

            // ACT
            _show.OnNext(overlayViewModel);

            // ASSERT
            Assert.That(viewModel.HasOverlay, Is.True);
            Assert.That(viewModel.OverlayHeader, Is.EqualTo("header 1"));
            Assert.That(viewModel.Overlay, Is.EqualTo(contentViewModel.Object));
        }
        public void clears_overlay()
        {
            // ARRANGE
            var viewModel        = new ChromeViewModel(_mainViewModel, _overlayService.Object);
            var contentViewModel = new Mock <BaseViewModel>();
            var overlayViewModel = new OverlayViewModel("header 1", contentViewModel.Object, Disposable.Empty);

            _show.OnNext(overlayViewModel);

            // ACT
            viewModel.CloseOverlayCommand.Execute(null);

            // ASSERT
            Assert.That(viewModel.HasOverlay, Is.False);
            Assert.That(viewModel.OverlayHeader, Is.Empty);
            Assert.That(viewModel.Overlay, Is.Null);
        }