### Question:
DefaultQualities implements Qualities { @Override public void doFor(QualityKey qualityKey, QualityClosure closure) { if (qualityMap.contains(qualityKey)) { Quality quality = qualityMap.get(qualityKey); Iterable<Rule> rules = ruleMap.getAllForQuality(qualityKey); new RuleBasedExecutor(rules).executeIfPermitted(closure, quality); } } DefaultQualities(Engine engine); @Override void addQuality(final QualityKey qualityKey); @Override void defineRule(Type type, Rule rule); @Override void doFor(QualityKey qualityKey, QualityClosure closure); @Override void doForEach(Type type, QualityClosure closure); @Override void doForEachDisregardingRules(Type type, QualityClosure closure); @Override void observe(QualityKey key, QualityListener listener); @Override void stopObservation(QualityKey key, QualityListener listener);  }### Answer:
@Test public void ignoresUnknownQualities() throws Exception { Type type = new Type("unknownType"); Name name = new Name("unknownName"); qualities.doFor(new QualityKey(type, name), closure); verifyZeroInteractions(closure); }