public void EqualityMainPathTests() { Assert.IsTrue(EdmCoreModel.Instance.GetBinary(false).IsEquivalentTo(EdmCoreModel.Instance.GetBinary(false)), "Type reference equal"); Assert.IsTrue(EdmCoreModel.Instance.GetBoolean(false).IsEquivalentTo(EdmCoreModel.Instance.GetBoolean(false)), "Type reference equal"); Assert.IsTrue(EdmCoreModel.Instance.GetDecimal(false).IsEquivalentTo(EdmCoreModel.Instance.GetDecimal(false)), "Type reference equal"); Assert.IsTrue(EdmCoreModel.Instance.GetString(false).IsEquivalentTo(EdmCoreModel.Instance.GetString(false)), "Type reference equal"); Assert.IsTrue(EdmCoreModel.Instance.GetTemporal(EdmPrimitiveTypeKind.DateTimeOffset, false).IsEquivalentTo(EdmCoreModel.Instance.GetTemporal(EdmPrimitiveTypeKind.DateTimeOffset, false)), "Type reference equal"); Assert.IsTrue(EdmCoreModel.GetCollection(EdmCoreModel.Instance.GetString(false)).IsEquivalentTo(EdmCoreModel.GetCollection(EdmCoreModel.Instance.GetString(false))), "Type reference equal"); Assert.IsFalse(EdmCoreModel.Instance.GetBinary(false).IsEquivalentTo(EdmCoreModel.Instance.GetBinary(true)), "Unequal facets not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetBoolean(false).IsEquivalentTo(EdmCoreModel.Instance.GetBoolean(true)), "Unequal facets not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetDecimal(false).IsEquivalentTo(EdmCoreModel.Instance.GetDecimal(true)), "Unequal facets not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetString(false).IsEquivalentTo(EdmCoreModel.Instance.GetString(true)), "Unequal facets not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetTemporal(EdmPrimitiveTypeKind.DateTimeOffset, false).Equals(EdmCoreModel.Instance.GetTemporal(EdmPrimitiveTypeKind.DateTimeOffset, true)), "Unequal facets not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetBinary(false).IsEquivalentTo(EdmCoreModel.Instance.GetTemporal(EdmPrimitiveTypeKind.DateTimeOffset, false)), "non-equivalent types not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetBoolean(false).IsEquivalentTo(EdmCoreModel.Instance.GetBinary(false)), "non-equivalent types not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetDecimal(false).IsEquivalentTo(EdmCoreModel.Instance.GetBoolean(false)), "non-equivalent types not equal"); Assert.IsFalse(EdmCoreModel.Instance.GetString(false).IsEquivalentTo(EdmCoreModel.Instance.GetDecimal(false)), "non-equivalent types not equal"); Assert.IsTrue(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Decimal).IsEquivalentTo(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Decimal)), "Primitive type is equivalent."); Assert.IsFalse(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Decimal).IsEquivalentTo(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Binary)), "Primitive type is not equivalent."); Assert.IsTrue(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Duration).IsEquivalentTo(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Duration)), "Primitive type is equivalent."); Assert.IsFalse(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Duration).IsEquivalentTo(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.DateTimeOffset)), "Primitive type is not equivalent."); IEdmEntityReferenceTypeReference entityRef1 = new EdmEntityReferenceTypeReference(new EdmEntityReferenceType(new EdmEntityType("bar", "foo")), false); IEdmEntityReferenceTypeReference entityRef2 = new EdmEntityReferenceTypeReference(new EdmEntityReferenceType(new EdmEntityType("bar", "foo")), false); Assert.IsFalse(entityRef1.IsEquivalentTo(entityRef2), "Equivalent EntityReference/nominal types not equal for different type obj refs"); entityRef1 = new EdmEntityReferenceTypeReference(new EdmEntityReferenceType(new EdmEntityType("bar", "foo")), false); entityRef2 = new EdmEntityReferenceTypeReference(new EdmEntityReferenceType(entityRef1.EntityReferenceDefinition().EntityType), false); Assert.IsTrue(entityRef1.IsEquivalentTo(entityRef2), "Equivalent EntityReference/nominal types equal"); Assert.IsFalse(new EdmEntityType("", "").IsEquivalentTo(new EdmComplexType("", "")), "Different type kinds are not equivalent"); Assert.IsFalse(new EdmEntityType("NS", "E1").IsEquivalentTo(new EdmEntityType("NS", "E2")), "Different names mean types are not equivalent"); IEdmTypeReference type = EdmCoreModel.Instance.GetPrimitive(EdmPrimitiveTypeKind.Int32, false); Assert.IsTrue(type.IsEquivalentTo(type), "Same reference is equal to self"); }