]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3893 Naming adjustments and SnapshotDataDao updated to include data_types as...
authorJean-Baptiste Vilain <jean-baptiste.vilain@sonarsource.com>
Wed, 24 Apr 2013 16:45:19 +0000 (18:45 +0200)
committerJean-Baptiste Vilain <jean-baptiste.vilain@sonarsource.com>
Wed, 24 Apr 2013 16:45:19 +0000 (18:45 +0200)
16 files changed:
sonar-batch/src/main/java/org/sonar/batch/scan/source/DefaultHighlightable.java
sonar-batch/src/main/java/org/sonar/batch/scan/source/DefaultSymbolPerspective.java
sonar-batch/src/test/java/org/sonar/batch/scan/source/DefaultHighlightableTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/source/DefaultSymbolPerspectiveTest.java
sonar-core/src/main/java/org/sonar/core/source/DecorationDataHolder.java
sonar-core/src/main/java/org/sonar/core/source/HtmlSourceDecorator.java
sonar-core/src/main/java/org/sonar/core/source/OpeningHtmlTag.java [new file with mode: 0644]
sonar-core/src/main/java/org/sonar/core/source/SnapshotDataType.java [new file with mode: 0644]
sonar-core/src/main/java/org/sonar/core/source/TagEntry.java [deleted file]
sonar-core/src/main/java/org/sonar/core/source/jdbc/SnapshotDataDao.java
sonar-core/src/main/java/org/sonar/core/source/jdbc/SnapshotDataDto.java
sonar-core/src/main/java/org/sonar/core/source/jdbc/SnapshotDataMapper.java
sonar-core/src/main/resources/org/sonar/core/source/jdbc/SnapshotDataMapper.xml
sonar-core/src/test/java/org/sonar/core/source/DecorationDataHolderTest.java
sonar-core/src/test/java/org/sonar/core/source/HtmlSourceDecoratorTest.java
sonar-core/src/test/java/org/sonar/core/source/jdbc/SnapshotDataDaoTest.java

index 0d11dbc5196a5c2e7fea96f45576824baddf24e6..daa3bc3ce58f36a4cc8fc75494840ae2165c9060 100644 (file)
@@ -22,7 +22,7 @@ package org.sonar.batch.scan.source;
 import org.sonar.api.component.Component;
 import org.sonar.api.scan.source.Highlightable;
 import org.sonar.batch.index.ComponentDataCache;
