Exemplo n.º 1
0
        public void ImportConfiguration_ShouldShowImportDialog()
        {
            // arrange
            var            mainViewMock     = new Mock <IMainView>();
            var            modelMock        = new Mock <IHostManager>();
            var            importViewDialog = new Mock <IImportFileView>();
            EConfiguration configToImport   = new EConfiguration()
            {
                Name = "Test", Content = "test"
            };

            var factoryMock   = new Mock <IViewFactory>();
            var mainPresenter = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            factoryMock.Setup(fm => fm.Create("ImportView")).Returns(importViewDialog.Object).Verifiable();
            modelMock.Setup(mm => mm.ReadExternalConfig("C:\\test.txt")).Returns(configToImport).Verifiable();

            importViewDialog.Setup(iv => iv.ShowDialog()).Returns(DialogResult.Cancel).Verifiable();

            // Act
            mainPresenter.ImportConfig();

            // assert
            importViewDialog.Verify();
        }
        public void Save_WhenConfigurationExists_ShouldShowConfirmationMessage()
        {
            // arrange
            var            importPresenter = new ImportPresenter(_viewMock.Object, _modelMock.Object);
            EConfiguration configToImport  = new EConfiguration()
            {
                Name = "Test", Content = "test"
            };

            _viewMock.Setup(vm => vm.ConfigName).Returns("test");
            _viewMock.Setup(vm => vm.Path).Returns("C:\\test.host");

            _modelMock.Setup(mm => mm.Exists(configToImport)).Returns(true);
            _modelMock.Setup(mm => mm.ReadExternalConfig("C:\\test.host")).Returns(configToImport);

            // Act
            importPresenter.Import();

            // assert
            _viewMock.Verify(
                mv =>
                mv.ShowMessage(
                    MessageType.YesNo,
                    Language.OverwriteMessage_Tittle,
                    Language.OverWriteMessage_Text)
                );
        }
Exemplo n.º 3
0
        public void DeleteConfiguration_WhenUserSelectNo_ShouldDoNothing()
        {
            // arrange
            var mainViewMock = new Mock <IMainView>();
            var modelMock    = new Mock <IHostManager>();

            EConfiguration configToDelete = new EConfiguration()
            {
                Name = "Test", Content = "test"
            };
            var factoryMock   = new Mock <IViewFactory>();
            var mainPresenter = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            mainViewMock.Setup(mv => mv.SelectedConfiguration).Returns(configToDelete);
            mainViewMock.Setup(
                mv => mv.ShowMessage(
                    MessageType.YesNo,
                    Language.Warning_Tittle,
                    Language.DeleteConfirmation_Text))
            .Returns(DialogResult.No)
            .Verifiable();

            // act
            mainPresenter.Delete();

            // assert
            modelMock.Verify(mm => mm.DeleteConfig(configToDelete), Times.Never);
            mainViewMock.Verify();
        }
        public void Import()
        {
            List <ValidationError> errors = new List <ValidationError>();

            try
            {
                if (!_validator.TryValidate(_view, errors))
                {
                    _view.ShowMessage(MessageType.Error, _messageTable["ErrorCaption"],
                                      string.Join(Environment.NewLine, errors.Select(e => e.ErrorMessage)));
                }
                else
                {
                    EConfiguration config = GetConfig();
                    if (_model.Exists(config))
                    {
                        if (_view.ShowMessage(MessageType.YesNo, _messageTable["RewriteCaption"], _messageTable["RewriteMessage"]) == DialogResult.Yes)
                        {
                            SaveConfig(config);
                        }
                    }
                    else
                    {
                        SaveConfig(config);
                    }
                }
            }
            catch (Exception exception)
            {
                ShowExceptionErrorMessage(exception);
            }
        }
