public void AssemblyRunner_WithNullMethodName_Fails() { using (var runner = new AssemblyRunner()) { runner.Run("assembly.dll", "className", null); } }
public void AssemblyRunner_WithNullAssembly_Fails() { using (var runner = new AssemblyRunner()) { runner.Run(null, "className", "methodName"); } }
public void AssemblyRunner_Constructor_ReturnsIDisposable() { using (var runner = new AssemblyRunner()) { Assert.IsTrue(runner is IDisposable); } }
public void AssemblyRunner_WithValidArguments_ReturnsString() { using (var runner = new AssemblyRunner()) { var result = runner.Run("DummyDll.dll", "DummyClass", "SayHello"); Assert.IsFalse(string.IsNullOrEmpty(result)); } }
public void AssemblyRunner_WithFullPathDll_ReturnsString() { using (var runner = new AssemblyRunner()) { var result = runner.Run(Path.Combine(Directory.GetCurrentDirectory(), "DummyDll.dll"), "DummyClass", "SayHello"); Assert.IsFalse(string.IsNullOrEmpty(result)); } }
public async Task<string> GenerateViewAsync(string solutionPath, string activeDocument = null, int cursorPosition = -1) { var view = string.Empty; using (var tempDirectory = new TempDirectory()) { try { var workspace = MSBuildWorkspace.Create(); var solution = await workspace.OpenSolutionAsync(solutionPath); var newSolution = solution.GetIsolatedSolution(); var expressionSearcher = new ExpressionSearcher(); var expressionBuilder = new ExpressionBuilder(); var source = await expressionSearcher.FindSource(newSolution, activeDocument, cursorPosition); var target = await expressionSearcher.FindTarget(newSolution); var instrumentation = await expressionBuilder.BuildWrapper(source); var newCompilation = expressionSearcher.InsertNodeInCompilation(target.Compilation, target.Node, instrumentation); var instrumentedDll = Path.Combine(tempDirectory.FullName, Path.GetRandomFileName() + ".dll"); var emitResult = newCompilation.Emit(instrumentedDll); if (emitResult.Success) { using (var assemblyRunner = new AssemblyRunner()) { var result = assemblyRunner.Run(instrumentedDll, "WrapperClass", "WrapperMethod"); view = result; } } else { view = string.Join(Environment.NewLine, emitResult.Diagnostics); } } catch (Exception exception) { Console.WriteLine(exception.ToString()); view = exception.ToString(); } } return view; }