Search in sources :

Example 6 with Report

use of com.mercedesbenz.sechub.sarif.model.Report in project sechub by mercedes-benz.

the class SarifReportSupportTest method specification_properties_snippet_properties_contains_opensource_key_and_map_value.

@Test
void specification_properties_snippet_properties_contains_opensource_key_and_map_value() throws IOException {
    /* prepare */
    File folder = sarifSpecificationSnippetsFolder;
    /* execute */
    Report report = supportToTest.loadReport(new File(folder, "specification-properties-snippet.sarif.json"));
    /* test */
    List<Result> results = report.getRuns().iterator().next().getResults();
    Result result = results.iterator().next();
    PropertyBag properties = result.getProperties();
    assertNotNull(properties);
    openSourceData = properties.get("openSource");
    if (openSourceData instanceof Map) {
        @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) openSourceData;
        String informationUri = (String) map.get("informationUri");
        assertEquals("http://www.example.com/procedures/usingOpenSource.html", informationUri);
    } else {
        fail("expected map but found:" + openSourceData);
    }
}
Also used : Report(com.mercedesbenz.sechub.sarif.model.Report) PropertyBag(com.mercedesbenz.sechub.sarif.model.PropertyBag) File(java.io.File) Map(java.util.Map) TreeMap(java.util.TreeMap) Result(com.mercedesbenz.sechub.sarif.model.Result) Test(org.junit.jupiter.api.Test)

Example 7 with Report

use of com.mercedesbenz.sechub.sarif.model.Report in project sechub by mercedes-benz.

the class SarifReportSupportTest method microsoft_sarif_tutorial_taxonomies_example__result_defaultocnfiguraiton_level.

@Test
void microsoft_sarif_tutorial_taxonomies_example__result_defaultocnfiguraiton_level() throws IOException {
    /* prepare */
    File codeFlowReportFile = new File(sarifTutorialSamplesFolder, "Taxonomies.sarif");
    /* execute */
    Report report = supportToTest.loadReport(codeFlowReportFile);
    /* test */
    List<Run> runs = report.getRuns();
    assertEquals(1, runs.size(), "there must be ONE run!");
    Run run = runs.iterator().next();
    List<Rule> rules = run.getTool().getDriver().getRules();
    Map<String, Rule> sortedMap = new TreeMap<>();
    for (Rule rule : rules) {
        sortedMap.put(rule.getId(), rule);
    }
    Rule rule1 = sortedMap.get("TUT0001");
    assertNotNull(rule1);
    ReportingConfiguration defaultConfig1 = rule1.getDefaultConfiguration();
    assertNotNull(defaultConfig1);
    assertEquals(Level.ERROR, defaultConfig1.getLevel());
    Rule rule2 = sortedMap.get("TUT0002");
    assertNotNull(rule2);
    ReportingConfiguration defaultConfig2 = rule2.getDefaultConfiguration();
    assertNotNull(defaultConfig2);
    assertEquals(Level.WARNING, defaultConfig2.getLevel());
}
Also used : Report(com.mercedesbenz.sechub.sarif.model.Report) Run(com.mercedesbenz.sechub.sarif.model.Run) Rule(com.mercedesbenz.sechub.sarif.model.Rule) TreeMap(java.util.TreeMap) File(java.io.File) ReportingConfiguration(com.mercedesbenz.sechub.sarif.model.ReportingConfiguration) Test(org.junit.jupiter.api.Test)

Example 8 with Report

use of com.mercedesbenz.sechub.sarif.model.Report in project sechub by mercedes-benz.

the class SarifReportSupportTest method brakeman_sarif_example_with_tags__tags_can_be_fetched.

@Test
void brakeman_sarif_example_with_tags__tags_can_be_fetched() throws IOException {
    /* prepare */
    File codeFlowReportFile = new File(sarifBrakemanFolder, "sarif_2_1_0__brakeman_testfile_with_tags.sarif.json");
    /* execute */
    Report report = supportToTest.loadReport(codeFlowReportFile);
    /* test */
    List<Run> runs = report.getRuns();
    assertEquals(1, runs.size(), "there must be ONE run!");
    Run run = runs.iterator().next();
    List<Result> results = run.getResults();
    assertEquals(32, results.size(), "there must be 32 results!");
    Result result = results.iterator().next();
    Rule rule = supportToTest.fetchRuleForResult(result, run);
    Set<String> tags = rule.getProperties().fetchTags();
    assertNotNull(tags);
    Set<String> expected = new LinkedHashSet<>();
    expected.add("ContentTag");
    expected.add("Tag2");
    expected.add("Tag3");
    assertEquals(expected, tags);
}
Also used : LinkedHashSet(java.util.LinkedHashSet) Report(com.mercedesbenz.sechub.sarif.model.Report) Run(com.mercedesbenz.sechub.sarif.model.Run) Rule(com.mercedesbenz.sechub.sarif.model.Rule) File(java.io.File) Result(com.mercedesbenz.sechub.sarif.model.Result) Test(org.junit.jupiter.api.Test)

