3
using System.Reflection;
9
namespace Mono.Cecil.Tests {
11
public abstract class BaseTestFixture {
13
public static string GetResourcePath (string name, Assembly assembly)
15
return Path.Combine (FindResourcesDirectory (assembly), name);
18
public static string GetAssemblyResourcePath (string name, Assembly assembly)
20
return GetResourcePath (Path.Combine ("assemblies", name), assembly);
23
public static string GetCSharpResourcePath (string name, Assembly assembly)
25
return GetResourcePath (Path.Combine ("cs", name), assembly);
28
public static string GetILResourcePath (string name, Assembly assembly)
30
return GetResourcePath (Path.Combine ("il", name), assembly);
33
public static ModuleDefinition GetResourceModule (string name)
35
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, typeof (BaseTestFixture).Assembly));
38
public static ModuleDefinition GetResourceModule (string name, ReaderParameters parameters)
40
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, typeof (BaseTestFixture).Assembly), parameters);
43
public static ModuleDefinition GetResourceModule (string name, ReadingMode mode)
45
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, typeof (BaseTestFixture).Assembly), new ReaderParameters (mode));
48
internal static Image GetResourceImage (string name)
50
using (var fs = new FileStream (GetAssemblyResourcePath (name, typeof (BaseTestFixture).Assembly), FileMode.Open, FileAccess.Read))
51
return ImageReader.ReadImageFrom (fs);
54
public static ModuleDefinition GetCurrentModule ()
56
return ModuleDefinition.ReadModule (typeof (BaseTestFixture).Module.FullyQualifiedName);
59
public static ModuleDefinition GetCurrentModule (ReaderParameters parameters)
61
return ModuleDefinition.ReadModule (typeof (BaseTestFixture).Module.FullyQualifiedName, parameters);
64
public static string FindResourcesDirectory (Assembly assembly)
66
var path = Path.GetDirectoryName (new Uri (assembly.CodeBase).LocalPath);
67
while (!Directory.Exists (Path.Combine (path, "Resources"))) {
69
path = Path.GetDirectoryName (path);
70
Assert.AreNotEqual (old, path);
73
return Path.Combine (path, "Resources");