From 6e69b36a778dfed312f938ed5c48791441d45c92 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 31 Jul 2019 09:13:04 +0200 Subject: [PATCH] migrate functional tests of ordering api --- .../Commands/CancelOrderCommand.cs | 3 +++ .../Ordering/Ordering.API/Ordering.API.csproj | 1 + src/Services/Ordering/Ordering.API/Startup.cs | 23 +++++++++---------- .../Ordering.FunctionalTests.csproj | 3 +-- .../OrderingTestStartup.cs | 12 +++++++++- .../Ordering.FunctionalTests/appsettings.json | 3 ++- src/_build/dependencies.props | 1 + 7 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs index 0672807f3..c2a1c2be5 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs @@ -12,7 +12,10 @@ namespace Ordering.API.Application.Commands [DataMember] public int OrderNumber { get; private set; } + public CancelOrderCommand() + { + } public CancelOrderCommand(int orderNumber) { OrderNumber = orderNumber; diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 4bd20f8a3..1b3c36daa 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -30,6 +30,7 @@ + diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index e8640489c..fca490f28 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -22,6 +22,7 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; + using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; @@ -44,7 +45,7 @@ public IConfiguration Configuration { get; } - public IServiceProvider ConfigureServices(IServiceCollection services) + public virtual IServiceProvider ConfigureServices(IServiceCollection services) { services.AddApplicationInsights(Configuration) .AddCustomMvc() @@ -81,9 +82,9 @@ app.UseCors("CorsPolicy"); + app.UseRouting(); ConfigureAuth(app); - app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); @@ -149,16 +150,14 @@ { // Add framework services. services.AddControllers(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }); - //services.AddMvc(options => - // { - // options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - // }) - // .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - // .AddControllersAsServices(); //Injecting Controllers themselves thru DI - // //For further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + }) + // Added for functional tests + .AddApplicationPart(typeof(OrdersController).Assembly) + .AddNewtonsoftJson() + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) + ; services.AddCors(options => { diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index 5acad11ca..17845a375 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -17,8 +17,7 @@ - - + diff --git a/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs b/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs index d68dd7c3a..9d1975cb7 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs +++ b/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs @@ -1,6 +1,9 @@ -using Microsoft.AspNetCore.Builder; +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Routing; using Microsoft.eShopOnContainers.Services.Ordering.API; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; namespace Ordering.FunctionalTests { @@ -10,6 +13,13 @@ namespace Ordering.FunctionalTests { } + public override IServiceProvider ConfigureServices(IServiceCollection services) + { + // Added to avoid the Authorize data annotation in test environment. + // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json + services.Configure(Configuration); + return base.ConfigureServices(services); + } protected override void ConfigureAuth(IApplicationBuilder app) { if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant()) diff --git a/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json b/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json index 70f1af3c0..07bb1638a 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json +++ b/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json @@ -6,5 +6,6 @@ "EventBusConnection": "localhost", "CheckUpdateTime": "30000", "GracePeriodTime": "1", - "SubscriptionClientName": "Ordering" + "SubscriptionClientName": "Ordering", + "SuppressCheckForUnhandledSecurityMetadata":true } diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 7f81abf62..b83d987cc 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -86,6 +86,7 @@ 2.9.0-beta2 4.10.1 12.0.2 + 3.0.0-preview7.19365.7 12.0.1 6.0.1 3.0.0-preview3.4