@@ -1257,7 +1257,7 @@ public void ComputeProjectBaseDir_BestCommonRoot_CaseSensitive_NoRoot_ReturnsNul
1257
1257
var runtimeInformationWrapper = Substitute . For < IRuntimeInformationWrapper > ( ) ;
1258
1258
runtimeInformationWrapper . IsOS ( OSPlatform . Windows ) . Returns ( false ) ;
1259
1259
var additionalFileService = Substitute . For < IAdditionalFilesService > ( ) ;
1260
- var sut = new PropertiesFileGenerator ( new ( ) { SonarOutputDir = @"C:\fallback" } , logger , new RoslynV1SarifFixer ( logger ) , runtimeInformationWrapper , additionalFileService ) ;
1260
+ var sut = new PropertiesFileGenerator ( new ( ) { SonarOutputDir = @"C:\fallback" } , logger , new RoslynV1SarifFixer ( logger ) , runtimeInformationWrapper , additionalFileService ) ;
1261
1261
var projectPaths = new [ ]
1262
1262
{
1263
1263
new DirectoryInfo ( @"C:\Projects\Name\Lib" ) ,
@@ -1313,6 +1313,37 @@ public void ComputeProjectBaseDir_WorkingDirectory_FilesOutsideWorkingDirectory_
1313
1313
logger . AssertSingleInfoMessageExists ( ProjectBaseDirInfoMessage ) ;
1314
1314
}
1315
1315
1316
+ [ DataTestMethod ] // the priority is local > scannerEnv > server.
1317
+ [ DataRow ( "local" , null , null , "local" ) ]
1318
+ [ DataRow ( "local" , "scannerEnv" , null , "local" ) ]
1319
+ [ DataRow ( "local" , null , "server" , "local" ) ]
1320
+ [ DataRow ( "local" , "scannerEnv" , "server" , "local" ) ]
1321
+ [ DataRow ( null , "scannerEnv" , null , "scannerEnv" ) ]
1322
+ [ DataRow ( null , "scannerEnv" , "server" , "scannerEnv" ) ]
1323
+ [ DataRow ( null , null , "server" , "server" ) ]
1324
+ public void ComputeProjectBaseDir_SetFromMultipleSources ( string local , string scannerEnv , string server , string expected )
1325
+ {
1326
+ var projectBaseDirKey = "sonar.projectBaseDir" ;
1327
+ using var scope = new EnvironmentVariableScope ( ) ;
1328
+ var config = new AnalysisConfig { LocalSettings = [ ] , ServerSettings = [ ] } ;
1329
+
1330
+ if ( local is not null )
1331
+ {
1332
+ config . LocalSettings . Add ( new ( projectBaseDirKey , local ) ) ;
1333
+ }
1334
+ if ( server is not null )
1335
+ {
1336
+ config . ServerSettings . Add ( new ( projectBaseDirKey , server ) ) ;
1337
+ }
1338
+ if ( scannerEnv is not null )
1339
+ {
1340
+ scope . SetVariable ( "SONARQUBE_SCANNER_PARAMS" , $$ """ {"{{projectBaseDirKey}}": "{{ scannerEnv }} "}""" ) ;
1341
+ }
1342
+
1343
+ new PropertiesFileGenerator ( config , logger ) . ComputeProjectBaseDir ( [ ] ) . Name . Should ( ) . Be ( expected ) ;
1344
+ logger . DebugMessages . Should ( ) . ContainSingle ( x => x . StartsWith ( "Using user supplied project base directory:" ) ) ;
1345
+ }
1346
+
1316
1347
[ TestMethod ]
1317
1348
public void GenerateFile_AdditionalFiles_EndToEnd ( )
1318
1349
{
0 commit comments