Exemplo n.º 5
0
        public void SetConfig_WhenUnexpectedExceptionIsTrhown_ShouldThrowErrorMessage()
        {
            // arrange
            var mainViewMock     = new Mock <IMainView>();
            var modelMock        = new Mock <IHostManager>();
            var exceptionToThrow = new ArgumentNullException("configuration", "La configuración no puede ser nula");
            var configToLoad     = new EConfiguration()
            {
                Name = "Test", Content = "test"
            };
            var factoryMock   = new Mock <IViewFactory>();
            var mainPresenter = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            modelMock.Setup(mm => mm.LoadConfig(configToLoad))
            .Throws(exceptionToThrow);
            mainViewMock.Setup(mv => mv.SelectedConfiguration).Returns(configToLoad);
            mainViewMock.Setup(
                mv => mv.ShowMessage(
                    MessageType.Error,
                    Language.UnexpectedError_Tittle,
                    string.Format(Language.UnexpectedError_Text, exceptionToThrow.Message)))
            .Verifiable();

            // Act
            mainPresenter.SetConfig();

            // assert
            mainViewMock.Verify();
        }
Exemplo n.º 6
0
        public void SetConfig_ShouldDisplaySuccessMessage()
        {
            // arrange
            var mainViewMock = new Mock <IMainView>();
            var modelMock    = new Mock <IHostManager>();
            var configToLoad = new EConfiguration()
            {
                Name    = "Test",
                Content = "#Example\r\n127.0.0.1\tlocalhost"
            };
            var factoryMock   = new Mock <IViewFactory>();
            var mainPresenter = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            modelMock.Setup(mm => mm.LoadConfig(configToLoad)).Verifiable();
            mainViewMock.Setup(mv => mv.SelectedConfiguration).Returns(configToLoad);
            mainViewMock.Setup(
                mv =>
                mv.ShowMessage(MessageType.Info, Language.Success_Tittle,
                               string.Format(Language.SuccessSetConfiguration_Text, configToLoad.Name)))
            .Verifiable();
            // Act
            mainPresenter.SetConfig();

            // assert
            modelMock.Verify();
            mainViewMock.Verify();
        }
        private EConfiguration GetConfig()
        {
            EConfiguration config = _model.ReadExternalConfig(_view.Path);

            config.Name = _view.ConfigName;
            return(config);
        }
        public void Save_OnExistingConfigWhenUserSelectNo_ShouldDoNothing()
        {
            // arrange
            var            importPresenter = new ImportPresenter(_viewMock.Object, _modelMock.Object);
            EConfiguration configToImport  = new EConfiguration()
            {
                Name = "Test", Content = "test"
            };

            _viewMock.Setup(vm => vm.ConfigName).Returns("test");
            _viewMock.Setup(vm => vm.Path).Returns("C:\\test.host");
            _viewMock.Setup(mv =>
                            mv.ShowMessage(MessageType.YesNo, Language.OverwriteMessage_Tittle,
                                           Language.OverWriteMessage_Text))
            .Returns(DialogResult.No);
            _modelMock.Setup(mm => mm.Exists(configToImport)).Returns(true);
            _modelMock.Setup(mm => mm.ReadExternalConfig("C:\\test.host")).Returns(configToImport);

            // Act
            importPresenter.Import();

            // assert
            _modelMock.Verify(
                mm =>
                mm.AddConfig(configToImport),
                Times.Never);
        }
Exemplo n.º 9
0
        public void GetConfig_WhenValidFileIsProvided_ShouldReturnSingleConfiguration()
        {
            // arrange
            var expectedConfiguration = new EConfiguration()
            {
                Name = "file", Content = "TestContent"
            };

            var fileManagerMoq = new Mock <IFileHelper>();
            var model          = new ModelStub(fileManagerMoq.Object);

            fileManagerMoq.Setup(
                fm => fm.Exists(It.IsAny <string>())).Returns(true);

            fileManagerMoq.Setup(
                fm => fm.ReadAllText(It.IsAny <string>()))
            .Returns("TestContent").Verifiable();


            // act
            var configuration = model.ReadExternalConfig("D:\\file.host");

            // assert
            Assert.AreEqual(configuration, expectedConfiguration);
        }
Exemplo n.º 10
0
 private void SaveConfig(EConfiguration config)
 {
     _model.AddConfig(config);
     _view.ShowMessage(MessageType.Info,
                       _messageTable["SuccessImportCaption"],
                       _messageTable["SuccessImportMessage"]);
     _view.DialogResult = DialogResult.OK;
     _view.Close();
 }
