public void TestSave() { var languageModels = new[] { new LanguageModel("test", "test", "t1"), new LanguageModel("test2", "test2", "t2") }; var language = new LanguageStateModel { Name = languageModels.Last().Name, Code = languageModels.Last().Code }; var localizationServiceMock = new Mock <ILocalizationService>(); localizationServiceMock .Setup(m => m.GetSavedLanguage()) .Returns(language); localizationServiceMock .Setup(m => m.SaveLanguage(It.Is <LanguageStateModel>(l => l.Code == languageModels.First().Code&& l.Name == languageModels.First().Name))) .Verifiable(); var languageManagerMock = new Mock <ILanguageManager>(); languageManagerMock .SetupGet(m => m.AllLanguages) .Returns(languageModels); languageManagerMock .Setup(m => m.SetLanguage(languageModels.First())) .Verifiable(); var viewModel = new LanguageSettingsViewModel(localizationServiceMock.Object, languageManagerMock.Object); viewModel.Activate(); viewModel.CurrentLanguage = viewModel.Languages.First(); Assert.True(viewModel.IsChanged); viewModel.SaveChanges(); languageManagerMock .Verify(m => m.SetLanguage(languageModels.First()), Times.Once); localizationServiceMock .Verify(m => m.SaveLanguage(It.Is <LanguageStateModel>(l => l.Code == languageModels.First().Code&& l.Name == languageModels.First().Name)), Times.Once); }
public void SaveLanguage(LanguageStateModel languageModel) { if (languageModel is null) { throw new ArgumentNullException(nameof(languageModel)); } if (string.IsNullOrEmpty(languageModel.Name)) { throw new ArgumentException($"{nameof(languageModel.Name)} can't be empty."); } if (string.IsNullOrEmpty(languageModel.Code)) { throw new ArgumentException($"{nameof(languageModel.Code)} can't be empty."); } using var uow = _unitOfWorkFactory.Create(); var repository = uow.GetRepository <Language>(); var language = CreateFrom(languageModel); repository.Upsert(LanguageSettingsId, language); }
private static Language CreateFrom(LanguageStateModel model) =>
private static Language CreateFrom(LanguageStateModel model) => new Language { Code = model.Code, Name = model.Name };