public void Should_Run_Global_Tool_First_If_PreferGlobalTool_And_Fallback_To_Local_Tool() { var fixture = new MinVerToolFixture(_log) { Settings = { PreferGlobalTool = true }, }; fixture.GivenGlobalToolFailsToRun(); var result = fixture.Run(); fixture.GlobalTool.ShouldHaveRunOnce(); fixture.LocalTool.ShouldHaveRunOnce(); fixture.GlobalTool.ShouldHaveRunFirst(); fixture.LocalTool.ShouldHaveRunSecond(); result.Version.Should().Be(MinVerToolOutputs.DefaultVersionForLocalTool); }
public void Should_Not_Fallback_If_ToolPath_Is_Set() { var fixture = new MinVerToolFixture(_log); fixture.GivenLocalToolIsNotInstalled(); fixture.GivenGlobalToolIsNotInstalled(); var customToolExePath = fixture.DefaultToolPath.GetDirectory().CombineWithFilePath("customLocation/custom.exe"); fixture.FileSystem.CreateFile(customToolExePath); fixture.Settings.ToolPath = customToolExePath; fixture.GivenGlobalToolFailsToRun(); fixture.Invoking(f => f.Run()) .Should().ThrowExactly <CakeException>() .And.Message.Should().StartWith("MinVer: Process returned an error (exit code 1)"); fixture.GlobalTool.ShouldHaveRunOnce(); fixture.LocalTool.ShouldNotHaveRun(); }