Exemplo n.º 11
0
        public void LoadConfig_WhenIsNull_ShouldThrowArgumentNullException()
        {
            // arrange
            var            fileManagerMoq = new Mock <IFileHelper>();
            var            model          = new ModelStub(fileManagerMoq.Object);
            EConfiguration configuration  = null;

            // act
            model.LoadConfig(configuration);
        }
Exemplo n.º 12
0
        public void Save_WhenNewConfigModeIsOn_ShouldCheckIfAnotherConfigurationWithTheSameNameExists()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);
            _viewMock.Setup(vm => vm.EditMode).Returns(EditMode.New);

            // act
            presenter.Save();

            // assert
            _modelMock.Verify(mm => mm.Exists(editedConfiguration), Times.Once);
        }
Exemplo n.º 13
0
        public void Save_WhenConfigurationIsNotChanged_ShouldDoNothing()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(false);

            // act
            presenter.Save();

            // assert
            _viewMock.Verify(vm => vm.Close());
            _modelMock.Verify(mm => mm.AddConfig(editedConfiguration), Times.Never);
        }
Exemplo n.º 14
0
        public void Cancel_ShouldCloseView()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(false);

            // act
            presenter.Cancel();

            // assert
            _viewMock.VerifySet(vm => vm.DialogResult = DialogResult.Cancel);
            _viewMock.Verify(vm => vm.Close());
        }
Exemplo n.º 15
0
        public void Cancel_WhenNoIsSelected_ShouldDoNothing()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);
            _viewMock.Setup(vm => vm.ShowMessage(It.IsAny <MessageType>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(DialogResult.No);
            // act
            presenter.Cancel();

            // assert
            _viewMock.VerifySet(vm => vm.DialogResult = DialogResult.Cancel, Times.Never);
            _viewMock.Verify(vm => vm.Close(), Times.Never);
        }
Exemplo n.º 16
0
        public void Save_WhenConfigurationIsCorrectAndChangesAreMaded_ShouldSaveConfiguration()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);

            // act
            presenter.Save();

            // assert
            _viewMock.VerifySet(vm => vm.DialogResult = DialogResult.OK);
            _viewMock.Verify(vm => vm.Close());
            _modelMock.Verify(mm => mm.AddConfig(editedConfiguration), Times.Once);
        }
Exemplo n.º 17
0
        public void Save_WhenNewConfig_ShouldSaveConfiguration()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);
            _viewMock.Setup(vm => vm.EditMode).Returns(EditMode.New);
            _modelMock.Setup(mm => mm.Exists(editedConfiguration)).Returns(false);

            // act
            presenter.Save();

            // assert
            _modelMock.Verify(mm => mm.AddConfig(editedConfiguration), Times.Once);
        }
Exemplo n.º 18
0
        public void Save_WhenContentIsEmpty_ShoulDisplayErrorMessage()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();

            // act
            presenter.Save();

            // assert
            _viewMock.Verify(
                vm => vm.ShowMessage(
                    MessageType.Error,
                    Language.Error_Data_Tittle,
                    Language.Error_EmptyContent_Text),
                Times.Once);
        }
Exemplo n.º 19
0
        public void Cancel_WhenChangesAreMade_ShouldShowAConfirmationMessage()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);

            // act
            presenter.Cancel();

            // assert
            _viewMock.Verify(
                vm => vm.ShowMessage(
                    MessageType.YesNo,
                    Language.Warning_Tittle,
                    Language.EditCancel_Confirmation));
        }
Exemplo n.º 20
0
        public void Save_WhenNameContainsIlegalCharacters_ShoulDisplayErrorMessage()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, ">?te<st", "test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();

            // act
            presenter.Save();

            // assert
            _viewMock.Verify(
                vm => vm.ShowMessage(
                    MessageType.Error,
                    Language.Error_Data_Tittle,
                    Language.Error_InvalidNameFormat_Text),
                Times.Once);
        }
