Commit cdc7c174 authored by shrabbit's avatar shrabbit
Browse files

移除优化测试,添加空测试包和相关测试,更新工作空间接口和图上下文

parent 51afaa96
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
using Nocube.Common;
using Nocube.Common.Nodes;
using Nocube.Common.Packages;
using Nocube.Common.Properties;

namespace EmptyTestPackage;

public class Class1 : IPackageLoader
{
    public void LoadPackage(ICollection<Func<INode>> nodeRegister, IEngineContext context)
    {
        nodeRegister.Add(() => new LightFunction(
            "abc", 
            "abc", 
            "abc", 
            [ 
                new Property<int>(
                    "abc",
                    "abc",
                    FlowDirect.In) 
            ],
            (_) => { }
            )
        );
    }

    public string Name { get; } = "abc";
    public string Description { get; } = "abc";
    public Guid Id { get; } = new Guid("{E078ADC4-35BA-45DA-9854-D6CAF486A8B5}");
    public string Author { get; } = "abc";
    public Version Version { get; } = new(1, 2);
    public Version? EngineMinVersionRequire { get; } = new(1, 2);
    public Version? EngineMaxVersionRequire { get; } = new(1, 2);
    public Version? CommonMinVersionRequire { get; } = new(1, 2);
    public Version? CommonMaxVersionRequire { get; } = new(1, 2);
    public VersionRequire[] PackageDepends { get; } = [];
}
 No newline at end of file
+14 −0
Original line number Diff line number Diff line
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net10.0</TargetFramework>
        <LangVersion>14</LangVersion>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
      <ProjectReference Include="..\Nocube.Common\Nocube.Common.csproj" />
    </ItemGroup>

</Project>
+13 −5
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ using Nocube.Common.IO;
using Nocube.Common.Nodes;
using Nocube.Common.Packages;
using Nocube.Common.Properties;
using Nocube.Engine.Engines;
using Nocube.Engine.Graphs;
using Nocube.Engine.Shared;

@@ -27,7 +28,7 @@ public class GraphTest
        };
        var verTarget = new Version(1, 2);

        var engine = new Engine();
        var engine = new Workspace();
        
        var graph = new Graph(engine)
        {
@@ -83,7 +84,7 @@ public class GraphTest
    [Test]
    public async Task NodeTest()
    {
        var engine = new Engine();
        var engine = new Workspace();
        var graph = new Graph(engine);

        var node = new TestNode();
@@ -111,7 +112,7 @@ public class GraphTest
    [Test]
    public async Task NodeAndReloadTest()
    {
        var engine = new Engine();
        var engine = new Workspace();
        var graph = new Graph(engine);

        var node = new TestNode();
@@ -157,7 +158,7 @@ public class GraphTest
    [Test]
    public async Task LinkingTest()
    {
        var engine = new Engine();
        var engine = new Workspace();
        var graph = new Graph(engine);

        var result = "Hello";
@@ -199,7 +200,7 @@ public class GraphTest
    [Test]
    public async Task LinkingNodeAndReloadTest()
    {
        var engine = new Engine();
        var engine = new Workspace();
        var graph = new Graph(engine);

        var result = "Hello";
@@ -271,6 +272,13 @@ public class GraphTest
    }
}

internal class Workspace : IWorkspace
{
    public IEngineContext Context { get; } = new Engine();
    public string BasePath { get; } = "";
    public List<Func<INode>> Nodes { get; } = [];
}

internal class Engine : IEngineContext
{
    public IEnumerable<INode> GetNodes()
+31 −0
Original line number Diff line number Diff line
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net10.0</TargetFramework>
        <LangVersion>latest</LangVersion>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <IsPackable>false</IsPackable>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="coverlet.collector" Version="6.0.4"/>
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.0"/>
        <PackageReference Include="NUnit" Version="4.3.2"/>
        <PackageReference Include="NUnit.Analyzers" Version="4.7.0"/>
        <PackageReference Include="NUnit3TestAdapter" Version="5.0.0"/>
    </ItemGroup>

    <ItemGroup>
        <Using Include="NUnit.Framework"/>
    </ItemGroup>

    <ItemGroup>
      <ProjectReference Include="..\Nocube.Engine\Nocube.Engine.csproj" />
    </ItemGroup>

    <ItemGroup>
      <Folder Include="Graphs\" />
    </ItemGroup>

</Project>
+51 −0
Original line number Diff line number Diff line
using Nocube.Common;
using Nocube.Common.IO;
using Nocube.Common.Nodes;
using Nocube.Common.Packages;
using Nocube.Engine.Engines;
using Nocube.Engine.Packages;

namespace Nocube.Engine.Test.Packages;

[TestFixture]
[TestOf(typeof(PackageLoader))]
public class PackageLoaderTest
{
    [Test]
    public async Task FindPackageTest()
    {
        var loader = new PackageLoader();
        var pack = await loader.ListInfos(PackageLoader.PackagePath).FirstAsync();
        
        Assert.Multiple(() =>
        {
            Assert.That(pack.Name, Is.EqualTo("abc"));
        });
    }

    [Test]
    public async Task InjectTest()
    {
        var loader = new PackageLoader();
        var pack = await loader.ListInfos(PackageLoader.PackagePath).FirstAsync();
        var reg = new NodeRegistry();
        var engine = new Engine();

        loader.InjectPackage(pack, reg, engine);
        
        // 查看节点是否注册
        Assert.Multiple(() =>
        {
            Console.WriteLine($"total node count: {engine.Context.GetNodes().Count()}");
            Assert.That(engine.Context.GetNodes().Any(n => n.Name == "abc"), Is.True);
            Assert.That(engine.Nodes.Any(n => n().Name == "abc"), Is.True);
        });
    }

    public class Engine : IWorkspace
    {
        public IEngineContext Context { get; } = new Graphs.Engine();
        public string BasePath { get; } = "";
        public List<Func<INode>> Nodes { get; } = [];
    }
}
 No newline at end of file
Loading