diff --git a/AnnoDesigner/ViewModels/PresetsTreeViewModel.cs b/AnnoDesigner/ViewModels/PresetsTreeViewModel.cs index 48f8b03a..f2d6fc8f 100644 --- a/AnnoDesigner/ViewModels/PresetsTreeViewModel.cs +++ b/AnnoDesigner/ViewModels/PresetsTreeViewModel.cs @@ -203,10 +203,17 @@ public void LoadItems(BuildingPresets buildingPresets) var groupedGames = filteredBuildingList.GroupBy(x => x.Header).OrderBy(x => x.Key); foreach (var curGame in groupedGames) { + var gameHeader = curGame.Key; + var gameVersion = GetGameVersion(curGame.Key); + if (gameVersion == CoreConstants.GameVersion.Unknown) + { + gameHeader = _localizationHelper.GetLocalization(curGame.Key); + } + var gameItem = new GameHeaderTreeItem { - Header = curGame.Key, - GameVersion = GetGameVersion(curGame.Key), + Header = gameHeader, + GameVersion = gameVersion, Id = ++itemId }; diff --git a/Tests/AnnoDesigner.Tests/PresetsTreeViewModelTests.cs b/Tests/AnnoDesigner.Tests/PresetsTreeViewModelTests.cs index 9de3c855..09879b52 100644 --- a/Tests/AnnoDesigner.Tests/PresetsTreeViewModelTests.cs +++ b/Tests/AnnoDesigner.Tests/PresetsTreeViewModelTests.cs @@ -381,6 +381,72 @@ public void LoadItems_BuildingsHaveHeader_ShouldSetCorrectGameVersion(string hea Assert.Equal(expectedGameVersion, (viewModel.Items[2] as GameHeaderTreeItem).GameVersion); } + [Fact] + public void LoadItems_BuildingHeaderIsUnknownGameVersion_ShouldGetLocalizationForHeader() + { + // Arrange + var expectedLocalization = "localized dummy"; + + var mockedLocalizationHelper = new Mock(); + mockedLocalizationHelper.Setup(x => x.GetLocalization(It.IsAny())).Returns(x => expectedLocalization); + mockedLocalizationHelper.Setup(x => x.GetLocalization(It.IsAny(), It.IsAny())).Returns((string value, string langauge) => expectedLocalization); + + var viewModel = new PresetsTreeViewModel(mockedLocalizationHelper.Object, _mockedCommons); + + var buildings = new List + { + new BuildingInfo + { + Header = "dummy" + } + }; + + var buildingPresets = new BuildingPresets(); + buildingPresets.Buildings = buildings; + + // Act + viewModel.LoadItems(buildingPresets); + + // Assert + //first 2 items always the road items + Assert.Equal(expectedLocalization, (viewModel.Items[2] as GameHeaderTreeItem).Header); + } + + [Theory] + [InlineData("(A4) Anno 1404")] + [InlineData("(A5) Anno 2070")] + [InlineData("(A6) Anno 2205")] + [InlineData("(A7) Anno 1800")] + public void LoadItems_BuildingHeaderIsKnownGameVersion_ShouldNotGetLocalizationForHeader(string headerToSet) + { + // Arrange + var mockedLocalizationHelper = new Mock(); + mockedLocalizationHelper.Setup(x => x.GetLocalization(headerToSet)).Returns(x => x); + mockedLocalizationHelper.Setup(x => x.GetLocalization(headerToSet, It.IsAny())).Returns((string value, string langauge) => value); + + var viewModel = new PresetsTreeViewModel(mockedLocalizationHelper.Object, _mockedCommons); + + var buildings = new List + { + new BuildingInfo + { + Header = headerToSet + } + }; + + var buildingPresets = new BuildingPresets(); + buildingPresets.Buildings = buildings; + + // Act + viewModel.LoadItems(buildingPresets); + + // Assert + //first 2 items always the road items + Assert.Equal(headerToSet, (viewModel.Items[2] as GameHeaderTreeItem).Header); + mockedLocalizationHelper.Verify(x => x.GetLocalization(headerToSet), Times.Never()); + mockedLocalizationHelper.Verify(x => x.GetLocalization(headerToSet, It.IsAny()), Times.Never()); + } + [Theory] [InlineData("Ark")] [InlineData("Harbour")]