public void Should_be_able_to_get_and_set_clr_type()
        {
            var enumType = new EdmEnumType();

            Assert.Null(enumType.GetClrType());

            enumType.SetClrType(typeof(object));

            Assert.Equal(typeof(object), enumType.GetClrType());
        }
        public void AddMember_should_create_and_add_to_members_list()
        {
            var enumType = new EdmEnumType();

            var member = enumType.AddMember("Foo", 12);

            Assert.NotNull(member);
            Assert.Equal("Foo", member.Name);
            Assert.True(enumType.Members.Contains(member));
        }
        public static EdmProperty AsEnum(this EdmProperty property, EdmEnumType enumType)
        {
            //Contract.Requires(property != null);
            //Contract.Requires(enumType != null);

            property.PropertyType = new EdmTypeReference
                {
                    EdmType = enumType,
                    PrimitiveTypeFacets = new EdmPrimitiveTypeFacets()
                };

            return property;
        }
        public static EdmEnumType AddEnumType(this EdmModel model, string name)
        {
            //Contract.Requires(model != null);
            //Contract.Requires(!string.IsNullOrWhiteSpace(name));
            Contract.Assert(model.Namespaces.Count == 1);

            var enumType = new EdmEnumType
                {
                    Name = name
                };

            model.Namespaces.Single().EnumTypes.Add(enumType);

            return enumType;
        }