using GFramework.Godot.SourceGenerators.Abstractions; namespace GFramework.Godot.SourceGenerators.Tests.Abstractions; /// /// 验证 的参数约束。 /// [TestFixture] public class AutoLoadAttributeTests { /// /// 验证构造函数会保留合法的 AutoLoad 名称。 /// [Test] public void Constructor_Should_Store_Name_When_Name_Is_Valid() { var attribute = new AutoLoadAttribute("GameServices"); Assert.That(attribute.Name, Is.EqualTo("GameServices")); } /// /// 验证构造函数会拒绝空引用。 /// [Test] public void Constructor_Should_Throw_When_Name_Is_Null() { var exception = Assert.Throws(() => new AutoLoadAttribute(null!)); Assert.That(exception!.ParamName, Is.EqualTo("name")); } /// /// 验证构造函数会拒绝空字符串与仅空白字符串。 /// [TestCase("")] [TestCase(" ")] [TestCase("\t")] public void Constructor_Should_Throw_When_Name_Is_Empty_Or_Whitespace(string name) { var exception = Assert.Throws(() => new AutoLoadAttribute(name)); Assert.Multiple(() => { Assert.That(exception!.ParamName, Is.EqualTo("name")); Assert.That(exception.Message, Does.Contain("empty or whitespace")); }); } }