From f6b2335518cdd469abb9a270f87b65c4cf7df177 Mon Sep 17 00:00:00 2001 From: "DESKTOP-V1VLQ15\\dsanz" Date: Tue, 14 Mar 2017 14:15:34 +0100 Subject: [PATCH] Fix issue with tests and Authorize attribute --- .../Common/Infrastructure/EventBusRabbitMQ.cs | 39 ++++++++++--------- .../Controllers/OrdersController.cs | 2 +- .../Middleware/AutoAuthorizeMiddleware.cs | 2 +- .../Middleware/AutoAuthorizeMiddleware.cs | 2 +- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/Services/Common/Infrastructure/EventBusRabbitMQ.cs b/src/Services/Common/Infrastructure/EventBusRabbitMQ.cs index aa17553a7..f9c3d6a57 100644 --- a/src/Services/Common/Infrastructure/EventBusRabbitMQ.cs +++ b/src/Services/Common/Infrastructure/EventBusRabbitMQ.cs @@ -15,7 +15,7 @@ namespace Microsoft.eShopOnContainers.Services.Common.Infrastructure { public class EventBusRabbitMQ : IEventBus { - private readonly string _brokerName = "event_bus"; + private readonly string _brokerName = "eshop_event_bus"; private readonly string _connectionString; private readonly Dictionary> _handlers; private readonly List _eventTypes; @@ -120,24 +120,11 @@ namespace Microsoft.eShopOnContainers.Services.Common.Infrastructure var consumer = new EventingBasicConsumer(channel); consumer.Received += async (model, ea) => - { + { var eventName = ea.RoutingKey; - if (_handlers.ContainsKey(eventName)) - { - var message = Encoding.UTF8.GetString(ea.Body); - Type eventType = _eventTypes.Single(t => t.Name == eventName); - - var integrationEvent = JsonConvert.DeserializeObject(message, eventType); - var handlers = _handlers[eventName]; - - - var concreteType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType); - - foreach (var handler in handlers) - { - await (Task)concreteType.GetMethod("Handle").Invoke(handler, new object[] { integrationEvent }); - } - } + var message = Encoding.UTF8.GetString(ea.Body); + + await ProcessEvent(eventName, message); }; channel.BasicConsume(queue: _queueName, noAck: true, @@ -147,5 +134,21 @@ namespace Microsoft.eShopOnContainers.Services.Common.Infrastructure return _connection.Item1; } } + + private async Task ProcessEvent(string eventName, string message) + { + if (_handlers.ContainsKey(eventName)) + { + Type eventType = _eventTypes.Single(t => t.Name == eventName); + var integrationEvent = JsonConvert.DeserializeObject(message, eventType); + var concreteType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType); + var handlers = _handlers[eventName]; + + foreach (var handler in handlers) + { + await (Task)concreteType.GetMethod("Handle").Invoke(handler, new object[] { integrationEvent }); + } + } + } } } diff --git a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs index d01150b9c..ea97fc2fa 100644 --- a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs +++ b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs @@ -11,7 +11,7 @@ using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers { [Route("api/v1/[controller]")] - //[Authorize] + [Authorize] public class OrdersController : Controller { private readonly IMediator _mediator; diff --git a/test/Services/FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs b/test/Services/FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs index 72248e29d..41f1dfc88 100644 --- a/test/Services/FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs +++ b/test/Services/FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs @@ -17,7 +17,7 @@ namespace FunctionalTests.Middleware public async Task Invoke(HttpContext httpContext) { - var identity = new ClaimsIdentity(); + var identity = new ClaimsIdentity("cookies"); identity.AddClaim(new Claim("sub", "1234")); httpContext.User.AddIdentity(identity); await _next.Invoke(httpContext); diff --git a/test/Services/IntegrationTests/Middleware/AutoAuthorizeMiddleware.cs b/test/Services/IntegrationTests/Middleware/AutoAuthorizeMiddleware.cs index ce8172afa..598e4d0dd 100644 --- a/test/Services/IntegrationTests/Middleware/AutoAuthorizeMiddleware.cs +++ b/test/Services/IntegrationTests/Middleware/AutoAuthorizeMiddleware.cs @@ -17,7 +17,7 @@ namespace IntegrationTests.Middleware public async Task Invoke(HttpContext httpContext) { - var identity = new ClaimsIdentity(); + var identity = new ClaimsIdentity("cookies"); identity.AddClaim(new Claim("sub", "1234")); httpContext.User.AddIdentity(identity); await _next.Invoke(httpContext);