|
|
|
|
@ -13,7 +13,7 @@ using Xunit;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
{
|
|
|
|
|
public abstract class DomainEvents_Tests<TStartupModule> : TestAppTestBase<TStartupModule>
|
|
|
|
|
public abstract class DomainEvents_Tests<TStartupModule> : TestAppTestBase<TStartupModule>
|
|
|
|
|
where TStartupModule : IAbpModule
|
|
|
|
|
{
|
|
|
|
|
protected readonly IRepository<Person, Guid> PersonRepository;
|
|
|
|
|
@ -35,7 +35,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
bool douglesNameChangeHandled = false;
|
|
|
|
|
bool customEventHandled = false;
|
|
|
|
|
bool customEvent2Handled = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalEventBus.Subscribe<EntityCreatedEventData<Person>>(data =>
|
|
|
|
|
{
|
|
|
|
|
data.Entity.Name.ShouldBe("TestPerson1");
|
|
|
|
|
@ -46,7 +46,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
customEvent2Handled.ShouldBeFalse();
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalEventBus.Subscribe<MyCustomEventData>(data =>
|
|
|
|
|
{
|
|
|
|
|
data.Value.ShouldBe("42");
|
|
|
|
|
@ -57,7 +57,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
customEvent2Handled.ShouldBeFalse();
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalEventBus.Subscribe<PersonNameChangedEvent>(data =>
|
|
|
|
|
{
|
|
|
|
|
data.OldName.ShouldBe("Douglas");
|
|
|
|
|
@ -69,7 +69,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
customEvent2Handled.ShouldBeFalse();
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalEventBus.Subscribe<EntityUpdatedEventData<Person>>(data =>
|
|
|
|
|
{
|
|
|
|
|
data.Entity.Name.ShouldBe("Douglas-Updated");
|
|
|
|
|
@ -80,7 +80,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
customEvent2Handled.ShouldBeFalse();
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalEventBus.Subscribe<MyCustomEventData2>(data =>
|
|
|
|
|
{
|
|
|
|
|
data.Value.ShouldBe("44");
|
|
|
|
|
@ -97,13 +97,13 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
await PersonRepository.InsertAsync(
|
|
|
|
|
new Person(Guid.NewGuid(), "TestPerson1", 42)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await LocalEventBus.PublishAsync(new MyCustomEventData { Value = "42" });
|
|
|
|
|
|
|
|
|
|
var douglas = await PersonRepository.GetAsync(TestDataBuilder.UserDouglasId);
|
|
|
|
|
douglas.ChangeName("Douglas-Updated");
|
|
|
|
|
await PersonRepository.UpdateAsync(douglas);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await LocalEventBus.PublishAsync(new MyCustomEventData2 { Value = "44" });
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
@ -112,7 +112,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
public virtual async Task Should_Rollback_Uow_If_Event_Handler_Throws_Exception()
|
|
|
|
|
{
|
|
|
|
|
(await PersonRepository.FindAsync(x => x.Name == "TestPerson1")).ShouldBeNull();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalEventBus.Subscribe<EntityCreatedEventData<Person>>(data =>
|
|
|
|
|
{
|
|
|
|
|
data.Entity.Name.ShouldBe("TestPerson1");
|
|
|
|
|
@ -128,7 +128,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exception.Message.ShouldBe("Just to rollback the UOW");
|
|
|
|
|
|
|
|
|
|
(await PersonRepository.FindAsync(x => x.Name == "TestPerson1")).ShouldBeNull();
|
|
|
|
|
@ -162,7 +162,7 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
|
|
|
|
|
await WithUnitOfWorkAsync(async () =>
|
|
|
|
|
{
|
|
|
|
|
var dougles = PersonRepository.Single(b => b.Name == "Douglas");
|
|
|
|
|
var dougles = await PersonRepository.SingleAsync(b => b.Name == "Douglas");
|
|
|
|
|
dougles.ChangeName("Douglas-Changed");
|
|
|
|
|
await PersonRepository.UpdateAsync(dougles);
|
|
|
|
|
});
|
|
|
|
|
@ -172,15 +172,15 @@ namespace Volo.Abp.TestApp.Testing
|
|
|
|
|
isLocalEventTriggered.ShouldBeTrue();
|
|
|
|
|
isDistributedEventTriggered.ShouldBeTrue();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private class MyCustomEventData
|
|
|
|
|
{
|
|
|
|
|
public string Value { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private class MyCustomEventData2
|
|
|
|
|
{
|
|
|
|
|
public string Value { get; set; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|