Ejemplo n.º 1
0
        public void It_handles_class_identifiers()
        {
            var     helper    = new IdHelperForClassType <ClassId>();
            ClassId idDefault = default;
            var     id1       = new ClassId(1);
            var     id2       = new ClassId(2);

            // ReSharper disable ExpressionIsAlwaysNull
            helper.IsDefaultValue(idDefault).ShouldBeTrue();
            helper.IsDefaultValue(id1).ShouldBeFalse();
            helper.AreEqual(idDefault, idDefault).ShouldBeTrue();
            helper.AreEqual(id2, id2).ShouldBeTrue();
            helper.AreEqual(idDefault, id1).ShouldBeFalse();
            helper.Compare(idDefault, id1).ShouldBe(-1);
            helper.Compare(id1, idDefault).ShouldBe(1);
            helper.Compare(idDefault, idDefault).ShouldBe(0);
            helper.Compare(id1, id2).ShouldBe(-1);
            helper.Compare(id2, id1).ShouldBe(1);
            helper.Compare(id2, id2).ShouldBe(0);
            helper.GetHashCode(idDefault).ShouldBe(0);
            helper.GetHashCode(id1).ShouldBe(id1.GetHashCode());
            helper.GetHashCode(id2).ShouldBe(id2.GetHashCode());
            // ReSharper restore ExpressionIsAlwaysNull
        }
Ejemplo n.º 2
0
		public void Value_type_tuple()
		{
			// This is a bit contrived, just need an easy class (ie non-value type)
			var helper = new IdHelperForClassType<Tuple<int, int>>();

			var tuple1 = new Tuple<int, int>(1, 2);
			var tuple2 = new Tuple<int, int>(1, 3);

			var tuple1Again = new Tuple<int, int>(1, 2);

			Assert.AreEqual(true, helper.IsNull(null));
			Assert.AreEqual(true, helper.IsDefaultValue(null));
			Assert.AreEqual(false, helper.IsDefaultValue(tuple1));
			Assert.AreEqual(true, helper.AreEqual(null, null));
			Assert.AreEqual(true, helper.AreEqual(tuple1, tuple1Again));
			Assert.AreEqual(-1, helper.Compare(null, tuple1));
			Assert.AreEqual(-1, helper.Compare(tuple1, tuple2));
			Assert.AreEqual(+1, helper.Compare(tuple2, null));
			Assert.AreEqual(+1, helper.Compare(tuple2, tuple1));
			Assert.That(helper.Compare(null, null), Is.EqualTo(0));
			Assert.AreEqual(0, helper.Compare(tuple1, tuple1Again));
			Assert.AreEqual(tuple1.GetHashCode(), helper.GetHashCode(tuple1));
			Assert.AreEqual(0, helper.GetHashCode(null));
		}