private static BuildToolsServer StartBuildServer(Mock <IProject> projectMock, ICommunicationChannel channel, IFileSynchronizationManager deployManager = null, IBuildErrorProcessor errorProcessor = null) { deployManager = deployManager ?? new Mock <IFileSynchronizationManager>().Object; errorProcessor = errorProcessor ?? new Mock <IBuildErrorProcessor>().Object; var output = new Mock <IOutputWindowManager>(); output.Setup((w) => w.GetExecutionResultPane()).Returns(new Mock <IOutputWindowWriter>().Object); var server = new BuildToolsServer(projectMock.Object, channel, output.Object, errorProcessor, deployManager, null); projectMock.Raise((p) => p.Loaded += null, projectMock.Object.Options); // starts the server return(server); }
private static async Task <VSRAD.BuildTools.IPCBuildResult> FetchResultOnClientAsync(BuildToolsServer server) { VSRAD.BuildTools.IPCBuildResult message = null; var tcs = new TaskCompletionSource <bool>(); new Thread(() => { var client = new NamedPipeClientStream(server.PipeName); client.Connect(); message = VSRAD.BuildTools.IPCBuildResult.Read(client); client.Close(); tcs.SetResult(true); }).Start(); await tcs.Task; return(message); }