mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-10 15:20:48 -05:00
enhance script plugin features
(support service resolver with generic args) (support requiresTarget for command)
This commit is contained in:
66
Tests/ApplicationTests/ScriptPluginServiceResolverTests.cs
Normal file
66
Tests/ApplicationTests/ScriptPluginServiceResolverTests.cs
Normal file
@ -0,0 +1,66 @@
|
||||
using ApplicationTests.Mocks;
|
||||
using IW4MAdmin.Application.Misc;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
|
||||
namespace ApplicationTests
|
||||
{
|
||||
public class ScriptPluginServiceResolverTests
|
||||
{
|
||||
private IServiceProvider serviceProvider;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
serviceProvider = new ServiceCollection()
|
||||
.BuildBase()
|
||||
.AddSingleton<ScriptPluginServiceResolver>()
|
||||
.AddSingleton<IScriptResolverMock, ScriptResolverMock>()
|
||||
.AddSingleton(new ScriptResolverMock { Value = "test" })
|
||||
.AddSingleton<IScriptResolverGenericMock<int, string>, ScriptResolverGenericMock<int,string>>()
|
||||
.AddSingleton(new ScriptResolverGenericMock<int, string> { Value = 123, Value2 = "test" })
|
||||
.BuildServiceProvider();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test_ResolveType()
|
||||
{
|
||||
var resolver = serviceProvider.GetService<ScriptPluginServiceResolver>();
|
||||
var expectedResolvedService = serviceProvider.GetService<ScriptResolverMock>();
|
||||
var resolvedService = resolver.ResolveService(nameof(ScriptResolverMock));
|
||||
|
||||
Assert.AreEqual(expectedResolvedService, resolvedService);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test_ResolveType_Interface()
|
||||
{
|
||||
var resolver = serviceProvider.GetService<ScriptPluginServiceResolver>();
|
||||
var expectedResolvedService = serviceProvider.GetService<IScriptResolverMock>();
|
||||
var resolvedService = resolver.ResolveService(nameof(IScriptResolverMock));
|
||||
|
||||
Assert.AreEqual(expectedResolvedService, resolvedService);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test_ResolveGenericType()
|
||||
{
|
||||
var resolver = serviceProvider.GetService<ScriptPluginServiceResolver>();
|
||||
var expectedResolvedService = serviceProvider.GetService<ScriptResolverGenericMock<int, string>>();
|
||||
var resolvedService = resolver.ResolveService("ScriptResolverGenericMock", new[] { "Int32", "String" });
|
||||
|
||||
Assert.AreEqual(expectedResolvedService, resolvedService);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test_ResolveGenericType_Interface()
|
||||
{
|
||||
var resolver = serviceProvider.GetService<ScriptPluginServiceResolver>();
|
||||
var expectedResolvedService = serviceProvider.GetService<IScriptResolverGenericMock<int, string>>();
|
||||
var resolvedService = resolver.ResolveService("IScriptResolverGenericMock", new[] { "Int32", "String" });
|
||||
|
||||
Assert.AreEqual(expectedResolvedService, resolvedService);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user