コード例 #1
0
        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");
        }