public class SensorContextTester extends Object implements SensorContext
Sensor
. This is not an API and method signature may evolve.
Usage: call create(File)
to create an "in memory" implementation of SensorContext
with a filesystem initialized with provided baseDir.
You have to manually register inputFiles using:
sensorContextTester.fileSystem().add(new DefaultInputFile("myProjectKey", "src/Foo.java") .setLanguage("java") .initMetadata("public class Foo {\n}"));
Then pass it to your Sensor
. You can then query elements provided by your sensor using methods allIssues()
, ...
Modifier and Type | Method and Description |
---|---|
ActiveRules |
activeRules()
Get list of active rules.
|
void |
addContextProperty(String key,
String value)
Add a property to the scanner context.
|
Collection<AnalysisError> |
allAnalysisErrors() |
Collection<Issue> |
allIssues() |
Integer |
conditions(String fileKey,
int line) |
Integer |
coveredConditions(String fileKey,
int line) |
List<TokensLine> |
cpdTokens(String componentKey) |
static SensorContextTester |
create(File moduleBaseDir) |
static SensorContextTester |
create(Path moduleBaseDir) |
DefaultFileSystem |
fileSystem()
Get filesystem of the current module.
|
Map<String,String> |
getContextProperties() |
Version |
getSonarQubeVersion()
Default value is the version of this API at compilation time.
|
List<TypeOfText> |
highlightingTypeAt(String componentKey,
int line,
int lineOffset)
Return list of syntax highlighting applied for a given position in a file.
|
boolean |
isCancelled()
Test if a cancellation of the analysis was requested.
|
Integer |
lineHits(String fileKey,
int line) |
void |
markForPublishing(InputFile inputFile)
Indicate that a file should be published in the report sent to SonarQube.
|
static Integer |
maxOrNull(Integer o1,
Integer o2) |
<G extends Serializable> |
measure(String componentKey,
Metric<G> metric) |
<G extends Serializable> |
measure(String componentKey,
String metricKey) |
Collection<Measure> |
measures(String componentKey) |
InputModule |
module() |
NewAnalysisError |
newAnalysisError()
Builder to declare errors that happened while processing a source file.
|
NewCoverage |
newCoverage()
Builder to define coverage in a file.
|
NewCpdTokens |
newCpdTokens()
Builder to define CPD tokens in a file.
|
NewHighlighting |
newHighlighting()
Builder to define highlighting of a file.
|
NewIssue |
newIssue()
Fluent builder to create a new
Issue . |
<G extends Serializable> |
newMeasure()
Fluent builder to create a new
Measure . |
NewSymbolTable |
newSymbolTable()
Builder to define symbol table of a file.
|
Collection<TextRange> |
referencesForSymbolAt(String componentKey,
int line,
int lineOffset)
Return list of symbol references ranges for the symbol at a given position in a file.
|
SonarRuntime |
runtime()
Runtime information, mainly:
to be able to have different behaviours between SonarQube and SonarLint
to enable new features depending on version of API available at runtime
|
SensorContextTester |
setActiveRules(ActiveRules activeRules) |
void |
setCancelled(boolean cancelled) |
SensorContextTester |
setFileSystem(DefaultFileSystem fs) |
SensorContextTester |
setRuntime(SonarRuntime runtime) |
SensorContextTester |
setSettings(Settings settings) |
Settings |
settings()
Get settings of the current module.
|
static Integer |
sumOrNull(Integer o1,
Integer o2) |
public static SensorContextTester create(File moduleBaseDir)
public static SensorContextTester create(Path moduleBaseDir)
public Settings settings()
SensorContext
settings
in interface SensorContext
public SensorContextTester setSettings(Settings settings)
public DefaultFileSystem fileSystem()
SensorContext
fileSystem
in interface SensorContext
public SensorContextTester setFileSystem(DefaultFileSystem fs)
public ActiveRules activeRules()
SensorContext
activeRules
in interface SensorContext
public SensorContextTester setActiveRules(ActiveRules activeRules)
public Version getSonarQubeVersion()
setRuntime(SonarRuntime)
to test your Sensor behaviour.getSonarQubeVersion
in interface SensorContext
since version 6.0.
public SonarRuntime runtime()
SensorContext
runtime
in interface SensorContext
to override defaults (SonarQube scanner with version
of this API as used at compilation time).
public SensorContextTester setRuntime(SonarRuntime runtime)
public boolean isCancelled()
SensorContext
true
. For example it could be tested between each processed file.isCancelled
in interface SensorContext
public void setCancelled(boolean cancelled)
public InputModule module()
module
in interface SensorContext
public <G extends Serializable> NewMeasure<G> newMeasure()
SensorContext
Measure
. Don't forget to call NewMeasure.save()
once all parameters are provided.newMeasure
in interface SensorContext
public Collection<Measure> measures(String componentKey)
public <G extends Serializable> Measure<G> measure(String componentKey, Metric<G> metric)
public <G extends Serializable> Measure<G> measure(String componentKey, String metricKey)
public NewIssue newIssue()
SensorContext
Issue
. Don't forget to call NewIssue.save()
once all parameters are provided.newIssue
in interface SensorContext
public Collection<Issue> allIssues()
public Collection<AnalysisError> allAnalysisErrors()
@CheckForNull public Integer lineHits(String fileKey, int line)
@CheckForNull public Integer conditions(String fileKey, int line)
@CheckForNull public Integer coveredConditions(String fileKey, int line)
@CheckForNull public List<TokensLine> cpdTokens(String componentKey)
public NewHighlighting newHighlighting()
SensorContext
NewHighlighting.save()
once all elements are provided.newHighlighting
in interface SensorContext
public NewCoverage newCoverage()
SensorContext
NewCoverage.save()
.newCoverage
in interface SensorContext
public NewCpdTokens newCpdTokens()
SensorContext
NewCpdTokens.save()
.newCpdTokens
in interface SensorContext
public NewSymbolTable newSymbolTable()
SensorContext
NewSymbolTable.save()
once all symbols are provided.newSymbolTable
in interface SensorContext
public NewAnalysisError newAnalysisError()
SensorContext
NewAnalysisError.save()
.newAnalysisError
in interface SensorContext
public List<TypeOfText> highlightingTypeAt(String componentKey, int line, int lineOffset)
componentKey
- Key of the file like 'myProjectKey:src/foo.php'line
- Line you want to querylineOffset
- Offset you want to query.@CheckForNull public Collection<TextRange> referencesForSymbolAt(String componentKey, int line, int lineOffset)
componentKey
- Key of the file like 'myProjectKey:src/foo.php'line
- Line you want to querylineOffset
- Offset you want to query.public void addContextProperty(String key, String value)
SensorContext
"sonar.analysis."
are included to the
payload of webhooks.addContextProperty
in interface SensorContext
PostProjectAnalysisTask.ProjectAnalysis.getScannerContext()
public Map<String,String> getContextProperties()
SensorContext.addContextProperty(String, String)
.public void markForPublishing(InputFile inputFile)
SensorContext
markForPublishing
in interface SensorContext
Copyright © 2009–2017 SonarSource. All rights reserved.