mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.5 KiB
42 lines
1.5 KiB
using System;
|
|
using Shouldly;
|
|
using Xunit;
|
|
|
|
namespace Volo.Abp.EventBus
|
|
{
|
|
public class EventBus_Exception_Test : EventBusTestBase
|
|
{
|
|
[Fact]
|
|
public void Should_Throw_Single_Exception_If_Only_One_Of_Handlers_Fails()
|
|
{
|
|
EventBus.Register<MySimpleEventData>(
|
|
eventData => throw new Exception("This exception is intentionally thrown!"));
|
|
|
|
var appException = Assert.Throws<Exception>(() =>
|
|
{
|
|
EventBus.Trigger(new MySimpleEventData(1));
|
|
});
|
|
|
|
appException.Message.ShouldBe("This exception is intentionally thrown!");
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_Throw_Aggregate_Exception_If_More_Than_One_Of_Handlers_Fail()
|
|
{
|
|
EventBus.Register<MySimpleEventData>(
|
|
eventData => throw new Exception("This exception is intentionally thrown #1!"));
|
|
|
|
EventBus.Register<MySimpleEventData>(
|
|
eventData => throw new Exception("This exception is intentionally thrown #2!"));
|
|
|
|
var aggrException = Assert.Throws<AggregateException>(() =>
|
|
{
|
|
EventBus.Trigger(new MySimpleEventData(1));
|
|
});
|
|
|
|
aggrException.InnerExceptions.Count.ShouldBe(2);
|
|
aggrException.InnerExceptions[0].Message.ShouldBe("This exception is intentionally thrown #1!");
|
|
aggrException.InnerExceptions[1].Message.ShouldBe("This exception is intentionally thrown #2!");
|
|
}
|
|
}
|
|
} |