public SS14UnitTest() { /* * Assembly.getEntryAssembly() returns null because Unit tests * are unmanaged and have no app domain managers. * this causes IOCManager to never load or build any of the types * * Fixed by Setting the Entry assembly values manually here */ Assembly assembly = Assembly.GetCallingAssembly(); AppDomainManager manager = new AppDomainManager(); FieldInfo entryAssemblyfield = manager.GetType().GetField("m_entryAssembly", BindingFlags.Instance | BindingFlags.NonPublic); entryAssemblyfield.SetValue(manager, assembly); AppDomain domain = AppDomain.CurrentDomain; FieldInfo domainManagerField = domain.GetType().GetField("_domainManager", BindingFlags.Instance | BindingFlags.NonPublic); domainManagerField.SetValue(domain, manager); /* end fix */ //ConfigurationManager setup GetConfigurationManager = IoCManager.Resolve <IPlayerConfigurationManager>(); GetConfigurationManager.Initialize("./player_config.xml"); //ResourceManager Setup GetResourceManager = IoCManager.Resolve <IResourceManager>(); InitializeResources(); }
public void BaseSetup() { TestFixtureAttribute a = Attribute.GetCustomAttribute(GetType(), typeof(TestFixtureAttribute)) as TestFixtureAttribute; if (NeedsResourcePack && Headless) { // Disable the test automatically. a.Explicit = true; return; } // Clear state across tests. IoCManager.Clear(); RegisterIoC(); var Assemblies = new List <Assembly>(4); string AssemblyDir = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); switch (Project) { case UnitTestProject.Client: Assemblies.Add(Assembly.LoadFrom(Path.Combine(AssemblyDir, "SS14.Client.exe"))); break; case UnitTestProject.Server: Assemblies.Add(Assembly.LoadFrom(Path.Combine(AssemblyDir, "SS14.Server.exe"))); break; default: throw new NotSupportedException($"Unknown testing project: {Project}"); } Assemblies.Add(Assembly.LoadFrom(Path.Combine(AssemblyDir, "SS14.Shared.dll"))); Assemblies.Add(Assembly.GetExecutingAssembly()); IoCManager.Resolve <IReflectionManager>().LoadAssemblies(Assemblies); if (NeedsClientConfig) { //ConfigurationManager setup GetConfigurationManager = IoCManager.Resolve <IConfigurationManager>(); GetConfigurationManager.LoadFromFile(PathHelpers.ExecutableRelativeFile("./client_config.toml")); } if (NeedsResourcePack) { GetResourceCache = IoCManager.Resolve <IResourceCache>(); InitializeResources(); } }
public SS14UnitTest() { var assemblies = new List <Assembly>(); string assemblyDir = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); assemblies.Add(Assembly.LoadFrom(Path.Combine(assemblyDir, "SS14.Client.Services.dll"))); assemblies.Add(Assembly.LoadFrom(Path.Combine(assemblyDir, "SS14.Server.Services.dll"))); IoCManager.AddAssemblies(assemblies); //ConfigurationManager setup GetConfigurationManager = IoCManager.Resolve <IPlayerConfigurationManager>(); GetConfigurationManager.Initialize("./player_config.xml"); #if !HEADLESS //ResourceManager Setup GetResourceManager = IoCManager.Resolve <IResourceManager>(); InitializeResources(); #endif }