### Question:
MicrometerRegistry implements Registry { @Override public Id createId(String name) { return Id.create(name); } MicrometerRegistry(MeterRegistry impl); @Override Clock clock(); @Override Id createId(String name); @Override Id createId(String name, Iterable<Tag> tags); @Override void register(Meter meter); @Override ConcurrentMap<Id, Object> state(); @Override Counter counter(Id id); @Override DistributionSummary distributionSummary(Id id); @Override Timer timer(Id id); @Override Gauge gauge(Id id); @Override Gauge maxGauge(Id id); @Override Meter get(Id id); @Override Iterator<Meter> iterator();  }### Answer:
@Test public void createIdNameAndTags() { Id id = registry.createId("foo", "a", "1", "b", "2"); Assertions.assertEquals("foo", id.name()); Map<String, String> tags = new HashMap<>(); tags.put("a", "1"); tags.put("b", "2"); for (Tag t : id.tags()) { Assertions.assertEquals(tags.remove(t.key()), t.value()); } Assertions.assertTrue(tags.isEmpty()); }