public void PreProc_NonEmptySonarRunnerProperties() { // Checks the ruleset generator is called with the expected arguments // Arrange string testDir = TestUtils.CreateTestSpecificFolder(this.TestContext); string propertiesFile = CreatePropertiesFile(testDir, "my url", "my user name", "my password"); MockPropertiesFetcher mockPropertiesFetcher = new MockPropertiesFetcher(); MockRulesetGenerator mockRulesetGenerator = new MockRulesetGenerator(); TestLogger logger = new TestLogger(); string expectedConfigFileName; using (PreprocessTestUtils.CreateValidLegacyTeamBuildScope("tfs uri", "build uri", testDir)) { TeamBuildSettings settings = TeamBuildSettings.GetSettingsFromEnvironment(new ConsoleLogger()); Assert.IsNotNull(settings, "Test setup error: TFS environment variables have not been set correctly"); expectedConfigFileName = settings.AnalysisConfigFilePath; TeamBuildPreProcessor preProcessor = new TeamBuildPreProcessor(mockPropertiesFetcher, mockRulesetGenerator); // Act preProcessor.Execute(logger, "key", "name", "ver", propertiesFile); } // Assert mockPropertiesFetcher.AssertFetchPropertiesCalled(); mockPropertiesFetcher.CheckFetcherArguments("my url", "key"); mockRulesetGenerator.AssertGenerateCalled(); mockRulesetGenerator.CheckGeneratorArguments("my url", "key"); logger.AssertErrorsLogged(0); logger.AssertWarningsLogged(0); }
public void PreProc_EmptySonarRunnerProperties() { // Checks the pre-processor creates a valid config file // Arrange string testDir = TestUtils.CreateTestSpecificFolder(this.TestContext); string propertiesFile = CreateEmptyPropertiesFile(testDir); MockPropertiesFetcher mockPropertiesFetcher = new MockPropertiesFetcher(); MockRulesetGenerator mockRulesetGenerator = new MockRulesetGenerator(); TestLogger logger = new TestLogger(); string expectedConfigFileName; using (PreprocessTestUtils.CreateValidLegacyTeamBuildScope("tfs uri", "http://builduri", testDir)) { TeamBuildSettings settings = TeamBuildSettings.GetSettingsFromEnvironment(new ConsoleLogger()); Assert.IsNotNull(settings, "Test setup error: TFS environment variables have not been set correctly"); expectedConfigFileName = settings.AnalysisConfigFilePath; TeamBuildPreProcessor preProcessor = new TeamBuildPreProcessor(mockPropertiesFetcher, mockRulesetGenerator); // Act preProcessor.Execute(logger, "key", "name", "ver", propertiesFile); } // Assert Assert.IsTrue(File.Exists(expectedConfigFileName), "Config file does not exist: {0}", expectedConfigFileName); AnalysisConfig config = AnalysisConfig.Load(expectedConfigFileName); Assert.IsTrue(Directory.Exists(config.SonarOutputDir), "Output directory was not created: {0}", config.SonarOutputDir); Assert.IsTrue(Directory.Exists(config.SonarConfigDir), "Config directory was not created: {0}", config.SonarConfigDir); Assert.AreEqual("key", config.SonarProjectKey); Assert.AreEqual("name", config.SonarProjectName); Assert.AreEqual("ver", config.SonarProjectVersion); Assert.AreEqual("http://builduri", config.GetBuildUri()); Assert.AreEqual("tfs uri", config.GetTfsUri()); Assert.AreEqual(propertiesFile, config.SonarRunnerPropertiesPath); mockPropertiesFetcher.AssertFetchPropertiesCalled(); mockPropertiesFetcher.CheckFetcherArguments("http://localhost:9000", "key"); mockRulesetGenerator.AssertGenerateCalled(); mockRulesetGenerator.CheckGeneratorArguments("http://localhost:9000", "key"); }