Exemplo n.º 21
0
        public void SetConfig_WhenConfigurationIsInvalid_ShouldThrowErrorMessage()
        {
            // arrange
            var            mainViewMock  = new Mock <IMainView>();
            var            modelMock     = new Mock <IHostManager>();
            EConfiguration configToLoad  = new EConfiguration();
            var            factoryMock   = new Mock <IViewFactory>();
            var            mainPresenter = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            mainViewMock.Setup(mv => mv.SelectedConfiguration).Returns(configToLoad);
            mainViewMock.Setup(
                mv => mv.ShowMessage(
                    MessageType.Error, Language.InvalidConfigurationError_Tittle,
                    Language.InvalidConfigurationError_Text)).Verifiable();
            // Act
            mainPresenter.SetConfig();

            // assert
            mainViewMock.Verify();
        }
Exemplo n.º 22
0
        public void AddConfig_WhenValidConfigurationIsProvided_ShouldSaveConfigurationIntoFile()
        {
            var fileManagerMoq = new Mock <IFileHelper>();
            var model          = new ModelStub(fileManagerMoq.Object);
            var configuration  = new EConfiguration()
            {
                Content = "#File content \\n 192.28.129.100\tsomepage.com",
                Name    = "test"
            };
            string expectedFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                   Path.ChangeExtension(configuration.Name, ".host"));

            fileManagerMoq.Setup(fm => fm.WriteAllText(expectedFilename, configuration.Content)).Verifiable();

            // act
            model.AddConfig(configuration);

            // assert
            fileManagerMoq.Verify();
        }
        public void LoadConfig(EConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration), "La configuración no puede ser nula");
            }
            if (string.IsNullOrWhiteSpace(configuration.Name))
            {
                throw new ArgumentException("Se debe especificar" +
                                            " un nombre para la nueva " +
                                            "configuración", "configuration");
            }
            if (string.IsNullOrWhiteSpace(configuration.Content))
            {
                throw new ArgumentException("El contenido de la configuración no puede ser nulo", "configuration");
            }

            FileHelper.WriteAllText(HostsFilePath,
                                    configuration.Content);
        }
Exemplo n.º 24
0
        public void BackupConfig(bool showSuccessMessage)
        {

            try
            {
                EConfiguration currentConfiguration = _model.ReadExternalConfig(_model.HostsFilePath);
                currentConfiguration.Name = "Current";
                _model.AddConfig(currentConfiguration);
                UpdateView();
                if (showSuccessMessage)
                    _view.ShowMessage(MessageType.Info, LocalizableStringHelper.GetLocalizableString("Success_Tittle"),
                        LocalizableStringHelper.GetLocalizableString("BackupSuccess_Text"));
            }
            catch (Exception exception)
            {
                _view.ShowMessage(
                    MessageType.Error,
                    LocalizableStringHelper.GetLocalizableString("UnexpectedError_Text"),
                    string.Format(LocalizableStringHelper.GetLocalizableString("BackupError_Text"), exception.Message));
            }
        }
Exemplo n.º 25
0
        public void EditConfig_ShouldDisplayEditDialog()
        {
            // arrange
            var mainViewMock        = new Mock <IMainView>();
            var modelMock           = new Mock <IHostManager>();
            var editViewMock        = new Mock <IEditView>();
            var configurationToEdit = new EConfiguration(0, "Test", "Test");
            var factoryMock         = new Mock <IViewFactory>();
            var mainPresenter       = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            mainViewMock.Setup(mv => mv.SelectedConfiguration).Returns(configurationToEdit);
            factoryMock.Setup(fm => fm.Create("EditView")).Returns(editViewMock.Object).Verifiable();

            //act
            mainPresenter.Edit();

            //assert
            editViewMock.Verify(ev => ev.ShowDialog(), Times.Once);
            editViewMock.VerifySet(ev => ev.Configuration = configurationToEdit, Times.Once);
            editViewMock.VerifySet(ev => ev.EditMode      = EditMode.Edit, Times.Once);
        }
