示例#1
0
        public void Can_create_enumeration_type()
        {
            var stringTypeUsage = TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
            var metadataProperty = MetadataProperty.Create("MetadataProperty", stringTypeUsage, "Value");
            var underlyingType = PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32);
            var members
                = new[]
                  {
                      EnumMember.Create("M1", 1, null),
                      EnumMember.Create("M2", 2, null)
                  };

            var enumType = EnumType.Create("EnumName", "N", underlyingType, true, members, new[] { metadataProperty });

            Assert.Equal("EnumName", enumType.Name);
            Assert.Equal("N", enumType.NamespaceName);
            Assert.True(enumType.IsFlags);
            Assert.Equal(DataSpace.CSpace, enumType.DataSpace);
            Assert.Equal(members, enumType.Members);
            Assert.Same(metadataProperty, enumType.MetadataProperties.Last());
            Assert.True(enumType.IsReadOnly);
        }
示例#2
0
        public void Create_throws_if_member_names_are_not_unique()
        {
            var underlyingType = PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32);
            var members
                = new[]
                  {
                      EnumMember.Create("M", 1, null),
                      EnumMember.Create("M", 2, null)
                  };

            Assert.Equal(
                new ArgumentException(Strings.ItemDuplicateIdentity("M"), "item")
                    .Message,
                Assert.Throws<ArgumentException>(
                    () => EnumType.Create("EnumName", "N", underlyingType, true, members, null))
                    .Message);
        }