public void Ctor_ShouldSetCorrectNumberOfBuildingInfluences() { // Arrange/Act var viewModel = new BuildingSettingsViewModel(); var expectedCount = Enum.GetValues(typeof(BuildingInfluenceType)).Length; // Assert Assert.Equal(expectedCount, viewModel.BuildingInfluences.Count); }
public void UseColorInLayoutCommand_ShouldCanExecute() { // Arrange var viewModel = new BuildingSettingsViewModel(); // Act var result = viewModel.UseColorInLayoutCommand.CanExecute(null); // Assert Assert.True(result); }
public void UseColorInLayoutCommand_IsExecutedWithSerializableColor_ShouldSetSelectedColor() { // Arrange var viewModel = new BuildingSettingsViewModel(); var expectedColor = new SerializableColor(Colors.LimeGreen); // Act viewModel.UseColorInLayoutCommand.Execute(expectedColor); // Assert Assert.Equal(expectedColor, viewModel.SelectedColor); }
public void UseColorInLayoutCommand_IsExecutedWithNull_ShouldNotThrow() { // Arrange var viewModel = new BuildingSettingsViewModel(); var expectedColor = viewModel.SelectedColor; // Act viewModel.UseColorInLayoutCommand.Execute(null); // Assert Assert.Equal(expectedColor, viewModel.SelectedColor); }
public void GetDistanceRange_BuildingInfoIsNull_ShouldSetInfluenceRangeToZeroAndReturnFalse() { // Arrange var viewModel = new BuildingSettingsViewModel(); viewModel.BuildingInfluenceRange = -1; // Act var result = viewModel.GetDistanceRange(true, null); // Assert Assert.False(result); Assert.Equal(0, viewModel.BuildingInfluenceRange); }
public void Ctor_ShouldSetDefaultValues() { // Arrange/Act var viewModel = new BuildingSettingsViewModel(); // Assert Assert.NotNull(viewModel.ApplyColorToSelectionCommand); Assert.NotNull(viewModel.ApplyPredefinedColorToSelectionCommand); Assert.NotNull(viewModel.UseColorInLayoutCommand); Assert.Equal(Colors.Red, viewModel.SelectedColor); Assert.NotNull(viewModel.ColorsInLayout); Assert.NotNull(viewModel.BuildingInfluences); Assert.Equal(BuildingInfluenceType.None, viewModel.SelectedBuildingInfluence.Type); }
public void GetDistanceRange_IsNotPavedStreet_ShouldSetInfluenceRangeCorrect(int influenceRangeToSet, int expectedInfluenceRange, bool expectedResult) { // Arrange var viewModel = new BuildingSettingsViewModel(); viewModel.BuildingInfluenceRange = int.MaxValue; var mockedBuildingInfo = new Mock <IBuildingInfo>(); mockedBuildingInfo.SetupGet(x => x.InfluenceRange).Returns(() => influenceRangeToSet); // Act var result = viewModel.GetDistanceRange(false, mockedBuildingInfo.Object); // Assert Assert.Equal(expectedResult, result); Assert.Equal(expectedInfluenceRange, viewModel.BuildingInfluenceRange); }
public void GetDistanceRange_BuildingInfluenceRangeIsZeroOrLower_ShouldSetInfluenceRangeToZeroAndReturnFalse(int influenceRangeToSet) { // Arrange var viewModel = new BuildingSettingsViewModel(); viewModel.BuildingInfluenceRange = int.MaxValue; var mockedBuildingInfo = new Mock <IBuildingInfo>(); mockedBuildingInfo.SetupGet(x => x.InfluenceRange).Returns(() => influenceRangeToSet); // Act var result = viewModel.GetDistanceRange(true, mockedBuildingInfo.Object); // Assert Assert.False(result); Assert.Equal(0, viewModel.BuildingInfluenceRange); }
public void GetDistanceRange_IsPavedStreetAndBuildingIsCityInstitutionBuilding_ShouldIgnoreCase(int influenceRangeToSet, int expectedInfluenceRange, bool expectedResult) { // Arrange var viewModel = new BuildingSettingsViewModel(); viewModel.BuildingInfluenceRange = int.MaxValue; var mockedBuildingInfo = new Mock <IBuildingInfo>(); mockedBuildingInfo.SetupGet(x => x.InfluenceRange).Returns(() => influenceRangeToSet); mockedBuildingInfo.SetupGet(x => x.Template).Returns(() => "citYInsTitutIOnbuiLding"); // Act var result = viewModel.GetDistanceRange(true, mockedBuildingInfo.Object); // Assert Assert.Equal(expectedResult, result); Assert.Equal(expectedInfluenceRange, viewModel.BuildingInfluenceRange); }
public void SelectedBuildingInfluence_TypeIsGiven_ShouldAdjustInputVisibility(BuildingInfluenceType typeToSet, bool expectedRadiusVisible, bool expectedRangeVisible) { // Arrange var viewModel = new BuildingSettingsViewModel(); //to trigger PropertyChanged if (typeToSet != BuildingInfluenceType.None) { viewModel.SelectedBuildingInfluence = viewModel.BuildingInfluences.Single(x => x.Type == BuildingInfluenceType.None); } else { viewModel.SelectedBuildingInfluence = viewModel.BuildingInfluences.Single(x => x.Type == BuildingInfluenceType.Both); } viewModel.IsBuildingInfluenceInputRadiusVisible = !expectedRadiusVisible; viewModel.IsBuildingInfluenceInputRangeVisible = !expectedRangeVisible; // Act viewModel.SelectedBuildingInfluence = viewModel.BuildingInfluences.Single(x => x.Type == typeToSet); // Assert Assert.Equal(expectedRadiusVisible, viewModel.IsBuildingInfluenceInputRadiusVisible); Assert.Equal(expectedRangeVisible, viewModel.IsBuildingInfluenceInputRangeVisible); }