using System; namespace Prism.UnitTests { public class GradientStopTests : UnitTestSharp.TestFixture { public class CtorTests : UnitTestSharp.TestFixture { public void AssignsTheOffsetAndColor() { var stop = new GradientStop(0.25, Colors.Red); CheckEqual(0.25, stop.Offset); CheckEqual(Colors.Red, stop.Color); } public void OffsetsAtTheEnds_AreAllowed() { CheckEqual(0.0, new GradientStop(0, Colors.Red).Offset); CheckEqual(1.0, new GradientStop(1, Colors.Red).Offset); } public void OffsetBelowZero_Throws() { CheckThrow(typeof(ArgumentOutOfRangeException)); new GradientStop(-0.1, Colors.Red); } public void OffsetAboveOne_Throws() { CheckThrow(typeof(ArgumentOutOfRangeException)); new GradientStop(1.1, Colors.Red); } public void NaNOffset_Throws() { CheckThrow(typeof(ArgumentOutOfRangeException)); new GradientStop(double.NaN, Colors.Red); } } public class EqualityTests : UnitTestSharp.TestFixture { public void SameOffsetAndColor_AreEqual() { var first = new GradientStop(0.5, Colors.Red); var second = new GradientStop(0.5, Colors.Red); CheckTrue(first.Equals(second)); CheckTrue(first == second); CheckFalse(first != second); } public void ADifferentOffset_IsNotEqual() { CheckFalse(new GradientStop(0.5, Colors.Red).Equals(new GradientStop(0.25, Colors.Red))); CheckTrue(new GradientStop(0.5, Colors.Red) != new GradientStop(0.25, Colors.Red)); } public void ADifferentColor_IsNotEqual() { CheckFalse(new GradientStop(0.5, Colors.Red).Equals(new GradientStop(0.5, Colors.Blue))); } public void BoxedStop_IsEqualToTheSameStop() { CheckTrue(new GradientStop(0.5, Colors.Red).Equals((object)new GradientStop(0.5, Colors.Red))); } public void ANonStop_IsNotEqual() { CheckFalse(new GradientStop(0.5, Colors.Red).Equals("stop")); } public void EqualStops_HaveTheSameHashCode() { CheckEqual( new GradientStop(0.5, Colors.Red).GetHashCode(), new GradientStop(0.5, Colors.Red).GetHashCode()); } } } }