ExtendedDataTableRenderer extends SelectionRenderer implements MetaComponentRenderer { @Override protected Class<? extends UIComponent> getComponentClass() { return AbstractExtendedDataTable.class; }  void encodeHeader(RendererState state); void encodeBody(RendererState state); void encodeFooter(RendererState state); void encodeMetaComponent(FacesContext context, UIComponent component, String metaComponentId); void decodeMetaComponent(FacesContext context, UIComponent component, String metaComponentId); RendererState createRowHolder(FacesContext context, UIComponent component, Object[] options); void encodeRow(ResponseWriter writer, FacesContext facesContext, RowHolderBase rowHolder); void consumeTableState(FacesContext facesContext, UIDataTableBase table, ExtendedDataTableState tableState);  }
@Test public final void testGetComponentClass() throws IOException { FacesRequest facesRequest = startFacesRequest(); FacesContext facesContext = FacesContext.getCurrentInstance(); AbstractExtendedDataTable component = (AbstractExtendedDataTable) facesContext.getViewRoot().findComponent("table"); ExtendedDataTableRenderer renderer = (ExtendedDataTableRenderer) FacesContext.getCurrentInstance().getRenderKit() .getRenderer(component.getFamily(), component.getRendererType()); assertEquals(AbstractExtendedDataTable.class, renderer.getComponentClass()); facesRequest.release(); }