using NUnit.Framework; namespace Xamarin.PropertyEditing.Tests { [TestFixture] internal class ValueInfoTests { [Test] public void ValueEquatable () { var left = new ValueInfo { Value = 5 }; var right = new ValueInfo { Value = 5 }; AssertEqual (left, right); } [Test] public void SourceEquatable () { var left = new ValueInfo { Source = ValueSource.Binding }; var right = new ValueInfo { Source = ValueSource.Binding }; AssertEqual (left, right); } [Test] public void DescriptorEquatable () { string description = "monkeys"; var left = new ValueInfo { ValueDescriptor = description }; var right = new ValueInfo { ValueDescriptor = description }; AssertEqual (left, right); } [Test] public void ValueButNotSourceUnequal () { var left = new ValueInfo { Value = 5, Source = ValueSource.Local }; var right = new ValueInfo { Value = 5, Source = ValueSource.Binding }; AssertNotEqual (left, right); } private void AssertNotEqual (ValueInfo left, ValueInfo right) { Assert.That (left, Is.Not.EqualTo (right)); Assert.That (left != right); if (left != null) Assert.That (left.GetHashCode (), Is.Not.EqualTo (right.GetHashCode ())); } private void AssertEqual (ValueInfo left, ValueInfo right) { Assert.That (left, Is.EqualTo (right)); Assert.That (left == right); if (left != null) Assert.That (left.GetHashCode (), Is.EqualTo (right.GetHashCode ())); } } }