using NodePipeline.Abstractions.Attributes.Validation.Node;
using NodePipeline.Abstractions.Interfaces.Nodes;
using NodePipeline.Engine.CodeGeneration.Abstractions.Models;
using NodePipeline.Engine.Tests.CodeGeneratorTests.Fixtures.TestValidators;

namespace NodePipeline.Engine.Tests.CodeGeneratorTests.Fixtures.MockNodes;

[HasNodeValidator(typeof(EmptyValidator))]
public class NodeWithEmptyValidator : INode
{
    public void Execute()
    {
        throw new NotImplementedException();
    }

    internal static NodeDescriptor GetDescriptor()
    {
        return new NodeDescriptor(nameof(NotImplementedINode), false, typeof(NotImplementedINode).FullName!,
            typeof(NotImplementedINode).FullName!, [], true,
            new List<ValidatorDescriptor> { new(typeof(EmptyValidator).FullName!, true) });
    }
}