public void GetDefaultValueExpression_Works_ForTermFromCoreVocabularyModel() { // Arrange IEdmTerm term = CoreVocabularyModel.Instance.FindTerm("Org.OData.Core.V1.PositionalInsert"); Assert.NotNull(term); Assert.NotNull(term.DefaultValue); Assert.Equal("true", term.DefaultValue); // Act IEdmExpression exp = term.GetDefaultValueExpression(); EdmBooleanConstant constant = Assert.IsType <EdmBooleanConstant>(exp); Assert.True(constant.Value); }
/// <summary> /// Creates <see cref="IEdmVocabularyAnnotation"/> using the <see cref="IEdmTerm"/> and its default value. /// </summary> /// <param name="term">Term bound by the annotation.</param> /// <param name="target">Element the annotation applies to.</param> /// <param name="qualifier">Qualifier used to discriminate between multiple bindings of the same property or type.</param> /// <returns>The <see cref="IEdmVocabularyAnnotation"/> built.</returns> public static IEdmVocabularyAnnotation CreateVocabularyAnnotation(this IEdmTerm term, IEdmVocabularyAnnotatable target, string qualifier) { EdmUtil.CheckArgumentNull(term, "term"); EdmUtil.CheckArgumentNull(target, "target"); IEdmExpression value = term.GetDefaultValueExpression(); if (value == null) { throw new InvalidOperationException(Strings.EdmVocabularyAnnotations_DidNotFindDefaultValue(term.Type)); } return(new EdmVocabularyAnnotation(target, term, qualifier, value) { UseDefault = true }); }