summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.UnitTests/ThicknessTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/ThicknessTests.cs')
-rw-r--r--Xamarin.Forms.Core.UnitTests/ThicknessTests.cs132
1 files changed, 132 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/ThicknessTests.cs b/Xamarin.Forms.Core.UnitTests/ThicknessTests.cs
new file mode 100644
index 00000000..2ba08269
--- /dev/null
+++ b/Xamarin.Forms.Core.UnitTests/ThicknessTests.cs
@@ -0,0 +1,132 @@
+using NUnit.Framework;
+using System;
+using System.Globalization;
+using System.Security.Cryptography.X509Certificates;
+
+
+namespace Xamarin.Forms.Core.UnitTests
+{
+ [TestFixture]
+ public class ThicknessTests : BaseTestFixture
+ {
+ [Test]
+ public void Constructor ()
+ {
+ var thickness = new Thickness ();
+
+ Assert.AreEqual (0, thickness.Left);
+ Assert.AreEqual (0, thickness.Top);
+ Assert.AreEqual (0, thickness.Right);
+ Assert.AreEqual (0, thickness.Bottom);
+ Assert.AreEqual (0, thickness.HorizontalThickness);
+ Assert.AreEqual (0, thickness.VerticalThickness);
+ }
+
+ [Test]
+ public void UniformParameterizedConstructor()
+ {
+ var thickness = new Thickness(3);
+
+ Assert.AreEqual(3, thickness.Left);
+ Assert.AreEqual(3, thickness.Top);
+ Assert.AreEqual(3, thickness.Right);
+ Assert.AreEqual(3, thickness.Bottom);
+ Assert.AreEqual(6, thickness.HorizontalThickness);
+ Assert.AreEqual(6, thickness.VerticalThickness);
+ }
+
+ [Test]
+ public void HorizontalVerticalParameterizedConstructor()
+ {
+ var thickness = new Thickness(4, 5);
+
+ Assert.AreEqual(4, thickness.Left);
+ Assert.AreEqual(5, thickness.Top);
+ Assert.AreEqual(4, thickness.Right);
+ Assert.AreEqual(5, thickness.Bottom);
+ Assert.AreEqual(8, thickness.HorizontalThickness);
+ Assert.AreEqual(10, thickness.VerticalThickness);
+ }
+
+ [Test]
+ public void ParameterizedConstructor ()
+ {
+ var thickness = new Thickness (1, 2, 3, 4);
+
+ Assert.AreEqual (1, thickness.Left);
+ Assert.AreEqual (2, thickness.Top);
+ Assert.AreEqual (3, thickness.Right);
+ Assert.AreEqual (4, thickness.Bottom);
+ Assert.AreEqual (4, thickness.HorizontalThickness);
+ Assert.AreEqual (6, thickness.VerticalThickness);
+ }
+
+ [Test]
+ public void ParameterizedConstuctorDoubles ()
+ {
+ var thickness = new Thickness (1.2, 3.3, 4.2, 10.66);
+ Assert.AreEqual (1.2, thickness.Left);
+ Assert.AreEqual (3.3, thickness.Top);
+ Assert.AreEqual (4.2, thickness.Right);
+ Assert.AreEqual (10.66, thickness.Bottom);
+ Assert.AreEqual (5.4, thickness.HorizontalThickness);
+ Assert.AreEqual (13.96, thickness.VerticalThickness);
+ }
+
+ [Test]
+ public void Equality ()
+ {
+ Assert.False (new Thickness ().Equals (null));
+ Assert.False (new Thickness ().Equals ("Thickness"));
+ Assert.False (new Thickness ().Equals (new Thickness (1, 2, 3, 4)));
+ Assert.True (new Thickness ().Equals (new Thickness ()));
+
+ Assert.True (new Thickness () == new Thickness ());
+ Assert.True (new Thickness (4, 3, 2, 1) != new Thickness (1, 2, 3, 4));
+ }
+
+ [Test]
+ public void HashCode ([Range(3, 4)] double l1, [Range(3, 4)] double t1, [Range(3, 4)] double r1, [Range(3, 4)] double b1,
+ [Range(3, 4)] double l2, [Range(3, 4)] double t2, [Range(3, 4)] double r2, [Range(3, 4)] double b2)
+ {
+ bool result = new Thickness (l1, t1, r1, b1).GetHashCode () == new Thickness (l2, t2, r2, b2).GetHashCode ();
+ if (l1 == l2 && t1 == t2 && r1 == r2 && b1 == b2)
+ Assert.True (result);
+ else
+ Assert.False (result);
+ }
+
+ [Test]
+ public void ImplicitConversionFromSize ()
+ {
+ Thickness thickness = new Thickness();
+ Assert.DoesNotThrow (() => thickness = new Size (42, 84));
+ Assert.AreEqual (new Thickness (42, 84), thickness);
+
+ Assert.DoesNotThrow (() => thickness = 42);
+ Assert.AreEqual (new Thickness (42), thickness);
+ }
+
+ [Test]
+ public void TestThicknessTypeConverter ()
+ {
+ var converter = new ThicknessTypeConverter ();
+ Assert.True (converter.CanConvertFrom (typeof(string)));
+ Assert.AreEqual (new Thickness (1), converter.ConvertFromInvariantString ("1"));
+ Assert.AreEqual (new Thickness (1, 2), converter.ConvertFromInvariantString ("1, 2"));
+ Assert.AreEqual (new Thickness (1, 2, 3, 4), converter.ConvertFromInvariantString ("1, 2, 3, 4"));
+ Assert.AreEqual (new Thickness (1.1, 2), converter.ConvertFromInvariantString ("1.1,2"));
+ Assert.Throws<InvalidOperationException> (() => converter.ConvertFromInvariantString (""));
+ }
+
+ [Test]
+ public void ThicknessTypeConverterDoubles ()
+ {
+ var converter = new ThicknessTypeConverter ();
+ Assert.AreEqual (new Thickness (1.3), converter.ConvertFromInvariantString ("1.3"));
+ Assert.AreEqual (new Thickness (1.4, 2.8), converter.ConvertFromInvariantString ("1.4, 2.8"));
+ Assert.AreEqual (new Thickness (1.6, 2.1, 3.8, 4.2), converter.ConvertFromInvariantString (" 1.6 , 2.1, 3.8, 4.2"));
+ Assert.AreEqual (new Thickness (1.1, 2), converter.ConvertFromInvariantString ("1.1,2"));
+ }
+ }
+}