Esempio n. 1
0
        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);
        }