public void EvaluateEnumReferenceExpression() { var color = new EdmEnumType("Ns", "Color", true); var blue = color.AddMember("Blue", new EdmIntegerConstant(1)); color.AddMember("White", new EdmIntegerConstant(2)); var enumReferenceExpression = new EdmEnumMemberReferenceExpression(blue); EdmExpressionEvaluator evaluator = new EdmExpressionEvaluator(null); var value = evaluator.Evaluate(enumReferenceExpression) as IEdmEnumValue; value.Type.Definition.Should().Be(color); value.Value.As<EdmIntegerConstant>().Value.Should().Be(1); }
public static void SetConformanceLevelCapabilitiesAnnotation(this EdmModel model, IEdmEntityContainer container, CapabilitiesConformanceLevelType level) { if (model == null) throw new ArgumentNullException("model"); if (container == null) throw new ArgumentNullException("container"); var target = container; var term = ConformanceLevelTerm; var name = new EdmEnumTypeReference(ConformanceLevelTypeType, false).ToStringLiteral((long)level); var expression = new EdmEnumMemberReferenceExpression(ConformanceLevelTypeType.Members.Single(m => m.Name == name)); var annotation = new EdmAnnotation(target, term, expression); annotation.SetSerializationLocation(model, container.ToSerializationLocation()); model.AddVocabularyAnnotation(annotation); }
public void EdmEnumMemberReferenceExpression() { var et = new EdmEnumType("NS", "Spicy"); var em = new EdmEnumMember(et, "Hot", new EdmIntegerConstant(5)); var e = new EdmEnumMemberReferenceExpression(em); Assert.AreEqual(EdmExpressionKind.EnumMemberReference, e.ExpressionKind, "e.ExpressionKind"); Assert.AreEqual("Hot", e.ReferencedEnumMember.Name, "e.ReferencedEnumMember"); Assert.IsFalse(e.IsBad(), "e good"); this.VerifyThrowsException(typeof(ArgumentNullException), () => new EdmEnumMemberReferenceExpression(null)); var ee = new MutableEdmEnumMemberReferenceExpression(); Assert.IsNull(ee.ReferencedEnumMember, "e.ReferencedEntitySet"); Assert.IsTrue(ee.IsBad(), "Expression is bad."); Assert.AreEqual(1, ee.Errors().Count(), "Expression has errors"); }