diff options
author | Eric Maupin <ermaup@microsoft.com> | 2017-07-03 17:56:47 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2017-07-03 17:56:49 +0300 |
commit | d229ce873eafbac47b58080b39ff498aa0ffeecc (patch) | |
tree | 0cdeb22d7083a417bfaadf7b583870980607c9b7 /Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs | |
parent | 81983e0919deb9ac9be34acf9ccdb3b0ea09ce07 (diff) |
[Core] Fix duplicate values for valuenames
Value changing generally isn't a performance constraint and the number
of predefined values is generally going to be few, so we'll just ditch
the lookup and do it linearly.
Diffstat (limited to 'Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs')
-rw-r--r-- | Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs index 0f049a3..49b3ae3 100644 --- a/Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs +++ b/Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs @@ -88,6 +88,35 @@ namespace Xamarin.PropertyEditing.Tests Assert.That (changed, Is.True); } + [Test] + public void DuplicateValues () + { + T testValue = GetNonDefaultRandomTestValue (); + + var property = GetPropertyMock (); + var predefined = property.As<IHavePredefinedValues<T>> (); + predefined.SetupGet (p => p.PredefinedValues).Returns (new Dictionary<string, T> { + { "Value", testValue }, + { "SameValue", testValue } + }); + + var vm = GetViewModel (property.Object, new[] { GetBasicEditor (property.Object) }); + + Assume.That (vm.ValueName, Is.Not.EqualTo ("Value")); + vm.ValueName = "Value"; + Assert.That (vm.Value, Is.EqualTo (testValue)); + + bool changed = false; + vm.PropertyChanged += (sender, args) => { + if (args.PropertyName == nameof(vm.Value)) + changed = true; + }; + + vm.ValueName = "SameValue"; + Assert.That (vm.Value, Is.EqualTo (testValue)); + Assert.That (changed, Is.False); + } + protected abstract bool IsConstrained { get; } protected abstract IReadOnlyDictionary<string, T> Values { get; } |