GeWuYou dda2d8f864 test(core): 添加核心组件单元测试并优化目标框架配置
- 在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]
2026-01-15 13:53:08 +08:00

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));
}
}