79 lines
3.2 KiB
C#
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);
|
|
}
|
|
}
|
|
|