public void TryGenerateScript_OnlyProcessProvidedPlatform_IfMultiPlatformIsDisabled() { // Arrange var detector1 = new TestPlatformDetectorSimpleMatch(shouldMatch: true, "main", "1.0.0"); var platform1 = new TestProgrammingPlatform( "main", new[] { "1.0.0" }, canGenerateScript: true, scriptContent: "script-content", detector: detector1); var detector2 = new TestPlatformDetectorSimpleMatch(shouldMatch: true, "anotherPlatform", "1.0.0"); var platform2 = new TestProgrammingPlatform( "anotherPlatform", new[] { "1.0.0" }, canGenerateScript: true, scriptContent: "some code", detector: detector2); var commonOptions = new BuildScriptGeneratorOptions { PlatformName = "main", PlatformVersion = "1.0.0", EnableMultiPlatformBuild = false, }; var generator = CreateDefaultScriptGenerator(new[] { platform1, platform2 }, commonOptions); var context = CreateScriptGeneratorContext(); // Act generator.GenerateBashScript(context, out var generatedScript); // Assert Assert.Contains("script-content", generatedScript); Assert.DoesNotContain("some code", generatedScript); }
public void Checkers_DontFailTheBuild_WhenTheyThrow() { // Arrange bool checkerRan = false; IChecker[] checkers = { new TestChecker(() => { checkerRan = true; throw new Exception("checker failed"); }) }; var platformVersion = "1.0.0"; var detector = new TestPlatformDetectorSimpleMatch(true, TestPlatformName, platformVersion); var scriptContent = "script-content"; var platform = new TestProgrammingPlatform( TestPlatformName, new[] { platformVersion }, true, scriptContent, detector: detector); var commonOptions = new BuildScriptGeneratorOptions { PlatformName = TestPlatformName, PlatformVersion = platformVersion, EnableCheckers = true, }; var generator = CreateDefaultScriptGenerator(new[] { platform }, commonOptions, checkers); var context = CreateScriptGeneratorContext(); var messages = new List <ICheckerMessage>(); // Act generator.GenerateBashScript(context, out var generatedScript, messages); // Assert Assert.True(checkerRan); }
public void Checkers_AreAppliedCorrectly_WhenCheckersAreEnabled() { // Arrange var repoWarning = new CheckerMessage("some repo warning"); IChecker[] checkers = { new TestChecker(() => new[] { repoWarning }) }; var platformVersion = "1.0.0"; var detector = new TestPlatformDetectorSimpleMatch(true, TestPlatformName, platformVersion); var platform = new TestProgrammingPlatform( TestPlatformName, new[] { platformVersion }, true, "script-content", detector: detector); var commonOptions = new BuildScriptGeneratorOptions { PlatformName = TestPlatformName, PlatformVersion = platformVersion, EnableCheckers = true, }; var generator = CreateDefaultScriptGenerator(new[] { platform }, commonOptions, checkers); var context = CreateScriptGeneratorContext(); var messages = new List <ICheckerMessage>(); // Act // Return value of TryGenerateBashScript is irrelevant - messages should be added even if build fails generator.GenerateBashScript(context, out var generatedScript, messages); // Assert Assert.Single(messages); Assert.Equal(repoWarning, messages.First()); }