-import org.sonar.core.source.jdbc.SnapshotDataDto;
+import org.sonar.core.source.SnapshotDataType;
 
 /**
  * @since 3.6
@@ -63,7 +63,7 @@ public class DefaultHighlightable implements Highlightable {
 
     @Override
     public void done() {
-      cache.setStringData(component().key(), SnapshotDataDto.HIGHLIGHT_SYNTAX, builder.build().writeString());
+      cache.setStringData(component().key(), SnapshotDataType.SYNTAX_HIGHLIGHTING.getValue(), builder.build().writeString());
     }
   }
 }
index 7290846ba0ddaabb881e87ae98e470207f77a2f3..96e29ac507278937eb8b2155395b01382e72e16f 100644 (file)
@@ -24,7 +24,7 @@ import org.sonar.api.component.Component;
 import org.sonar.api.scan.source.Symbol;
 import org.sonar.api.scan.source.SymbolPerspective;
 import org.sonar.batch.index.ComponentDataCache;
-import org.sonar.core.source.jdbc.SnapshotDataDto;
+import org.sonar.core.source.SnapshotDataType;
 
 public class DefaultSymbolPerspective implements SymbolPerspective {
 
@@ -61,7 +61,7 @@ public class DefaultSymbolPerspective implements SymbolPerspective {
 
   @Override
   public void end() {
-    cache.setStringData(component().key(), SnapshotDataDto.SYMBOL, symbolDataRepository.writeString());
+    cache.setStringData(component().key(), SnapshotDataType.SYMBOL_HIGHLIGHTING.getValue(), symbolDataRepository.writeString());
   }
 
   @Override
index 51d73eeebcd6756853ea82c75e1c784646f05a0f..164656fe6a288bcaa2acc2eaea89734e76a3e9ab 100644 (file)
@@ -24,12 +24,10 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.component.Component;
 import org.sonar.batch.index.ComponentDataCache;
-import org.sonar.core.source.jdbc.SnapshotDataDto;
+import org.sonar.core.source.SnapshotDataType;
 
 import static org.fest.assertions.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
 
 public class DefaultHighlightableTest {
 
@@ -57,6 +55,6 @@ public class DefaultHighlightableTest {
       .highlight(20, 30, "cppd")
       .done();
 
-    verify(cache).setStringData("myComponent", SnapshotDataDto.HIGHLIGHT_SYNTAX, "0,10,k;20,30,cppd;");
+    verify(cache).setStringData("myComponent", SnapshotDataType.SYNTAX_HIGHLIGHTING.getValue(), "0,10,k;20,30,cppd;");
   }
 }
index 9795a09a049cb0d84b02ec4efd167d446462d2ad..cf7fa982e621726829d7c3c86817686e5a269380 100644 (file)
@@ -24,11 +24,9 @@ import org.junit.Test;
 import org.sonar.api.component.Component;
 import org.sonar.api.scan.source.Symbol;
 import org.sonar.batch.index.ComponentDataCache;
-import org.sonar.core.source.jdbc.SnapshotDataDto;
+import org.sonar.core.source.SnapshotDataType;
 
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
 
 public class DefaultSymbolPerspectiveTest {
 
@@ -65,6 +63,6 @@ public class DefaultSymbolPerspectiveTest {
 
     symbolPerspective.end();
 
-    verify(cache).setStringData("myComponent", SnapshotDataDto.SYMBOL, "4,8,4,12,70;25,33,25,44,60,108;");
+    verify(cache).setStringData("myComponent", SnapshotDataType.SYMBOL_HIGHLIGHTING.getValue(), "4,8,4,12,70;25,33,25,44,60,108;");
   }
 }
index 27e5000de1e58ac0862026a626705b10acddf5b8..91246d3b0340ff4b6d2c69240148ed85fe62a691 100644 (file)
@@ -32,7 +32,7 @@ class DecorationDataHolder {
   private static final String SYMBOL_PREFIX = "sym-";
   private static final String HIGHLIGHTABLE = "sym";
 
-  private List<TagEntry> openingTagsEntries;
+  private List<OpeningHtmlTag> openingTagsEntries;
   private int openingTagsIndex;
   private List<Integer> closingTagsOffsets;
   private int closingTagsIndex;
@@ -58,16 +58,16 @@ class DecorationDataHolder {
     String[] rules = syntaxHighlightingRules.split(ENTITY_SEPARATOR);
     for (String rule : rules) {
       String[] ruleFields = rule.split(FIELD_SEPARATOR);
-      insertAndPreserveOrder(new TagEntry(Integer.parseInt(ruleFields[0]), ruleFields[2]), openingTagsEntries);
+      insertAndPreserveOrder(new OpeningHtmlTag(Integer.parseInt(ruleFields[0]), ruleFields[2]), openingTagsEntries);
       insertAndPreserveOrder(Integer.parseInt(ruleFields[1]), closingTagsOffsets);
     }
   }
 
-  List<TagEntry> getOpeningTagsEntries() {
+  List<OpeningHtmlTag> getOpeningTagsEntries() {
     return openingTagsEntries;
   }
 
-  TagEntry getCurrentOpeningTagEntry() {
+  OpeningHtmlTag getCurrentOpeningTagEntry() {
     return openingTagsIndex < openingTagsEntries.size() ? openingTagsEntries.get(openingTagsIndex) : null;
   }
 
@@ -88,21 +88,21 @@ class DecorationDataHolder {
   }
 
   private void loadSymbolOccurrences(int declarationStartOffset, int symbolLength, String[] symbolOccurrences) {
-    for (int i = 0; i < symbolOccurrences.length; i++) {
-      int occurrenceStartOffset = Integer.parseInt(symbolOccurrences[i]);
+    for (String symbolOccurrence : symbolOccurrences) {
+      int occurrenceStartOffset = Integer.parseInt(symbolOccurrence);
       int occurrenceEndOffset = occurrenceStartOffset + symbolLength;
-      insertAndPreserveOrder(new TagEntry(occurrenceStartOffset, SYMBOL_PREFIX + declarationStartOffset + " " + HIGHLIGHTABLE), openingTagsEntries);
+      insertAndPreserveOrder(new OpeningHtmlTag(occurrenceStartOffset, SYMBOL_PREFIX + declarationStartOffset + " " + HIGHLIGHTABLE), openingTagsEntries);
       insertAndPreserveOrder(occurrenceEndOffset, closingTagsOffsets);
     }
   }
 
-  private void insertAndPreserveOrder(TagEntry newEntry, List<TagEntry> orderedEntries) {
+  private void insertAndPreserveOrder(OpeningHtmlTag newEntry, List<OpeningHtmlTag> openingHtmlTags) {
     int insertionIndex = 0;
-    Iterator<TagEntry> entriesIterator = orderedEntries.iterator();
-    while (entriesIterator.hasNext() && entriesIterator.next().getStartOffset() <= newEntry.getStartOffset()) {
+    Iterator<OpeningHtmlTag> tagIterator = openingHtmlTags.iterator();
+    while (tagIterator.hasNext() && tagIterator.next().getStartOffset() <= newEntry.getStartOffset()) {
       insertionIndex++;
     }
-    orderedEntries.add(insertionIndex, newEntry);
+    openingHtmlTags.add(insertionIndex, newEntry);
   }
 
   private void insertAndPreserveOrder(int newOffset, List<Integer> orderedOffsets) {
index 36923ebec0fbf52544a087314b89580d45dc50a6..91936ce34ee1ffa18405143b1a5795ce04159d57 100644 (file)
@@ -21,6 +21,7 @@ package org.sonar.core.source;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
 import org.sonar.api.ServerComponent;
 import org.sonar.core.persistence.MyBatis;
 import org.sonar.core.source.jdbc.SnapshotDataDao;
@@ -28,6 +29,7 @@ import org.sonar.core.source.jdbc.SnapshotDataDto;
 import org.sonar.core.source.jdbc.SnapshotSourceDao;
 
 import java.util.Collection;
+import java.util.List;
 
 /**
  * @since 3.6
@@ -50,7 +52,10 @@ public class HtmlSourceDecorator implements ServerComponent {
 
   public Collection<String> getDecoratedSourceAsHtml(long snapshotId) {
 
-    Collection<SnapshotDataDto> snapshotDataEntries = snapshotDataDao.selectSnapshotData(snapshotId);
+    List<String> highlightingDataTypes = Lists.newArrayList(SnapshotDataType.SYNTAX_HIGHLIGHTING.getValue(),
+      SnapshotDataType.SYMBOL_HIGHLIGHTING.getValue());
+
+    Collection<SnapshotDataDto> snapshotDataEntries = snapshotDataDao.selectSnapshotData(snapshotId, highlightingDataTypes);
 
     if (!snapshotDataEntries.isEmpty()) {
       String snapshotSource = snapshotSourceDao.selectSnapshotSource(snapshotId);
@@ -69,9 +74,9 @@ public class HtmlSourceDecorator implements ServerComponent {
 
   private void loadSnapshotData(DecorationDataHolder decorationDataHolder, SnapshotDataDto snapshotDataEntry) {
     if(!Strings.isNullOrEmpty(snapshotDataEntry.getData())) {
-      if (snapshotDataEntry.isSyntaxHighlightingData()) {
+      if (SnapshotDataType.isSyntaxHighlighting(snapshotDataEntry.getDataType())) {
         decorationDataHolder.loadSyntaxHighlightingData(snapshotDataEntry.getData());
-      } else if (snapshotDataEntry.isSymbolData()) {
+      } else if (SnapshotDataType.isSymbolHighlighting(snapshotDataEntry.getDataType())) {
         decorationDataHolder.loadSymbolReferences(snapshotDataEntry.getData());
       }
     }
diff --git a/sonar-core/src/main/java/org/sonar/core/source/OpeningHtmlTag.java b/sonar-core/src/main/java/org/sonar/core/source/OpeningHtmlTag.java
new file mode 100644 (file)
index 0000000..5dd9596
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2013 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+package org.sonar.core.source;
+
+class OpeningHtmlTag {
+
+  private final int startOffset;
+  private final String cssClass;
+
+  OpeningHtmlTag(int startOffset, String cssClass) {
+    this.startOffset = startOffset;
+    this.cssClass = cssClass;
+  }
+
+  int getStartOffset() {
+    return startOffset;
+  }
+
+  String getCssClass() {
+    return cssClass;
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    OpeningHtmlTag openingHtmlTag = (OpeningHtmlTag) o;
+    if (startOffset != openingHtmlTag.startOffset) {
+      return false;
+    }
+    if (cssClass != null ? !cssClass.equals(openingHtmlTag.cssClass) : openingHtmlTag.cssClass != null) {
+      return false;
+    }
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = startOffset;
+    result = 31 * result + (cssClass != null ? cssClass.hashCode() : 0);
+    return result;
+  }
+}
diff --git a/sonar-core/src/main/java/org/sonar/core/source/SnapshotDataType.java b/sonar-core/src/main/java/org/sonar/core/source/SnapshotDataType.java
new file mode 100644 (file)
index 0000000..577d356
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2013 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+package org.sonar.core.source;
+
+public enum SnapshotDataType {
+
+  SYNTAX_HIGHLIGHTING("highlight_syntax"),
+  SYMBOL_HIGHLIGHTING("symbol");
+
+  private SnapshotDataType(String value) {
+    this.value = value;
+  }
+
+  private String value;
+
+  public static boolean isSyntaxHighlighting(String dataType) {
+    return SYNTAX_HIGHLIGHTING.value.equals(dataType);
+  }
+
+  public static boolean isSymbolHighlighting(String dataType) {
+    return SYMBOL_HIGHLIGHTING.value.equals(dataType);
+  }
+
+  public String getValue() {
+    return value;
+  }
+}
diff --git a/sonar-core/src/main/java/org/sonar/core/source/TagEntry.java b/sonar-core/src/main/java/org/sonar/core/source/TagEntry.java
deleted file mode 100644 (file)
index c8f5843..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * SonarQube is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.core.source;
-
-class TagEntry {
-
-  private final int startOffset;
-  private final String cssClass;
-
-  TagEntry(int startOffset, String cssClass) {
-    this.startOffset = startOffset;
-    this.cssClass = cssClass;
-  }
-
-  int getStartOffset() {
-    return startOffset;
-  }
-
-  String getCssClass() {
-    return cssClass;
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    if (this == o) {
-      return true;
-    }
-    if (o == null || getClass() != o.getClass()) {
-      return false;
-    }
-    TagEntry tagEntry = (TagEntry) o;
-    if (startOffset != tagEntry.startOffset) {
-      return false;
-    }
-    if (cssClass != null ? !cssClass.equals(tagEntry.cssClass) : tagEntry.cssClass != null) {
-      return false;
-    }
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    int result = startOffset;
-    result = 31 * result + (cssClass != null ? cssClass.hashCode() : 0);
-    return result;
-  }
-}
index 4b6765b3d8879ed6c967e15fe4104897391b8ad8..370f6401938f79886db9dd5a049bda0b75144988 100644 (file)
@@ -26,6 +26,7 @@ import org.sonar.api.ServerComponent;
 import org.sonar.core.persistence.MyBatis;
 
 import java.util.Collection;
+import java.util.List;
 
 /**
  * @since 3.6
@@ -38,13 +39,13 @@ public class SnapshotDataDao implements BatchComponent, ServerComponent {
     this.mybatis = mybatis;
   }
 
-  public Collection<SnapshotDataDto> selectSnapshotData(long snapshotId) {
+  public Collection<SnapshotDataDto> selectSnapshotData(long snapshotId, List<String> dataTypes) {
 
     SqlSession session = mybatis.openSession();
 
     try {
       SnapshotDataMapper mapper = session.getMapper(SnapshotDataMapper.class);
-      return mapper.selectSnapshotData(snapshotId);
+      return mapper.selectSnapshotData(snapshotId, dataTypes);
 
     } finally {
       MyBatis.closeQuietly(session);
index 95be795a5dcf34acea0ef42d5920173e86fd9730..5d70fda1689a0a2d1c45cb5a867ba8a2123079e8 100644 (file)
@@ -25,9 +25,6 @@ package org.sonar.core.source.jdbc;
  */
 public class SnapshotDataDto {
 
-  public static final String HIGHLIGHT_SYNTAX = "highlight_syntax";
-  public static final String SYMBOL = "symbol";
-
   private long id;
   private long snapshotId;
   private long resourceId;
@@ -73,12 +70,4 @@ public class SnapshotDataDto {
   public void setDataType(String dataType) {
     this.dataType = dataType;
   }
-
-  public boolean isSyntaxHighlightingData() {
-    return HIGHLIGHT_SYNTAX.equals(dataType);
-  }
-
-  public boolean isSymbolData() {
-    return SYMBOL.equals(dataType);
-  }
 }
index 658604f28d3395369db3b0ddf1a2182218d26e59..44c2f6746042260fd41205ef4673edb82b2df25f 100644 (file)
@@ -23,6 +23,7 @@ package org.sonar.core.source.jdbc;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Collection;
+import java.util.List;
 
 /**
  * @since 3.6
@@ -31,5 +32,5 @@ public interface SnapshotDataMapper {
 
   void insert(SnapshotDataDto snapshotData);
 
-  Collection<SnapshotDataDto> selectSnapshotData(@Param("sid") long snapshotId);
+  Collection<SnapshotDataDto> selectSnapshotData(@Param("sid") long snapshotId, @Param("dataTypes") List<String> dataTypes);
 }
index 654e79e13d5f785f792a58ca28ddfa5eb01a9a73..23b52c8941182c07dc4536f346f22e239f280c84 100644 (file)
@@ -3,13 +3,14 @@
 
 <mapper namespace="org.sonar.core.source.jdbc.SnapshotDataMapper">
 
-  <select id="selectSnapshotData" parameterType="long" resultType="SnapshotData">
+  <select id="selectSnapshotData" parameterType="map" resultType="SnapshotData">
     SELECT
-      snapshot_id as "snapshotId",
+      snapshot_id AS "snapshotId",
       data,
-      data_type as "dataType"
+      data_type AS "dataType"
     FROM snapshot_data
     WHERE snapshot_id = #{sid}
+    AND data_type IN <foreach item="dataType" index="index" collection="dataTypes" open="(" separator="," close=")">#{dataType}</foreach>
   </select>
 
   <insert id="insert" parameterType="SnapshotData" useGeneratedKeys="false">
index 58520c19da1080f6bfdcfb7d1ab645f978b6f933..62730ffc4029638b558a0b9a285edff5915f29be 100644 (file)
@@ -44,17 +44,17 @@ public class DecorationDataHolderTest {
   @Test
   public void should_extract_lower_bounds_from_serialized_rules() throws Exception {
 
-    List<TagEntry> openingTagsEntries = decorationDataHolder.getOpeningTagsEntries();
+    List<OpeningHtmlTag> openingTagsEntries = decorationDataHolder.getOpeningTagsEntries();
 
-    assertThat(openingTagsEntries.get(0)).isEqualTo(new TagEntry(0, "k"));
-    assertThat(openingTagsEntries.get(1)).isEqualTo(new TagEntry(0, "cppd"));
-    assertThat(openingTagsEntries.get(2)).isEqualTo(new TagEntry(54, "a"));
-    assertThat(openingTagsEntries.get(3)).isEqualTo(new TagEntry(69, "k"));
-    assertThat(openingTagsEntries.get(4)).isEqualTo(new TagEntry(80, "sym-80 sym"));
-    assertThat(openingTagsEntries.get(5)).isEqualTo(new TagEntry(90, "sym-80 sym"));
-    assertThat(openingTagsEntries.get(6)).isEqualTo(new TagEntry(106, "cppd"));
-    assertThat(openingTagsEntries.get(7)).isEqualTo(new TagEntry(114, "k"));
-    assertThat(openingTagsEntries.get(8)).isEqualTo(new TagEntry(140, "sym-80 sym"));
+    assertThat(openingTagsEntries.get(0)).isEqualTo(new OpeningHtmlTag(0, "k"));
+    assertThat(openingTagsEntries.get(1)).isEqualTo(new OpeningHtmlTag(0, "cppd"));
+    assertThat(openingTagsEntries.get(2)).isEqualTo(new OpeningHtmlTag(54, "a"));
+    assertThat(openingTagsEntries.get(3)).isEqualTo(new OpeningHtmlTag(69, "k"));
+    assertThat(openingTagsEntries.get(4)).isEqualTo(new OpeningHtmlTag(80, "sym-80 sym"));
+    assertThat(openingTagsEntries.get(5)).isEqualTo(new OpeningHtmlTag(90, "sym-80 sym"));
+    assertThat(openingTagsEntries.get(6)).isEqualTo(new OpeningHtmlTag(106, "cppd"));
+    assertThat(openingTagsEntries.get(7)).isEqualTo(new OpeningHtmlTag(114, "k"));
+    assertThat(openingTagsEntries.get(8)).isEqualTo(new OpeningHtmlTag(140, "sym-80 sym"));
   }
 
   @Test
index 66c732d36d3b0b2ba687e911089cdf323dc69787..bad8f289bebfe121827df6327cce510915120239 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.sonar.core.source;
 
+import com.google.common.collect.Lists;
 import org.junit.Before;
 import org.junit.Test;
 import org.sonar.core.persistence.AbstractDaoTestCase;
@@ -104,7 +105,7 @@ public class HtmlSourceDecoratorTest extends AbstractDaoTestCase {
 
     sourceDecorator.getDecoratedSourceAsHtml(14L);
 
-    verify(snapshotDataDao, times(1)).selectSnapshotData(14L);
+    verify(snapshotDataDao, times(1)).selectSnapshotData(14L, Lists.newArrayList("highlight_syntax", "symbol"));
     verify(snapshotSourceDao, times(0)).selectSnapshotSource(14L);
   }
 }
index 8ea2547670b58c47dca2090122286875a8b54914..873b7d67236504c9ac47cd952e80c018347c2884 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.sonar.core.source.jdbc;
 
+import com.google.common.collect.Lists;
 import org.junit.Before;
 import org.junit.Test;
 import org.sonar.core.persistence.AbstractDaoTestCase;
@@ -41,7 +42,7 @@ public class SnapshotDataDaoTest extends AbstractDaoTestCase {
   @Test
   public void should_retrieve_snapshot_data_by_snapshot_id() throws Exception {
 
-    Collection<SnapshotDataDto> data = dao.selectSnapshotData(10L);
+    Collection<SnapshotDataDto> data = dao.selectSnapshotData(10L, Lists.newArrayList("highlight_syntax", "symbol"));
 
     assertThat(data).onProperty("snapshotId").containsOnly(10L, 10L);
     assertThat(data).onProperty("dataType").containsOnly("highlight_syntax", "symbol");
@@ -62,7 +63,7 @@ public class SnapshotDataDaoTest extends AbstractDaoTestCase {
 
     dao.insert(dto);
 
-    Collection<SnapshotDataDto> serializedData = dao.selectSnapshotData(11L);
+    Collection<SnapshotDataDto> serializedData = dao.selectSnapshotData(11L, Lists.newArrayList("highlight_syntax"));
 
     assertThat(serializedData).onProperty("snapshotId").containsOnly(11L);
     assertThat(serializedData).onProperty("dataType").containsOnly(dataType);