Exemplo n.º 26
0
        public void SetConfig_ShouldLoadConfigurationFile()
        {
            // arrange
            var mainViewMock = new Mock <IMainView>();
            var modelMock    = new Mock <IHostManager>();
            var configToLoad = new EConfiguration()
            {
                Name    = "Test",
                Content = "#Example\r\n127.0.0.1\tlocalhost"
            };
            var factoryMock   = new Mock <IViewFactory>();
            var mainPresenter = new MainPresenter(mainViewMock.Object, factoryMock.Object, modelMock.Object);

            modelMock.Setup(mm => mm.LoadConfig(configToLoad)).Verifiable();
            mainViewMock.Setup(mv => mv.SelectedConfiguration).Returns(configToLoad);
            // Act
            mainPresenter.SetConfig();

            // assert
            modelMock.Verify();
        }
Exemplo n.º 27
0
        public void Save_WhenConfigurationIsSaved_ShouldDisplaySuccessMessage()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);

            // act
            presenter.Save();

            // assert
            _viewMock.Verify(
                vm => vm.ShowMessage(
                    MessageType.Info,
                    Language.Success_Tittle,
                    Language.SuccessEdit_Text), Times.Once);
            _viewMock.VerifySet(vm => vm.DialogResult = DialogResult.OK);
            _viewMock.Verify(vm => vm.Close());
        }
Exemplo n.º 28
0
        public void Save_WhenUnexpectedExceptionIsThrown_ShouldDisplayError()
        {
            // arrange
            var presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var editedConfiguration = new EConfiguration(0, "test", "Test");
            var exceptionToThrow    = new Exception("Unknown Error");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);
            _modelMock.Setup(mm => mm.AddConfig(editedConfiguration)).Throws(exceptionToThrow);

            // act
            presenter.Save();

            // assert
            _viewMock.Verify(
                vm => vm.ShowMessage(
                    MessageType.Error,
                    Language.UnexpectedError_Tittle,
                    string.Format(Language.UnexpectedError_Text, exceptionToThrow.Message)));
        }
Exemplo n.º 29
0
        public void Save_WhenNewConfigAnotherConfigExists_ShouldDisplayConfirmationMessage()
        {
            // arrange
            EditPresenter presenter           = new EditPresenter(_viewMock.Object, _modelMock.Object);
            var           editedConfiguration = new EConfiguration(0, "test", "Test");

            _viewMock.Setup(vm => vm.Configuration).Returns(editedConfiguration).Verifiable();
            _viewMock.Setup(vm => vm.IsDirty).Returns(true);
            _viewMock.Setup(vm => vm.EditMode).Returns(EditMode.New);
            _modelMock.Setup(mm => mm.Exists(editedConfiguration)).Returns(true);

            // act
            presenter.Save();

            // assert
            _viewMock.Verify(
                vm => vm.ShowMessage(
                    MessageType.YesNo,
                    Language.OverwriteMessage_Tittle,
                    Language.OverWriteMessage_Text));
        }
Exemplo n.º 30
0
        public void LoadConfig_WhenConfigurationContentIsEmptyOrNull_ShouldThrowArgumentNullException()
        {
            // arrange
            var fileManagerMoq = new Mock <IFileHelper>();
            var model          = new ModelStub(fileManagerMoq.Object);
            var configuration  = new EConfiguration()
            {
                Name    = "file",
                Content = ""
            };

            fileManagerMoq.Setup(
                fm => fm.WriteAllText(It.Is <string>(s => s.ToLower() == "C:\\Windows\\system32\\drivers\\etc\\hosts".ToLower()),
                                      It.Is <string>(s => s == configuration.Content)))
            .Verifiable();

            // act
            model.LoadConfig(configuration);

            // assert
            fileManagerMoq.Verify();
        }
 /// <summary>
 /// Initializes a new attribute.
 /// </summary>
 /// <param name="config">The configuration(s) for which the module can be built.</param>
 public ConfigurationFilterAttribute(
     EConfiguration config)
 {
     this.Configuration = config;
 }
 Includes(
     EConfiguration other)
 {
     return (other == (this.Configuration & other));
 }