Browse Source

Included file-scope namespace statement for using

pull/1770/head
Sumit Ghosh 3 years ago
parent
commit
074025644a
4 changed files with 76 additions and 108 deletions
  1. +16
    -21
      src/Services/Ordering/Ordering.FunctionalTests/AutoAuthorizeMiddleware.cs
  2. +6
    -11
      src/Services/Ordering/Ordering.FunctionalTests/HttpClientExtensions.cs
  3. +37
    -51
      src/Services/Ordering/Ordering.FunctionalTests/OrderingScenarioBase.cs
  4. +17
    -25
      src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs

+ 16
- 21
src/Services/Ordering/Ordering.FunctionalTests/AutoAuthorizeMiddleware.cs View File

@ -1,31 +1,26 @@
using Microsoft.AspNetCore.Http;
using System.Security.Claims;
using System.Threading.Tasks;
namespace Ordering.FunctionalTests;
namespace Ordering.FunctionalTests
class AutoAuthorizeMiddleware
{
class AutoAuthorizeMiddleware
{
public const string IDENTITY_ID = "9e3163b9-1ae6-4652-9dc6-7898ab7b7a00";
public const string IDENTITY_ID = "9e3163b9-1ae6-4652-9dc6-7898ab7b7a00";
private readonly RequestDelegate _next;
private readonly RequestDelegate _next;
public AutoAuthorizeMiddleware(RequestDelegate rd)
{
_next = rd;
}
public AutoAuthorizeMiddleware(RequestDelegate rd)
{
_next = rd;
}
public async Task Invoke(HttpContext httpContext)
{
var identity = new ClaimsIdentity("cookies");
public async Task Invoke(HttpContext httpContext)
{
var identity = new ClaimsIdentity("cookies");
identity.AddClaim(new Claim("sub", IDENTITY_ID));
identity.AddClaim(new Claim("unique_name", IDENTITY_ID));
identity.AddClaim(new Claim(ClaimTypes.Name, IDENTITY_ID));
identity.AddClaim(new Claim("sub", IDENTITY_ID));
identity.AddClaim(new Claim("unique_name", IDENTITY_ID));
identity.AddClaim(new Claim(ClaimTypes.Name, IDENTITY_ID));
httpContext.User.AddIdentity(identity);
httpContext.User.AddIdentity(identity);
await _next.Invoke(httpContext);
}
await _next.Invoke(httpContext);
}
}

+ 6
- 11
src/Services/Ordering/Ordering.FunctionalTests/HttpClientExtensions.cs View File

@ -1,16 +1,11 @@
using Microsoft.AspNetCore.TestHost;
using System;
using System.Net.Http;
namespace Ordering.FunctionalTests;
namespace Ordering.FunctionalTests
static class HttpClientExtensions
{
static class HttpClientExtensions
public static HttpClient CreateIdempotentClient(this TestServer server)
{
public static HttpClient CreateIdempotentClient(this TestServer server)
{
var client = server.CreateClient();
client.DefaultRequestHeaders.Add("x-requestid", Guid.NewGuid().ToString());
return client;
}
var client = server.CreateClient();
client.DefaultRequestHeaders.Add("x-requestid", Guid.NewGuid().ToString());
return client;
}
}

+ 37
- 51
src/Services/Ordering/Ordering.FunctionalTests/OrderingScenarioBase.cs View File

@ -1,65 +1,51 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
using Microsoft.eShopOnContainers.Services.Ordering.API;
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure;
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.IO;
using System.Reflection;
namespace Ordering.FunctionalTests;
namespace Ordering.FunctionalTests
public class OrderingScenarioBase
{
public class OrderingScenarioBase
public TestServer CreateServer()
{
public TestServer CreateServer()
{
var path = Assembly.GetAssembly(typeof(OrderingScenarioBase))
.Location;
var path = Assembly.GetAssembly(typeof(OrderingScenarioBase))
.Location;
var hostBuilder = new WebHostBuilder()
.UseContentRoot(Path.GetDirectoryName(path))
.ConfigureAppConfiguration(cb =>
{
cb.AddJsonFile("appsettings.json", optional: false)
.AddEnvironmentVariables();
}).UseStartup<OrderingTestsStartup>();
var hostBuilder = new WebHostBuilder()
.UseContentRoot(Path.GetDirectoryName(path))
.ConfigureAppConfiguration(cb =>
{
cb.AddJsonFile("appsettings.json", optional: false)
.AddEnvironmentVariables();
}).UseStartup<OrderingTestsStartup>();
var testServer = new TestServer(hostBuilder);
var testServer = new TestServer(hostBuilder);
testServer.Host
.MigrateDbContext<OrderingContext>((context, services) =>
{
var env = services.GetService<IWebHostEnvironment>();
var settings = services.GetService<IOptions<OrderingSettings>>();
var logger = services.GetService<ILogger<OrderingContextSeed>>();
testServer.Host
.MigrateDbContext<OrderingContext>((context, services) =>
{
var env = services.GetService<IWebHostEnvironment>();
var settings = services.GetService<IOptions<OrderingSettings>>();
var logger = services.GetService<ILogger<OrderingContextSeed>>();
new OrderingContextSeed()
.SeedAsync(context, env, settings, logger)
.Wait();
})
.MigrateDbContext<IntegrationEventLogContext>((_, __) => { });
new OrderingContextSeed()
.SeedAsync(context, env, settings, logger)
.Wait();
})
.MigrateDbContext<IntegrationEventLogContext>((_, __) => { });
return testServer;
}
public static class Get
{
public static string Orders = "api/v1/orders";
return testServer;
}
public static string OrderBy(int id)
{
return $"api/v1/orders/{id}";
}
}
public static class Get
{
public static string Orders = "api/v1/orders";
public static class Put
public static string OrderBy(int id)
{
public static string CancelOrder = "api/v1/orders/cancel";
public static string ShipOrder = "api/v1/orders/ship";
return $"api/v1/orders/{id}";
}
}
public static class Put
{
public static string CancelOrder = "api/v1/orders/cancel";
public static string ShipOrder = "api/v1/orders/ship";
}
}

+ 17
- 25
src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs View File

@ -1,35 +1,27 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
using Microsoft.eShopOnContainers.Services.Ordering.API;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
namespace Ordering.FunctionalTests;
namespace Ordering.FunctionalTests
public class OrderingTestsStartup : Startup
{
public class OrderingTestsStartup : Startup
public OrderingTestsStartup(IConfiguration env) : base(env)
{
public OrderingTestsStartup(IConfiguration env) : base(env)
{
}
}
public override IServiceProvider ConfigureServices(IServiceCollection services)
public override IServiceProvider ConfigureServices(IServiceCollection services)
{
// Added to avoid the Authorize data annotation in test environment.
// Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json
services.Configure<RouteOptions>(Configuration);
return base.ConfigureServices(services);
}
protected override void ConfigureAuth(IApplicationBuilder app)
{
if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant())
{
// Added to avoid the Authorize data annotation in test environment.
// Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json
services.Configure<RouteOptions>(Configuration);
return base.ConfigureServices(services);
app.UseMiddleware<AutoAuthorizeMiddleware>();
}
protected override void ConfigureAuth(IApplicationBuilder app)
else
{
if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant())
{
app.UseMiddleware<AutoAuthorizeMiddleware>();
}
else
{
base.ConfigureAuth(app);
}
base.ConfigureAuth(app);
}
}
}

Loading…
Cancel
Save