public async Task ProcessSingleBuildThatFails() { var cache = new TestBlobCache(); var client = new GitHubClient(new ProductHeaderValue("Peasant")); var stdout = new Subject<string>(); var allLines = stdout.CreateCollection(); var fixture = new BuildQueue(client, cache); var result = default(int); bool shouldDie = true; try { // NB: This build fails because NuGet package restore wasn't set // up properly, so MSBuild is missing a ton of assemblies result = await fixture.ProcessSingleBuild(new BuildQueueItem() { BuildId = 1, BuildScriptUrl = TestBuild.BuildScriptUrl, RepoUrl = TestBuild.RepoUrl, SHA1 = TestBuild.FailingBecauseOfMsbuildSHA1, }, stdout); } catch (Exception ex) { Console.WriteLine(ex.ToString()); shouldDie = false; } var output = allLines.Aggregate(new StringBuilder(), (acc, x) => { acc.AppendLine(x); return acc; }).ToString(); Console.WriteLine(output); Assert.False(shouldDie); }
public async Task ProcessSingleBuildIntegrationTest() { var cache = new TestBlobCache(); var client = new GitHubClient(new ProductHeaderValue("Peasant")); var stdout = new Subject<string>(); var allLines = stdout.CreateCollection(); var fixture = new BuildQueue(client, cache); var result = await fixture.ProcessSingleBuild(new BuildQueueItem() { BuildId = 1, BuildScriptUrl = TestBuild.BuildScriptUrl, RepoUrl = TestBuild.RepoUrl, SHA1 = TestBuild.PassingBuildSHA1, }, stdout); var output = allLines.Aggregate(new StringBuilder(), (acc, x) => { acc.AppendLine(x); return acc; }).ToString(); Console.WriteLine(output); Assert.Equal(0, result); Assert.False(String.IsNullOrWhiteSpace(output)); }