Files
Denso/srcs/RobotNet10/Tests/RobotNet10.ScriptEngine.Test/Helpers/TestHelpers.cs
2026-07-03 16:31:37 +07:00

79 lines
3.2 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Moq;
using RobotNet10.Script;
using RobotNet10.ScriptEngine.HubContexts;
using RobotNet10.ScriptEngine.Models;
using RobotNet10.ScriptEngine.Shared;
namespace RobotNet10.ScriptEngine.Test.Helpers;
public static class TestHelpers
{
public static Mock<IScriptEngineResource> CreateMockScriptResource()
{
var mock = new Mock<IScriptEngineResource>();
mock.Setup(x => x.GetTaskGlobals()).Returns(new Dictionary<string, object?>());
mock.Setup(x => x.GetMissionGlobals(It.IsAny<Guid>(), It.IsAny<CancellationToken>())).Returns(new Dictionary<string, object?>());
mock.Setup(x => x.AppGlobalType).Returns(typeof(object));
mock.Setup(x => x.UsingNamespaces).Returns(System.Collections.Immutable.ImmutableArray<string>.Empty);
mock.Setup(x => x.Modules).Returns(System.Collections.Immutable.ImmutableArray<string>.Empty);
return mock;
}
public static Mock<ILogger<ScriptEngineGlobals>> CreateMockLogger()
{
return new Mock<ILogger<ScriptEngineGlobals>>();
}
public static Mock<IServiceScopeFactory> CreateMockScopeFactory(IServiceProvider serviceProvider)
{
var mockScope = new Mock<IServiceScope>();
mockScope.Setup(x => x.ServiceProvider).Returns(serviceProvider);
var mockScopeFactory = new Mock<IServiceScopeFactory>();
mockScopeFactory.Setup(x => x.CreateScope()).Returns(mockScope.Object);
return mockScopeFactory;
}
public static Mock<ConsoleHubContext> CreateMockConsoleHubContext()
{
return new Mock<ConsoleHubContext>(Mock.Of<Microsoft.AspNetCore.SignalR.IHubContext<RobotNet10.ScriptEngine.Hubs.ConsoleHub>>());
}
public static IConfiguration CreateMockConfiguration()
{
var configuration = new ConfigurationBuilder()
.AddInMemoryCollection(new Dictionary<string, string?>())
.Build();
return configuration;
}
public static Mock<Microsoft.AspNetCore.SignalR.IHubContext<RobotNet10.ScriptEngine.Hubs.ScriptManagerHub>> CreateMockHubContext()
{
return new Mock<Microsoft.AspNetCore.SignalR.IHubContext<RobotNet10.ScriptEngine.Hubs.ScriptManagerHub>>();
}
public static Mock<RobotNet10.Script.ILogger> CreateMockScriptLogger()
{
return new Mock<RobotNet10.Script.ILogger>();
}
public static ScriptGlobals CreateTestScriptGlobals(RobotNet10.Script.ILogger logger, IServiceScopeFactory scopeFactory)
{
var scriptEngineGlobals = new ScriptEngineGlobals(logger, scopeFactory);
var robotNetDict = new Dictionary<string, object?>
{
["get_Logger"] = new Func<RobotNet10.Script.ILogger>(() => logger)
};
var appApisDict = new Dictionary<string, object?>();
var globalVariablesDict = new Dictionary<string, object?>();
var missionParametersDict = new Dictionary<string, object?>();
return new ScriptGlobals(robotNetDict, appApisDict, globalVariablesDict, missionParametersDict);
}
}