private void assertUsageCounts( ISpringBootProject project, PopularityTracker popularities, String... idAndCount) throws Exception { Map<String, Integer> expect = new HashMap<>(); for (String pair : idAndCount) { String[] pieces = pair.split(":"); assertEquals(2, pieces.length); String id = pieces[0]; int count = Integer.parseInt(pieces[1]); expect.put(id, count); } List<SpringBootStarter> knownStarters = project.getKnownStarters(); assertFalse(knownStarters.isEmpty()); for (SpringBootStarter starter : knownStarters) { String id = starter.getId(); Integer expectedCountOrNull = expect.get(id); int expectedCount = expectedCountOrNull == null ? 0 : expectedCountOrNull; assertEquals("Usage count for '" + id + "'", expectedCount, popularities.getUsageCount(id)); expect.remove(id); } assertTrue("Expected usage counts not found: " + expect, expect.isEmpty()); }