GeWuYou b49079de3e style(coding-style): 统一代码风格并优化文档格式
- 移除多余using语句和空行,统一代码缩进格式
- 优化注释文档中的缩进和对齐格式
- 简化条件语句和方法实现,提升代码可读性
- 重构协程系统相关类的字段和方法定义格式
- 更新架构服务中容器访问方式的实现
- 调整异步操作类的属性和方法组织结构
- [skip ci]
2026-01-27 20:30:04 +08:00

104 lines
2.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.events;
using NUnit.Framework;
namespace GFramework.Core.Tests.events;
/// <summary>
/// 测试OrEvent类的功能验证其在多个事件中的逻辑或操作行为
/// </summary>
[TestFixture]
public class OrEventTests
{
/// <summary>
/// 测试当任意一个事件触发时OrEvent应该被触发
/// 验证基本的OR逻辑功能
/// </summary>
[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中
orEvent.Or(event1).Or(event2);
event1.Trigger(0);
Assert.That(triggered, Is.True);
}
/// <summary>
/// 测试当第二个事件触发时OrEvent应该被触发
/// 验证OR逻辑对所有注册事件都有效
/// </summary>
[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中
orEvent.Or(event1).Or(event2);
event2.Trigger(0);
Assert.That(triggered, Is.True);
}
/// <summary>
/// 测试OrEvent支持多个处理程序
/// 验证单个OrEvent可以注册多个回调函数
/// </summary>
[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中
orEvent.Or(@event);
@event.Trigger(0);
Assert.That(count1, Is.EqualTo(1));
Assert.That(count2, Is.EqualTo(1));
}
/// <summary>
/// 测试UnRegister方法应该移除处理程序
/// 验证注销功能能够正确移除已注册的回调函数
/// </summary>
[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));
}
}