*/
package org.sonar.plugins.core.sensors;
+import org.apache.commons.lang.StringUtils;
import org.sonar.api.batch.Sensor;
import org.sonar.api.batch.SensorContext;
import org.sonar.api.resources.Project;
StringBuilder fileHashMap = new StringBuilder();
analyse(fileHashMap, project, FileType.SOURCE);
analyse(fileHashMap, project, FileType.TEST);
- componentDataCache.setStringData(project.getKey(), SnapshotDataType.FILE_HASH.getValue(), fileHashMap.toString());
+ String fileHashes = fileHashMap.toString();
+ if (StringUtils.isNotBlank(fileHashes)) {
+ componentDataCache.setStringData(project.getKey(), SnapshotDataType.FILE_HASH.getValue(), fileHashes);
+ }
}
private void analyse(StringBuilder fileHashMap, Project project, FileType fileType) {
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
"src/com/foo/Bar.java=barhash\n"
+ "src/com/foo/Foo.java=foohash\n");
}
+
+ @Test
+ public void dont_save_hashes_if_no_file() throws Exception {
+ File baseDir = temp.newFolder();
+ when(fileSystem.baseDir()).thenReturn(baseDir);
+ when(fileSystem.files(any(FileQuery.class))).thenReturn(Collections.<File> emptyList());
+ sensor.analyse(project, mock(SensorContext.class));
+
+ verify(componentDataCache, never()).setStringData(anyString(), anyString(), anyString());
+ }
}