@Test
  public void compute_syntax_highlighting() throws Exception {
    BatchReportWriter writer = initReport();

    writer.writeComponentSyntaxHighlighting(
        FILE_REF,
        newArrayList(
            BatchReport.SyntaxHighlighting.HighlightingRule.newBuilder()
                .setRange(
                    BatchReport.Range.newBuilder()
                        .setStartLine(1)
                        .setStartOffset(3)
                        .setEndLine(1)
                        .setEndOffset(5)
                        .build())
                .setType(Constants.HighlightingType.ANNOTATION)
                .build(),
            BatchReport.SyntaxHighlighting.HighlightingRule.newBuilder()
                .setRange(
                    BatchReport.Range.newBuilder()
                        .setStartLine(3)
                        .setStartOffset(6)
                        .setEndLine(3)
                        .setEndOffset(7)
                        .build())
                .setType(Constants.HighlightingType.COMMENT)
                .build()));

    step.execute(
        new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));

    assertThat(step.getSyntaxHighlightingByLine()).hasSize(2);
    assertThat(step.getSyntaxHighlightingByLine().get(1).toString()).isEqualTo("3,5,ANNOTATION");
    assertThat(step.getSyntaxHighlightingByLine().get(3).toString()).isEqualTo("6,7,COMMENT");
  }
  @Test
  public void compute_no_symbol() throws Exception {
    initReport();

    step.execute(
        new ComputationContext(
            new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT_A")));

    assertThat(step.getSyntaxHighlightingByLine()).isEmpty();
  }
  @Test(expected = IllegalStateException.class)
  public void fail_when_range_is_defined_on_different_line() throws Exception {
    BatchReportWriter writer = initReport();

    writer.writeComponentSyntaxHighlighting(
        FILE_REF,
        newArrayList(
            BatchReport.SyntaxHighlighting.HighlightingRule.newBuilder()
                .setRange(
                    BatchReport.Range.newBuilder()
                        .setStartLine(1)
                        .setStartOffset(3)
                        .setEndLine(2)
                        .setEndOffset(2)
                        .build())
                .setType(Constants.HighlightingType.ANNOTATION)
                .build()));

    step.execute(
        new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
  }