Bucket { void put(Sample x) { UntypedMetric value = get(x); Measurement m = x.getMeasurement(); switch (x.getMetricType()) { case GAUGE: value.put(m.getMagnitude()); break; case COUNTER: value.add(m.getMagnitude()); break; default: throw new IllegalArgumentException("Unsupported metric type: " + x.getMetricType()); } } Bucket();  Bucket(long fromMillis, long toMillis); Set<Map.Entry<Identifier, UntypedMetric>> entrySet(); Collection<String> getAllMetricNames(); Collection<Map.Entry<Point, UntypedMetric>> getValuesForMetric(String metricName); Map<Point, UntypedMetric> getMapForMetric(String metricName); Map<String, List<Map.Entry<Point, UntypedMetric>>> getValuesByMetricName(); @Override String toString(); long getFromMillis(); long getToMillis();  }
@Test public final void testPutSampleWithUnsupportedType() { boolean caughtIt = false; try { bucket.put(new Sample(new Measurement(1), new Identifier("nalle", null), AssumedType.NONE)); } catch (Exception e) { caughtIt = true; } assertTrue(caughtIt); }