コード例 #1
0
        public void GivenCancel_WhenAdd_ThenDialogShown_AndPrinterNotAdded()
        {
            // Arrange
            var model = new PrinterConfigurationModel();
            var sut   = new PrintersConfigurationViewModel(
                _mockServiceProvider.Object,
                _mockPrinterConfigurationManagerService.Object);

            _mockPrinterConfigurationView.Setup(x => x.ShowDialog())
            .Returns(false);

            _mockServiceProvider.Setup(x => x.GetService(typeof(IPrinterConfigurationView)))
            .Returns(_mockPrinterConfigurationView.Object);

            _mockPrinterConfigurationView.SetupGet <PrinterConfigurationViewModel>(x => x.ViewModel)
            .Returns(new PrinterConfigurationViewModel()
            {
                Model = model
            });

            // Act
            sut.Add.Execute().Subscribe();

            // Assert
            _mockPrinterConfigurationManagerService.Verify(x => x.Add(
                                                               It.Is <PrinterConfigurationModel>(x => x == model)), Times.Never);
        }
コード例 #2
0
        public void GivenInstance_WhenClear_ThenPrintersCleared()
        {
            // Arrange
            var sut = new PrintersConfigurationViewModel(
                null,
                _mockPrinterConfigurationManagerService.Object);

            // Act
            sut.Clear.Execute().Subscribe();

            // Assert
            _mockPrinterConfigurationManagerService.Verify(x => x.Clear(), Times.Once);
        }
コード例 #3
0
        public void GivenInstance_AndNoSelectedPrinter_WhenRemove_ThenNoPrinterRemoved()
        {
            // Arrange
            var sut = new PrintersConfigurationViewModel(
                null,
                _mockPrinterConfigurationManagerService.Object);

            // Act
            sut.Remove.Execute().Subscribe();

            // Assert
            _mockPrinterConfigurationManagerService.Verify(x => x.Remove(
                                                               It.IsAny <PrinterConfigurationModel>()), Times.Never);
        }
コード例 #4
0
        public void GivenInstance_AndSelectedPrinter_WhenRemove_ThenPrinterRemoved_AndPrinterDeselected()
        {
            // Arrange
            var printer = new PrinterConfigurationModel();
            var sut     = new PrintersConfigurationViewModel(
                null,
                _mockPrinterConfigurationManagerService.Object)
            {
                SelectedPrinter = printer
            };

            // Act
            sut.Remove.Execute().Subscribe();

            // Assert
            _mockPrinterConfigurationManagerService.Verify(x => x.Remove(
                                                               It.Is <PrinterConfigurationModel>(x => x == printer)), Times.Once);
            Assert.Null(sut.SelectedPrinter);
        }
コード例 #5
0
        public void GivenInstance_WhenCancel_ThenCancelEventInvoked()
        {
            // Arrange
            var sut = new PrintersConfigurationViewModel(
                null,
                _mockPrinterConfigurationManagerService.Object);
            var cancelEventInvoked = false;

            sut.Cancelled += delegate
            {
                cancelEventInvoked = true;
            };

            // Act
            sut.Cancel.Execute().Subscribe();

            // Assert
            Assert.True(cancelEventInvoked);
        }
コード例 #6
0
        public void GivenInstance_WhenSave_ThenPrintersSaved_AndSavedEventInvoked()
        {
            // Arrange
            var sut = new PrintersConfigurationViewModel(
                null,
                _mockPrinterConfigurationManagerService.Object);
            var saveEventInvoked = false;

            sut.Saved += delegate
            {
                saveEventInvoked = true;
            };

            // Act
            sut.Save.Execute().Subscribe();

            // Assert
            _mockPrinterConfigurationManagerService.Verify(x => x.Save(), Times.Once);
            Assert.True(saveEventInvoked);
        }