Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Maupin <ermaup@microsoft.com>2017-07-03 17:56:47 +0300
committerEric Maupin <ermaup@microsoft.com>2017-07-03 17:56:49 +0300
commitd229ce873eafbac47b58080b39ff498aa0ffeecc (patch)
tree0cdeb22d7083a417bfaadf7b583870980607c9b7 /Xamarin.PropertyEditing.Tests/PredefinedValuesViewModelTests.cs
parent81983e0919deb9ac9be34acf9ccdb3b0ea09ce07 (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.cs29
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; }