/** {@inheritDoc} */ public String toString() { return String.valueOf(get()); }
/** {@inheritDoc} */ @Override public int getFeatureUsageTotalHitCount(EventQueryDefinition q) { Map < String, MutableHitCount > hitRatio = getFeatureUsageHitCount(q); int total = 0; if (hitRatio != null) { for (MutableHitCount hc : hitRatio.values()) { total += hc.get(); } } return total; }
/** * Convert hicount into pieChart. * * @param hitRatio * current hist ratio * @return * pie chart */ private PieChart renderPieChart(String title, Map < String, MutableHitCount > hitRatio, List < String > colors) { PieChart pieChart = new PieChart(title); int idxColor = 0; for (String key : hitRatio.keySet()) { Serie<Integer> ps = new Serie<Integer>(key, hitRatio.get(key).get(), colors.get(idxColor)); pieChart.getSectors().add(ps); idxColor++; } return pieChart; }
/** * Convert hicount into pieChart. * * @param hitRatio * current hist ratio * @return * pie chart */ private BarChart renderBarChart(String title, Map < String, MutableHitCount > hitRatio, List < String > colors) { BarChart barChart = new BarChart(title); int idxColor = 0; for (String key : hitRatio.keySet()) { Serie<Integer> bar = new Serie<Integer>(key, new Double(hitRatio.get(key).get()).intValue(), colors.get(idxColor)); barChart.getChartBars().add(bar); idxColor++; } orderBarDecrecent(barChart); return barChart; }
/** TDD. */ @Test public void testSourceHitCount() throws InterruptedException { long start = System.currentTimeMillis(); // When for (int i = 0; i < 8; i++) { Thread.sleep(100); repo.saveEvent(new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CHECK_OK)); repo.saveEvent(new Event(SOURCE_WEB, TARGET_FEATURE, "f2", ACTION_CHECK_OK)); } Thread.sleep(200); repo.saveEvent(new Event(SOURCE_WEBAPI, TARGET_FEATURE, "f1", ACTION_CHECK_OK)); Thread.sleep(200); // Then EventQueryDefinition testQuery = new EventQueryDefinition(start - 20, System.currentTimeMillis()); Map<String, MutableHitCount> mapOfHit = repo.getSourceHitCount(testQuery); Assert.assertEquals(3, mapOfHit.size()); Assert.assertTrue(mapOfHit.containsKey(SOURCE_JAVA)); Assert.assertTrue(mapOfHit.containsKey(SOURCE_WEB)); Assert.assertEquals(1, mapOfHit.get(SOURCE_WEBAPI).get()); }
/** TDD. */ @Test public void testUserHitCount() throws InterruptedException { long start = System.currentTimeMillis(); // When for (int i = 0; i < 8; i++) { Event e1 = new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CHECK_OK); e1.setUser("JOHN"); repo.saveEvent(e1); Thread.sleep(100); Event e2 = new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CHECK_OK); e2.setUser("BOB"); repo.saveEvent(e2); Thread.sleep(100); } Thread.sleep(200); // Then EventQueryDefinition testQuery = new EventQueryDefinition(start - 20, System.currentTimeMillis()); Map<String, MutableHitCount> mapOfHit = repo.getUserHitCount(testQuery); Assert.assertEquals(2, mapOfHit.size()); Assert.assertTrue(mapOfHit.containsKey("JOHN")); Assert.assertTrue(mapOfHit.containsKey("BOB")); Assert.assertEquals(8, mapOfHit.get("BOB").get()); }
/** TDD. */ @Test public void testFeatureUsageHitCount() throws InterruptedException { long start = System.currentTimeMillis(); // Given empty event repository // When repo.saveEvent(new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CREATE)); for (int i = 0; i < 8; i++) { Thread.sleep(100); repo.saveEvent(new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CHECK_OK)); repo.saveEvent(new Event(SOURCE_WEB, TARGET_FEATURE, "f2", ACTION_CHECK_OK)); } Thread.sleep(100); // Then EventQueryDefinition testQuery = new EventQueryDefinition(start, System.currentTimeMillis()); // Assert Pie Chart (2 sectors with 8 and 8) Map<String, MutableHitCount> mapOfHit = repo.getFeatureUsageHitCount(testQuery); Assert.assertEquals(2, mapOfHit.size()); Assert.assertTrue(mapOfHit.containsKey("f1")); Assert.assertTrue(mapOfHit.containsKey("f2")); Assert.assertEquals(8, mapOfHit.get("f1").get()); }