public static void AssertEquality(ComplexEntityWithNestedComplexProperties a, ComplexEntityWithNestedComplexProperties b) { if (ReferenceEquals(a, b)) { return; } Assert.IsNotNull(a); Assert.IsNotNull(b); // Validate ComplexEntity type complex property ComplexEntity.AssertEquality(a.ComplexEntity, b.ComplexEntity); // Validate Shape type complex property Assert.AreEqual(a.ShapeEntity.PartitionKey, b.ShapeEntity.PartitionKey); Assert.AreEqual(a.ShapeEntity.RowKey, b.ShapeEntity.RowKey); Assert.AreEqual(a.ShapeEntity.Breadth, b.ShapeEntity.Breadth); Assert.AreEqual(a.ShapeEntity.Length, b.ShapeEntity.Length); Assert.AreEqual(a.ShapeEntity.Name, b.ShapeEntity.Name); //Validate simple properties Assert.AreEqual(a.String, b.String); Assert.AreEqual(a.Int64, b.Int64); Assert.AreEqual(a.Int64N, b.Int64N); Assert.AreEqual(a.Int64Null, b.Int64Null); Assert.AreEqual(a.LongPrimitive, b.LongPrimitive); Assert.AreEqual(a.LongPrimitiveN, b.LongPrimitiveN); Assert.AreEqual(a.LongPrimitiveNull, b.LongPrimitiveNull); Assert.AreEqual(a.Int32, b.Int32); Assert.AreEqual(a.Int32N, b.Int32N); Assert.AreEqual(a.Int32Null, b.Int32Null); Assert.AreEqual(a.IntegerPrimitive, b.IntegerPrimitive); Assert.AreEqual(a.integerPrimitiveN, b.IntegerPrimitiveN); Assert.AreEqual(a.IntegerPrimitiveNull, b.IntegerPrimitiveNull); Assert.AreEqual(a.Guid, b.Guid); Assert.AreEqual(a.GuidN, b.GuidN); Assert.AreEqual(a.GuidNull, b.GuidNull); Assert.AreEqual(a.Double, b.Double); Assert.AreEqual(a.DoubleN, b.DoubleN); Assert.AreEqual(a.DoubleNull, b.DoubleNull); Assert.AreEqual(a.DoublePrimitive, b.DoublePrimitive); Assert.AreEqual(a.DoublePrimitiveN, b.DoublePrimitiveN); Assert.AreEqual(a.DoublePrimitiveNull, b.DoublePrimitiveNull); Assert.AreEqual(a.BinaryPrimitive.GetValue(0), b.BinaryPrimitive.GetValue(0)); Assert.AreEqual(a.BinaryPrimitive.GetValue(1), b.BinaryPrimitive.GetValue(1)); Assert.AreEqual(a.BinaryPrimitive.GetValue(2), b.BinaryPrimitive.GetValue(2)); Assert.AreEqual(a.BinaryPrimitive.GetValue(3), b.BinaryPrimitive.GetValue(3)); Assert.AreEqual(a.Binary.GetValue(0), b.Binary.GetValue(0)); Assert.AreEqual(a.Binary.GetValue(1), b.Binary.GetValue(1)); Assert.AreEqual(a.Binary.GetValue(2), b.Binary.GetValue(2)); Assert.AreEqual(a.Binary.GetValue(3), b.Binary.GetValue(3)); Assert.AreEqual(a.BoolPrimitive, b.BoolPrimitive); Assert.AreEqual(a.BoolPrimitiveN, b.BoolPrimitiveN); Assert.AreEqual(a.BoolPrimitiveNull, b.BoolPrimitiveNull); Assert.AreEqual(a.Bool, b.Bool); Assert.AreEqual(a.BoolN, b.BoolN); Assert.AreEqual(a.BoolNull, b.BoolNull); Assert.AreEqual(a.DateTimeOffsetN, b.DateTimeOffsetN); Assert.AreEqual(a.DateTimeOffset, b.DateTimeOffset); Assert.AreEqual(a.DateTimeOffsetNull, b.DateTimeOffsetNull); Assert.AreEqual(a.DateTime, b.DateTime); Assert.AreEqual(a.DateTimeN, b.DateTimeN); Assert.AreEqual(a.DateTimeNull, b.DateTimeNull); // Validate ComplexEntityWithComplexProperties type composite property AssertEquality(a.InnerComplexEntityWithNestedComplexProperties, b.InnerComplexEntityWithNestedComplexProperties); }