コード例 #1
0
        public void ReferenceNullableEquals_Values()
        {
            const string value = "value";

            Assert.True(IcUtils.ReferenceQuality(null, null));
            Assert.True(IcUtils.ReferenceQuality(value, value));
            Assert.False(IcUtils.ReferenceQuality(null, value));
            Assert.False(IcUtils.ReferenceQuality(value, null));
            Assert.IsNull(IcUtils.ReferenceQuality(value, "other"));
        }
コード例 #2
0
        public static bool AreEqual <CollectionT>(CollectionT left, CollectionT right, string itemsName)
            where CollectionT : ItemsModel <ItemT>, new()
        {
            var refDebt = IcUtils.ReferenceQuality(left, right);

            if (refDebt != null)
            {
                return((bool)refDebt);
            }

            var leftCopy = new CollectionT()
            {
                FieldsShallow = left.FieldsShallow,
                InternalItems = null,
            };
            var rightCopy = new CollectionT()
            {
                FieldsShallow = right.FieldsShallow,
                InternalItems = null,
            };

            if (leftCopy != (Model)rightCopy)  // compare non collection attributes
            {
                return(false);
            }

            var lineRef = left.KeyRefEquality(right, itemsName);

            if (lineRef != null)
            {
                return((bool)lineRef);
            }

            // compare lines
            return(left.InternalItems.EqualsCollection(right.InternalItems));
        }
コード例 #3
0
 /// <summary>
 ///     Test models for equality
 /// </summary>
 /// <param name="left"></param>
 /// <param name="right"></param>
 /// <returns></returns>
 public static bool operator ==(Model left, Model right)
 {
     return(IcUtils.ReferenceQuality(left, right) ??
            left._fields.EqualsCollection(right._fields));
 }