mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
54 lines
1.8 KiB
C#
54 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Robust.Shared.Configuration;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Log;
|
|
using Robust.Shared.Timing;
|
|
|
|
namespace Robust.UnitTesting;
|
|
|
|
/// <summary>
|
|
/// Creates implementations of common engine interfaces for use in unit tests.
|
|
/// </summary>
|
|
public static class MockInterfaces
|
|
{
|
|
/// <summary>
|
|
/// Creates an instance of <see cref="IConfigurationManager"/>.
|
|
/// </summary>
|
|
/// <param name="gameTiming">The timing service used.</param>
|
|
/// <param name="logManager">The log service used.</param>
|
|
/// <param name="isServer">
|
|
/// Whether this configuration manager will treat itself as server or client.
|
|
/// This is only relevant for CVars that are defined as <see cref="CVar.CLIENTONLY"/> or <see cref="CVar.SERVERONLY"/>.
|
|
/// </param>
|
|
/// <param name="loadCvarsFromTypes">
|
|
/// A list of additional types to pull CVar definitions from.
|
|
/// These normally have <see cref="CVarDefsAttribute"/>.
|
|
/// </param>
|
|
public static IConfigurationManager MakeConfigurationManager(
|
|
IGameTiming gameTiming,
|
|
ILogManager logManager,
|
|
bool isServer = true,
|
|
IEnumerable<Type>? loadCvarsFromTypes = null)
|
|
{
|
|
var deps = new DependencyCollection();
|
|
deps.RegisterInstance<IGameTiming>(gameTiming);
|
|
deps.RegisterInstance<ILogManager>(logManager);
|
|
deps.Register<ConfigurationManager>();
|
|
deps.BuildGraph();
|
|
|
|
var cfg = deps.Resolve<ConfigurationManager>();
|
|
cfg.Initialize(isServer);
|
|
|
|
if (loadCvarsFromTypes != null)
|
|
{
|
|
foreach (var loadFromType in loadCvarsFromTypes)
|
|
{
|
|
cfg.LoadCVarsFromType(loadFromType);
|
|
}
|
|
}
|
|
|
|
return cfg;
|
|
}
|
|
}
|