public void get_requested_api_version_should_return_null_when_header_is_nullX2C_emptyX2C_or_invalid(string header, string value) { // arrange var configuration = new HttpConfiguration(); var request = new HttpRequestMessage(); var versionReader = new QueryStringOrHeaderApiVersionReader() { HeaderNames = { "api-version", "x-ms-version" } }; configuration.AddApiVersioning(o => o.ApiVersionReader = versionReader); request.SetConfiguration(configuration); if (value != null) { request.Headers.Add(header, value); } // act var version = request.GetRequestedApiVersion(); // assert version.Should().BeNull(); request.Properties["MS_ApiVersion"].Should().BeNull(); }
public void add_api_versioning_should_report_api_versions_when_option_is_enabled() { // arrange var configuration = new HttpConfiguration(); // act configuration.AddApiVersioning(o => o.ReportApiVersions = true); // assert configuration.Services.GetHttpControllerSelector().Should().BeOfType <ApiVersionControllerSelector>(); configuration.Services.GetActionSelector().Should().BeOfType <ApiVersionActionSelector>(); configuration.Filters.Single().Instance.Should().BeOfType <ReportApiVersionsAttribute>(); }
public void add_api_versioning_should_setup_configuration_with_default_options() { // arrange var configuration = new HttpConfiguration(); // act configuration.AddApiVersioning(); // assert configuration.Services.GetHttpControllerSelector().Should().BeOfType <ApiVersionControllerSelector>(); configuration.Services.GetActionSelector().Should().BeOfType <ApiVersionActionSelector>(); configuration.Filters.Should().HaveCount(0); }
public void get_requested_api_version_should_return_null_when_query_parameter_is_nullX2C_emptyX2C_or_invalid(string requestUri) { // arrange var configuration = new HttpConfiguration(); var request = new HttpRequestMessage(Get, requestUri); configuration.AddApiVersioning(); request.SetConfiguration(configuration); // act var version = request.GetRequestedApiVersion(); // assert version.Should().BeNull(); }
public void get_requested_api_version_should_return_expected_value_from_query_parameter() { // arrange var requestedVersion = new ApiVersion(1, 0); var configuration = new HttpConfiguration(); var request = new HttpRequestMessage(Get, $"http://localhost/Tests?api-version={requestedVersion}"); configuration.AddApiVersioning(); request.SetConfiguration(configuration); // act var version = request.GetRequestedApiVersion(); // assert version.Should().Be(requestedVersion); request.Properties["MS_ApiVersion"].Should().Be(requestedVersion); }
public void get_requested_api_version_should_return_expected_value_from_header(string headerName) { // arrange var requestedVersion = new ApiVersion(1, 0); var configuration = new HttpConfiguration(); var request = new HttpRequestMessage(); var versionReader = ApiVersionReader.Combine(new QueryStringApiVersionReader(), new HeaderApiVersionReader(headerName)); configuration.AddApiVersioning(o => o.ApiVersionReader = versionReader); request.SetConfiguration(configuration); request.Headers.Add(headerName, requestedVersion.ToString()); // act var version = request.GetRequestedApiVersion(); // assert version.Should().Be(requestedVersion); request.ApiVersionProperties().RequestedApiVersion.Should().Be(requestedVersion); }
/// <summary> /// Adds service API versioning to the specified services collection. /// </summary> /// <param name="configuration">The <see cref="HttpConfiguration">configuration</see> that will use use service versioning.</param> public static void AddApiVersioning(this HttpConfiguration configuration) => configuration.AddApiVersioning(_ => { });