mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 03:04:29 +08:00
- 在AsyncTestModel和TestModel中添加override关键字修复方法重写 - 调整GFramework.Core.Tests和GFramework.SourceGenerators.Tests的目标框架顺序为net10.0;net8.0 - 优化SyncArchitectureTests中的注释格式,统一添加前导空格 - 移除TestQuery相关代码文件 - 新增BindablePropertyTests测试绑定属性功能 - 新增CommandBusTests测试命令总线功能 - 新增EasyEventsTests和EventTests测试事件系统功能 - 新增IocContainerTests测试依赖注入容器功能 - 新增ObjectExtensionsTests测试对象扩展方法功能 - 新增ObjectPoolTests测试对象池功能 - 新增OrEventTests测试或事件功能 - 新增QueryBusTests测试查询总线功能 - [skip ci]
81 lines
1.8 KiB
C#
81 lines
1.8 KiB
C#
using GFramework.Core.events;
|
|
using NUnit.Framework;
|
|
|
|
namespace GFramework.Core.Tests.events;
|
|
|
|
[TestFixture]
|
|
public class OrEventTests
|
|
{
|
|
[Test]
|
|
public void OrEvent_Should_Trigger_When_Any_Event_Fires()
|
|
{
|
|
var event1 = new Event<int>();
|
|
var event2 = new Event<int>();
|
|
var orEvent = new OrEvent();
|
|
|
|
var triggered = false;
|
|
orEvent.Register(() => { triggered = true; });
|
|
|
|
orEvent.Or(event1).Or(event2);
|
|
|
|
event1.Trigger(0);
|
|
|
|
Assert.That(triggered, Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void OrEvent_Should_Trigger_When_Second_Event_Fires()
|
|
{
|
|
var event1 = new Event<int>();
|
|
var event2 = new Event<int>();
|
|
var orEvent = new OrEvent();
|
|
|
|
var triggered = false;
|
|
orEvent.Register(() => { triggered = true; });
|
|
|
|
orEvent.Or(event1).Or(event2);
|
|
|
|
event2.Trigger(0);
|
|
|
|
Assert.That(triggered, Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void OrEvent_Should_Support_Multiple_Handlers()
|
|
{
|
|
var @event = new Event<int>();
|
|
var orEvent = new OrEvent();
|
|
|
|
var count1 = 0;
|
|
var count2 = 0;
|
|
|
|
orEvent.Register(() => { count1++; });
|
|
orEvent.Register(() => { count2++; });
|
|
|
|
orEvent.Or(@event);
|
|
@event.Trigger(0);
|
|
|
|
Assert.That(count1, Is.EqualTo(1));
|
|
Assert.That(count2, Is.EqualTo(1));
|
|
}
|
|
|
|
[Test]
|
|
public void OrEvent_UnRegister_Should_Remove_Handler()
|
|
{
|
|
var @event = new Event<int>();
|
|
var orEvent = new OrEvent();
|
|
|
|
var count = 0;
|
|
var handler = () => { count++; };
|
|
|
|
orEvent.Register(handler);
|
|
orEvent.Or(@event);
|
|
|
|
@event.Trigger(0);
|
|
Assert.That(count, Is.EqualTo(1));
|
|
|
|
orEvent.UnRegister(handler);
|
|
@event.Trigger(0);
|
|
Assert.That(count, Is.EqualTo(1));
|
|
}
|
|
} |