@Test public void helper_parse_methods() { assertThat(KeyValueFormat.parseIntDate("1=2014-01-15")).hasSize(1); assertThat(KeyValueFormat.parseIntDateTime("1=2014-01-15T15:50:45+0100")).hasSize(1); assertThat(KeyValueFormat.parseIntDouble("1=3.14")).hasSize(1); assertThat(KeyValueFormat.parseIntInt("1=10")).containsOnly(entry(1, 10)); assertThat(KeyValueFormat.parseIntString("1=one")).containsOnly(entry(1, "one")); assertThat(KeyValueFormat.parseIntString("1=\"escaped\"")).containsOnly(entry(1, "escaped")); assertThat(KeyValueFormat.parseStringInt("one=1")).containsOnly(entry("one", 1)); assertThat(KeyValueFormat.parseStringDouble("pi=3.14")).containsOnly(entry("pi", 3.14)); }
private boolean parse(DecoratorContext context) { Measure lastCommits = context.getMeasure(CoreMetrics.SCM_LAST_COMMIT_DATETIMES_BY_LINE); Measure hitsByLineMeasure = context.getMeasure(getCoverageLineHitsDataMetric()); if (lastCommits != null && lastCommits.hasData() && hitsByLineMeasure != null && hitsByLineMeasure.hasData()) { Map<Integer, Date> datesByLine = KeyValueFormat.parseIntDateTime(lastCommits.getData()); Map<Integer, Integer> hitsByLine = parseCountByLine(hitsByLineMeasure); Map<Integer, Integer> conditionsByLine = parseCountByLine(context.getMeasure(getConditionsByLineMetric())); Map<Integer, Integer> coveredConditionsByLine = parseCountByLine(context.getMeasure(getCoveredConditionsByLineMetric())); reset(); for (Map.Entry<Integer, Integer> entry : hitsByLine.entrySet()) { int lineId = entry.getKey(); int hits = entry.getValue(); int conditions = (Integer) ObjectUtils.defaultIfNull(conditionsByLine.get(lineId), 0); int coveredConditions = (Integer) ObjectUtils.defaultIfNull(coveredConditionsByLine.get(lineId), 0); Date date = datesByLine.get(lineId); for (PeriodStruct struct : structs) { struct.analyze(date, hits, conditions, coveredConditions); } } return true; } return false; }