### Question:
StaticRenditionDispatcherImpl extends AbstractRenditionDispatcherImpl implements AssetRenditionDispatcher { @Override public Set<String> getRenditionNames() { if (mappings == null) { return Collections.EMPTY_SET; } else { return mappings.keySet(); } }  @Override String getLabel(); @Override String getName(); @Override Map<String, String> getOptions(); @Override boolean isHidden(); @Override Set<String> getRenditionNames(); @Override List<String> getTypes(); @Override void dispatch(SlingHttpServletRequest request, SlingHttpServletResponse response);  }### Answer:
@Test public void getRenditionNames() { Set<String> expected = new LinkedHashSet<>(); expected.add("foo"); expected.add("test.ing"); ctx.registerInjectActivateService(new StaticRenditionDispatcherImpl(), ImmutableMap.<String, Object>builder(). put("rendition.mappings", new String[]{ "foo=foo value", "test.ing-rendition=test-rendition value"}). build()); final AssetRenditionDispatcher assetRenditionDispatcher = ctx.getService(AssetRenditionDispatcher.class); final Set<String> actual = assetRenditionDispatcher.getRenditionNames(); assertEquals(expected.size(), actual.size()); assertTrue(expected.contains("foo")); assertTrue(expected.contains("test.ing")); }