public void CreateKeyParametersForSingleKeyWorks(bool prefix)
        {
            // Arrange
            EdmModel      model    = new EdmModel();
            EdmEntityType customer = new EdmEntityType("NS", "Customer");

            customer.AddKeys(customer.AddStructuralProperty("Id", EdmPrimitiveTypeKind.String));
            model.AddElement(customer);
            OpenApiConvertSettings setting = new OpenApiConvertSettings
            {
                PrefixEntityTypeNameBeforeKey = prefix
            };
            ODataContext    context    = new ODataContext(model, setting);
            ODataKeySegment keySegment = new ODataKeySegment(customer);

            // Act
            var parameters = context.CreateKeyParameters(keySegment);

            // Assert
            Assert.NotNull(parameters);
            var parameter = Assert.Single(parameters);

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

            if (prefix)
            {
                expected = @"{
  ""name"": ""Customer-Id"",
  ""in"": ""path"",
  ""description"": ""key: Customer-Id of Customer"",
  ""required"": true,
  ""schema"": {
    ""type"": ""string"",
    ""nullable"": true
  },
  ""x-ms-docs-key-type"": ""Customer""
}";
            }
            else
            {
                expected = @"{
  ""name"": ""Id"",
  ""in"": ""path"",
  ""description"": ""key: Id of Customer"",
  ""required"": true,
  ""schema"": {
    ""type"": ""string"",
    ""nullable"": true
  },
  ""x-ms-docs-key-type"": ""Customer""
}";
            }

            Assert.Equal(expected.ChangeLineBreaks(), json);
        }
        /// <summary>
        /// Creates the path parameters for the <see cref="ODataPath"/>
        /// </summary>
        /// <param name="path">The ODataPath</param>
        /// <param name="context">The OData context.</param>
        /// <returns>The created list of <see cref="OpenApiParameter"/></returns>
        public static List <OpenApiParameter> CreatePathParameters(this ODataPath path, ODataContext context)
        {
            List <OpenApiParameter> pathParameters = new();
            var parameterMappings = path.CalculateParameterMapping(context.Settings);

            foreach (ODataKeySegment keySegment in path.OfType <ODataKeySegment>())
            {
                IDictionary <string, string> mapping = parameterMappings[keySegment];
                pathParameters.AddRange(context.CreateKeyParameters(keySegment, mapping));
            }

            // Add the route prefix parameter v1{data}
            if (context.Settings.RoutePathPrefixProvider?.Parameters != null)
            {
                pathParameters.AddRange(context.Settings.RoutePathPrefixProvider.Parameters);
            }

            return(pathParameters);
        }