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:
Diffstat (limited to 'Xamarin.PropertyEditing.Tests/PropertiesViewModelTests.cs')
-rw-r--r--Xamarin.PropertyEditing.Tests/PropertiesViewModelTests.cs95
1 files changed, 91 insertions, 4 deletions
diff --git a/Xamarin.PropertyEditing.Tests/PropertiesViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PropertiesViewModelTests.cs
index 824e9fb..ace3fb2 100644
--- a/Xamarin.PropertyEditing.Tests/PropertiesViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/PropertiesViewModelTests.cs
@@ -936,6 +936,7 @@ namespace Xamarin.PropertyEditing.Tests
var stringVms = vm.Properties.OfType<StringPropertyViewModel> ().ToList();
Assert.That (stringVms.Count, Is.EqualTo (3), "Not including correct number of properties with variants");
Assert.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
+ Assert.That (stringVms.First (svm => svm.Variation == null).HasVariantChildren, Is.True, "Did not report variant children");
Assert.That (stringVms.Count (svm => svm.Variation == variants[0]), Is.EqualTo (1), "Missing variant property");
Assert.That (stringVms.Count (svm => svm.Variation == variants[1]), Is.EqualTo (1), "Missing variant property");
}
@@ -968,12 +969,17 @@ namespace Xamarin.PropertyEditing.Tests
editor.SetupGet (oe => oe.TargetType).Returns (typeof (object).ToTypeInfo ());
editor.SetupGet (oe => oe.Target).Returns (target);
editor.SetupGet (oe => oe.Properties).Returns (new[] { property.Object });
- editor.Setup (oe => oe.GetPropertyVariantsAsync (property.Object)).ReturnsAsync (new[] { variants[1] });
+ editor.Setup (oe => oe.GetPropertyVariantsAsync (property.Object)).ReturnsAsync (new[] { variants[0], variants[1] });
editor.Setup (oe => oe.GetValueAsync<string> (property.Object, null)).ReturnsAsync (
new ValueInfo<string> {
Value = "Any",
Source = ValueSource.Local
});
+ editor.Setup (oe => oe.GetValueAsync<string> (property.Object, variants[0])).ReturnsAsync (
+ new ValueInfo<string> {
+ Value = "Compact",
+ Source = ValueSource.Local
+ });
editor.Setup (oe => oe.GetValueAsync<string> (property.Object, variants[1])).ReturnsAsync (
new ValueInfo<string> {
Value = "Compact+P3",
@@ -1005,9 +1011,11 @@ namespace Xamarin.PropertyEditing.Tests
vm.SelectedObjects.Add (target);
var stringVms = vm.Properties.OfType<StringPropertyViewModel> ().ToList ();
- Assume.That (stringVms.Count, Is.EqualTo (2), "Not including correct number of properties with variants");
- Assume.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
- Assume.That (stringVms.Count (svm => svm.Variation == variants[1]), Is.EqualTo (1), "Missing variant property");
+ Assert.That (stringVms.Count, Is.EqualTo (3), "Not including correct number of properties with variants");
+ Assert.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
+ Assert.That (stringVms.First (svm => svm.Variation == null).HasVariantChildren, Is.True, "Did not report variant children");
+ Assert.That (stringVms.Count (svm => svm.Variation == variants[0]), Is.EqualTo (1), "Missing variant property");
+ Assert.That (stringVms.Count (svm => svm.Variation == variants[1]), Is.EqualTo (1), "Missing variant property");
vm.SelectedObjects.Add (target2);
@@ -1105,6 +1113,84 @@ namespace Xamarin.PropertyEditing.Tests
}
[Test]
+ public void VariantsUpdated ()
+ {
+ var variations = new[] {
+ new PropertyVariationOption ("Width", "Compact"),
+ new PropertyVariationOption ("Width", "Regular"),
+ new PropertyVariationOption ("Gamut", "P3"),
+ new PropertyVariationOption ("Gamut", "sRGB"),
+ };
+
+ var property = new Mock<IPropertyInfo> ();
+ property.SetupGet (p => p.Name).Returns ("Variation");
+ property.SetupGet (p => p.Type).Returns (typeof (string));
+ property.SetupGet (p => p.RealType).Returns (typeof (string).ToTypeInfo ());
+ property.SetupGet (p => p.CanWrite).Returns (true);
+ property.SetupGet (p => p.ValueSources).Returns (ValueSources.Default | ValueSources.Local);
+ property.SetupGet (p => p.Variations).Returns (variations);
+
+ var properties = new ObservableCollection<IPropertyInfo> { property.Object };
+
+ var variation0 = new PropertyVariation (variations[0]);
+ var variation1 = new PropertyVariation (variations[0], variations[2]);
+ var variants = new List<PropertyVariation> {
+ variation0,
+ variation1
+ };
+
+ var target = new object ();
+ var editor = new Mock<IObjectEditor> ();
+ editor.SetupGet (oe => oe.TargetType).Returns (typeof (object).ToTypeInfo ());
+ editor.SetupGet (oe => oe.Target).Returns (target);
+ editor.SetupGet (oe => oe.Properties).Returns (properties);
+ editor.Setup (oe => oe.GetPropertyVariantsAsync (property.Object)).ReturnsAsync (variants);
+ editor.Setup (oe => oe.GetValueAsync<string> (property.Object, null)).ReturnsAsync (
+ new ValueInfo<string> {
+ Value = "Any",
+ Source = ValueSource.Local
+ });
+ editor.Setup (oe => oe.GetValueAsync<string> (property.Object, variation0)).ReturnsAsync (
+ new ValueInfo<string> {
+ Value = "Compact",
+ Source = ValueSource.Local
+ });
+ editor.Setup (oe => oe.GetValueAsync<string> (property.Object, variation1)).ReturnsAsync (
+ new ValueInfo<string> {
+ Value = "Compact+P3",
+ Source = ValueSource.Local
+ });
+
+ var provider = new Mock<IEditorProvider> ();
+ provider.Setup (p => p.GetObjectEditorAsync (target)).ReturnsAsync (editor.Object);
+
+ var vm = CreateVm (provider.Object);
+ vm.SelectedObjects.Add (target);
+
+ var stringVms = vm.Properties.OfType<StringPropertyViewModel> ().ToList ();
+ Assume.That (stringVms.Count, Is.EqualTo (3), "Not including correct number of properties with variants");
+ Assume.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
+ Assume.That (stringVms.First (svm => svm.Variation == null).HasVariantChildren, Is.True, "Did not report variant children");
+ Assume.That (stringVms.Count (svm => svm.Variation == variants[0]), Is.EqualTo (1), "Missing variant property");
+ Assume.That (stringVms.Count (svm => svm.Variation == variants[1]), Is.EqualTo (1), "Missing variant property");
+
+ variants.RemoveAt (1);
+ editor.Raise (oe => oe.PropertyChanged += null, new EditorPropertyChangedEventArgs (property.Object));
+
+ Assert.That (vm.Properties.Count, Is.EqualTo (2));
+ Assert.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
+ Assert.That (stringVms.First (svm => svm.Variation == null).HasVariantChildren, Is.True, "Did not report variant children");
+ Assert.That (stringVms.Count (svm => svm.Variation == variants[0]), Is.EqualTo (1), "Missing variant property");
+
+ variants.RemoveAt (0);
+ editor.Raise (oe => oe.PropertyChanged += null, new EditorPropertyChangedEventArgs (property.Object));
+
+ Assert.That (vm.Properties.Count, Is.EqualTo (1));
+ Assert.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
+ Assert.That (stringVms.First (svm => svm.Variation == null).HasVariantChildren, Is.False, "Did not update variant children");
+ }
+
+ [Test]
public void VariantsAddedWhenPropertyIs ()
{
var variations = new[] {
@@ -1231,6 +1317,7 @@ namespace Xamarin.PropertyEditing.Tests
stringVms = vm.Properties.OfType<StringPropertyViewModel> ().ToList ();
Assert.That (stringVms.Count, Is.EqualTo (3), "Not including correct number of properties with variants");
Assert.That (stringVms.Count (svm => svm.Variation == null), Is.EqualTo (1), "Did not include neutral property");
+ Assert.That (stringVms.First (svm => svm.Variation == null).HasVariantChildren, Is.True, "Did not report variant children");
Assert.That (stringVms.Count (svm => svm.Variation == variants[0]), Is.EqualTo (1), "Missing variant property");
Assert.That (stringVms.Count (svm => svm.Variation == variants[1]), Is.EqualTo (1), "Missing variant property");
}