Exemplo n.º 1
0
        private void VerifyCreateOrderByParameter(IEdmElement edmElement, ODataContext context, string orderByItemsText = null)
        {
            // Arrange & Act
            OpenApiParameter parameter;

            switch (edmElement)
            {
            case IEdmEntitySet entitySet:
                parameter = context.CreateOrderBy(entitySet);
                break;

            case IEdmSingleton singleton:
                parameter = context.CreateOrderBy(singleton);
                break;

            case IEdmNavigationProperty navigationProperty:
                parameter = context.CreateOrderBy(navigationProperty);
                break;

            default:
                return;
            }

            string itemsText = orderByItemsText == null
                ? @"""type"": ""string"""
                : $@"{orderByItemsText}
      ""type"": ""string""";

            // Assert
            Assert.NotNull(parameter);

            string json = parameter.SerializeAsJson(OpenApiSpecVersion.OpenApi3_0);

            string expected = $@"{{
  ""name"": ""$orderby"",
  ""in"": ""query"",
  ""description"": ""Order items by property values"",
  ""style"": ""form"",
  ""explode"": false,
  ""schema"": {{
    ""uniqueItems"": true,
    ""type"": ""array"",
    ""items"": {{
      {itemsText}
    }}
  }}
}}";

            Assert.Equal(expected.ChangeLineBreaks(), json);
        }
Exemplo n.º 2
0
        public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmNavigationProperty navigationProperty)
        {
            Utils.CheckArgumentNull(context, nameof(context));
            Utils.CheckArgumentNull(navigationProperty, nameof(navigationProperty));

            return(context.CreateOrderBy(navigationProperty, navigationProperty.ToEntityType()));
        }
Exemplo n.º 3
0
        public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmSingleton singleton)
        {
            Utils.CheckArgumentNull(context, nameof(context));
            Utils.CheckArgumentNull(singleton, nameof(singleton));

            return(context.CreateOrderBy(singleton, singleton.EntityType()));
        }
Exemplo n.º 4
0
        public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmEntitySet entitySet)
        {
            Utils.CheckArgumentNull(context, nameof(context));
            Utils.CheckArgumentNull(entitySet, nameof(entitySet));

            return(context.CreateOrderBy(entitySet, entitySet.EntityType()));
        }
 /// <summary>
 /// Create $orderby parameter for the <see cref="IEdmEntitySet"/>.
 /// </summary>
 /// <param name="context">The OData context.</param>
 /// <param name="target">The Edm annotation target.</param>
 /// <param name="entityType">The Edm Entity type.</param>
 /// <returns>The created <see cref="OpenApiParameter"/> or null.</returns>
 public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmVocabularyAnnotatable target, IEdmEntityType entityType)
 {// patchwork to avoid breaking changes
     return(context.CreateOrderBy(target, entityType as IEdmStructuredType));
 }