// using System.Reflection;
// using NodePipeline.Abstractions.Interfaces.Nodes;
// using NodePipeline.Engine.CodeGeneration.CodeGeneration;
// using NodePipeline.Engine.CodeGeneration.Models;
// using NodePipeline.Engine.Tests.CodeGeneratorTests.Fixtures;
// using NodePipeline.Engine.Tests.CodeGeneratorTests.Fixtures.MockNodes;
// using NodePipeline.Engine.Tests.CodeGeneratorTests.Fixtures.NodeFields;
//
// namespace NodePipeline.Engine.Tests.CodeGeneratorTests;
//
// public class NodeFactoryTests
// {
//     [Fact]
//     public void ConnectPorts_StrictToStrict_Works()
//     {
//         var output = new FakeField<string>();
//         var input = new FakeField<string>();
//         
//         
//
//         var info = TryConnectPorts("p", "n", "t", input, "in", inputs, "key", createdNodes);
//
//         Assert.True(info.Connected);
//         Assert.AreSame(output, input.BoundTo);
//     }
//     
//     [Fact]
//     public void ConnectPorts_NullableToNullable_Works()
//     {
//         var output = new FakeField<string?>();
//         var input = new FakeField<string?>();
//
//         var info = TryConnectPorts(...);
//
//         Assert.True(info.Connected);
//         Assert.NotNull(input.RuntimeGetter);
//     }
//
//     [Fact]
//     public void ConnectPorts_NullableToStrict_ThrowsIfDisallowed()
//     {
//         var output = new FakeField<string?>();
//         var input = new FakeField<string>();
//
//         Assert.Throws<NonNullableInputRestrictsConnectionToNullableOutputException>(() =>
//             ConnectPortsClass(... disallowNullableOutput: true)
//             );
//     }
//     
//     [Fact]
//     public void ConnectPorts_StrictToNullable_Works()
//     {
//         var output = new FakeField<string>();
//         var input = new FakeField<string?>();
//
//         var info = TryConnectPorts(...);
//
//         Assert.True(info.Connected);
//         Assert.NotNull(input.RuntimeGetter);
//     }
// }

