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() .AddSingleton() .AddSingleton(new ScriptResolverMock { Value = "test" }) .AddSingleton, ScriptResolverGenericMock>() .AddSingleton(new ScriptResolverGenericMock { Value = 123, Value2 = "test" }) .BuildServiceProvider(); } [Test] public void Test_ResolveType() { var resolver = serviceProvider.GetService(); var expectedResolvedService = serviceProvider.GetService(); var resolvedService = resolver.ResolveService(nameof(ScriptResolverMock)); Assert.AreEqual(expectedResolvedService, resolvedService); } [Test] public void Test_ResolveType_Interface() { var resolver = serviceProvider.GetService(); var expectedResolvedService = serviceProvider.GetService(); var resolvedService = resolver.ResolveService(nameof(IScriptResolverMock)); Assert.AreEqual(expectedResolvedService, resolvedService); } [Test] public void Test_ResolveGenericType() { var resolver = serviceProvider.GetService(); var expectedResolvedService = serviceProvider.GetService>(); var resolvedService = resolver.ResolveService("ScriptResolverGenericMock", new[] { "Int32", "String" }); Assert.AreEqual(expectedResolvedService, resolvedService); } [Test] public void Test_ResolveGenericType_Interface() { var resolver = serviceProvider.GetService(); var expectedResolvedService = serviceProvider.GetService>(); var resolvedService = resolver.ResolveService("IScriptResolverGenericMock", new[] { "Int32", "String" }); Assert.AreEqual(expectedResolvedService, resolvedService); } } }