using GFramework.Core.functional.control; using NUnit.Framework; namespace GFramework.Core.Tests.functional.control; /// /// ControlExtensions扩展方法测试类,用于验证控制流函数式编程扩展方法的正确性 /// [TestFixture] public class ControlExtensionsTests { /// /// 测试TakeIf方法 - 验证条件为真时返回原值 /// [Test] public void TakeIf_Should_Return_Value_When_Condition_Is_True() { // Arrange string str = "Hello"; // Act var result = str.TakeIf(s => s.Length > 3); // Assert Assert.That(result, Is.EqualTo("Hello")); } /// /// 测试TakeIf方法 - 验证条件为假时返回null /// [Test] public void TakeIf_Should_Return_Null_When_Condition_Is_False() { // Arrange string str = "Hi"; // Act var result = str.TakeIf(s => s.Length > 3); // Assert Assert.That(result, Is.Null); } /// /// 测试TakeUnless方法 - 验证条件为假时返回原值 /// [Test] public void TakeUnless_Should_Return_Value_When_Condition_Is_False() { // Arrange string str = "Hi"; // Act var result = str.TakeUnless(s => s.Length > 3); // Assert Assert.That(result, Is.EqualTo("Hi")); } /// /// 测试TakeUnless方法 - 验证条件为真时返回null /// [Test] public void TakeUnless_Should_Return_Null_When_Condition_Is_True() { // Arrange string str = "Hello"; // Act var result = str.TakeUnless(s => s.Length > 3); // Assert Assert.That(result, Is.Null); } }