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) ); }
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); } }
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(); }
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); }
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); }
private void SaveConfig(EConfiguration config) { _model.AddConfig(config); _view.ShowMessage(MessageType.Info, _messageTable["SuccessImportCaption"], _messageTable["SuccessImportMessage"]); _view.DialogResult = DialogResult.OK; _view.Close(); }
public void LoadConfig_WhenIsNull_ShouldThrowArgumentNullException() { // arrange var fileManagerMoq = new Mock <IFileHelper>(); var model = new ModelStub(fileManagerMoq.Object); EConfiguration configuration = null; // act model.LoadConfig(configuration); }
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); }
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); }
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()); }
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); }
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); }
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); }
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); }
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)); }
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); }
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(); }
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); }
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)); } }
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); }
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(); }
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()); }
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))); }
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)); }
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)); }