Example 9 with Report

use of com.mercedesbenz.sechub.sarif.model.Report in project sechub by mercedes-benz.

the class SarifReportSupportTest method specification_properties_snippet_properties_contains_opensource_key_and_map_value_and_can_be_written.

@Test
void specification_properties_snippet_properties_contains_opensource_key_and_map_value_and_can_be_written() throws IOException {
    /* prepare */
    File folder = sarifSpecificationSnippetsFolder;
    /* execute */
    Report report = supportToTest.loadReport(new File(folder, "specification-properties-snippet.sarif.json"));
    /* test */
    List<Result> results = report.getRuns().iterator().next().getResults();
    Result result = results.iterator().next();
    PropertyBag properties = result.getProperties();
    assertNotNull(properties);
    openSourceData = properties.get("openSource");
    if (openSourceData instanceof Map) {
        @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) openSourceData;
        String informationUri = (String) map.get("informationUri");
        assertEquals("http://www.example.com/procedures/usingOpenSource.html", informationUri);
    } else {
        fail("expected map but found:" + openSourceData);
    }
}
Also used : Report(com.mercedesbenz.sechub.sarif.model.Report) PropertyBag(com.mercedesbenz.sechub.sarif.model.PropertyBag) File(java.io.File) Map(java.util.Map) TreeMap(java.util.TreeMap) Result(com.mercedesbenz.sechub.sarif.model.Result) Test(org.junit.jupiter.api.Test)

Example 10 with Report

use of com.mercedesbenz.sechub.sarif.model.Report in project sechub by mercedes-benz.

the class SarifV1JSONImporter method importResult.

public SerecoMetaData importResult(String data) throws IOException {
    if (data == null) {
        data = "";
    }
    Report report = null;
    try {
        report = sarifSupport.loadReport(data);
    } catch (Exception e) {
        /*
             * here we can throw the exception - should never happen, because with
             * #isAbleToImportForProduct we already check this is possible. So there is
             * something odd here and we throw the exception
             */
        throw new IOException("Import cannot parse sarif json", e);
    }
    SerecoMetaData metaData = new SerecoMetaData();
    for (Run run : report.getRuns()) {
        handleEachRun(run, metaData);
    }
    return metaData;
}
Also used : Report(com.mercedesbenz.sechub.sarif.model.Report) Run(com.mercedesbenz.sechub.sarif.model.Run) IOException(java.io.IOException) SerecoMetaData(com.mercedesbenz.sechub.sereco.metadata.SerecoMetaData) IOException(java.io.IOException)

Aggregations

Report (com.mercedesbenz.sechub.sarif.model.Report)11 File (java.io.File)9 Test (org.junit.jupiter.api.Test)8 Result (com.mercedesbenz.sechub.sarif.model.Result)6 Run (com.mercedesbenz.sechub.sarif.model.Run)6 TreeMap (java.util.TreeMap)5 PropertyBag (com.mercedesbenz.sechub.sarif.model.PropertyBag)3 Rule (com.mercedesbenz.sechub.sarif.model.Rule)2 Map (java.util.Map)2 CodeFlow (com.mercedesbenz.sechub.sarif.model.CodeFlow)1 Message (com.mercedesbenz.sechub.sarif.model.Message)1 ReportingConfiguration (com.mercedesbenz.sechub.sarif.model.ReportingConfiguration)1 Taxon (com.mercedesbenz.sechub.sarif.model.Taxon)1 Taxonomy (com.mercedesbenz.sechub.sarif.model.Taxonomy)1 SerecoMetaData (com.mercedesbenz.sechub.sereco.metadata.SerecoMetaData)1 IOException (java.io.IOException)1 LinkedHashSet (java.util.LinkedHashSet)1