using System; using System.Collections.Generic; using Moq; using NUnit.Framework; using Xamarin.PropertyEditing.ViewModels; namespace Xamarin.PropertyEditing.Tests { [TestFixture] internal class BoolViewModelTests : PropertyViewModelTests> { protected override bool GetRandomTestValue (Random rand) { return (rand.Next (0, 2) == 1); } protected override PropertyViewModel GetViewModel (TargetPlatform platform, IPropertyInfo property, IEnumerable editors) { return new PropertyViewModel (platform, property, editors); } } [TestFixture] internal class NullableBoolViewModelTests : PropertyViewModelTests> { protected override bool? GetRandomTestValue (Random rand) { return (rand.Next (0, 2) == 1); } protected override PropertyViewModel GetViewModel (TargetPlatform platform, IPropertyInfo property, IEnumerable editors) { return new PropertyViewModel (platform, property, editors); } [Test] public void NonNullableStillNullsOnDisagreeValues () { var prop = new Mock (); prop.SetupGet (pi => pi.Type).Returns (typeof(bool)); prop.SetupGet (pi => pi.ValueSources).Returns (ValueSources.Local | ValueSources.Default); var basicEditor = GetBasicEditor (true, prop.Object); var basicEditor2 = GetBasicEditor (false, prop.Object); var vm = GetViewModel (prop.Object, new [] { basicEditor, basicEditor2 }); Assert.That (vm.Value, Is.EqualTo (null)); Assert.That (vm.MultipleValues, Is.True); } } }