Skip to content

Commit

Permalink
Support a handler to implement both Local and Distribute.
Browse files Browse the repository at this point in the history
Resolve #19484
  • Loading branch information
maliming committed Apr 29, 2024
1 parent 3007edb commit 95261e9
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ private static void AddEventHandlers(IServiceCollection services)
{
localHandlers.Add(context.ImplementationType);
}
else if (ReflectionHelper.IsAssignableToGenericType(context.ImplementationType, typeof(IDistributedEventHandler<>)))
if (ReflectionHelper.IsAssignableToGenericType(context.ImplementationType, typeof(IDistributedEventHandler<>)))
{
distributedHandlers.Add(context.ImplementationType);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using Shouldly;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.EventBus.Local;
using Xunit;

namespace Volo.Abp.EventBus;

public class LocalAndDistributeEventHandlerRegister_Tests : EventBusTestBase
{
[Fact]
public void Should_Register_Both_Local_And_Distribute()
{
var localOptions = GetRequiredService<IOptions<AbpLocalEventBusOptions>>();
var distributedOptions = GetRequiredService<IOptions<AbpDistributedEventBusOptions>>();

localOptions.Value.Handlers.ShouldContain(x => x == typeof(MyEventHandle));
distributedOptions.Value.Handlers.ShouldContain(x => x == typeof(MyEventHandle));
}

class MyEventDate
{

}

class MyEventHandle : ILocalEventHandler<MyEventDate>, IDistributedEventHandler<MyEventDate>, ITransientDependency
{
Task ILocalEventHandler<MyEventDate>.HandleEventAsync(MyEventDate eventData)
{
return Task.CompletedTask;
}

Task IDistributedEventHandler<MyEventDate>.HandleEventAsync(MyEventDate eventData)
{
return Task.CompletedTask;
}
}
}

0 comments on commit 95261e9

Please sign in to comment.