maui-linux/Xamarin.Forms.Core.UnitTests/ThicknessTests.cs

133 строки
4.4 KiB
C#

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"));
}
}
}