public void NonNullableBinaryPropertyWithBothMaxLengthAndDefaultValueWorks() { // Arrange ODataContext context = new ODataContext(EdmModelHelper.BasicEdmModel); EdmEntityType entitType = new EdmEntityType("NS", "Entity"); var binaryType = new EdmBinaryTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Binary), false, false, 44); IEdmStructuralProperty property = new EdmStructuralProperty( entitType, "BinaryValue", binaryType, "T0RhdGE"); // Act var schema = context.CreatePropertySchema(property); // Assert Assert.NotNull(schema); Assert.Equal("string", schema.Type); string json = schema.SerializeAsJson(OpenApiSpecVersion.OpenApi3_0); Assert.Equal(@"{ ""maxLength"": 44, ""type"": ""string"", ""format"": ""base64url"", ""default"": ""T0RhdGE"" }".ChangeLineBreaks(), json); }
public static IEdmModel InterfaceCriticalKindValueMismatchOnlyUsingBinaryTypeReferenceModel() { var model = new EdmModel(); var badTypeRef = new EdmBinaryTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.String), true); var valueTerm = new EdmTerm("NS", "Note", badTypeRef); model.AddElement(valueTerm); return(model); }
public void TestComparingEdmBinaryTypeReference() { var binaryTypeWithDefaultValue = new EdmBinaryTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Binary), true); var binaryType = new EdmBinaryTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Binary), true, false, null); Assert.True(binaryType.IsEquivalentTo(binaryTypeWithDefaultValue)); var primitiveType = new EdmPrimitiveTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Binary), true); Assert.False(binaryType.IsEquivalentTo(primitiveType)); }
IEdmPrimitiveTypeReference IPrimitiveDataTypeVisitor <IEdmPrimitiveTypeReference> .Visit(BinaryDataType dataType) { IEdmPrimitiveType typeDefinition = this.GetEdmTypeDefinition(dataType); int?maxLength = null; if (dataType.HasFacet <MaxLengthFacet>()) { maxLength = dataType.GetFacet <MaxLengthFacet>().Value; } var typeReference = new EdmBinaryTypeReference( typeDefinition, dataType.IsNullable, false, maxLength); return(typeReference); }