### Question:
CloverJpsProjectConfigurationSerializer extends JpsProjectExtensionSerializer { @Override public void loadExtension(@NotNull JpsProject jpsProject, @NotNull Element componentTag) { CloverPluginConfig projectConfig = new MappedCloverPluginConfig(); try { JDOMExternUtil.readTo(componentTag, projectConfig); jpsProject.getContainer().setChild( CloverProjectConfigurationRole.INSTANCE, JpsElementFactory.getInstance().createSimpleElement(projectConfig)); } catch (Exception ex) { LOG.error(ex); } } CloverJpsProjectConfigurationSerializer(); @Override void loadExtension(@NotNull JpsProject jpsProject, @NotNull Element componentTag); @Override void saveExtension(@NotNull JpsProject jpsProject, @NotNull Element componentTag);  }### Answer:
@Test public void testLoadExtension() { final CloverJpsProjectConfigurationSerializer serializer = new CloverJpsProjectConfigurationSerializer(); final JpsProject jpsProject = new JpsProjectImpl(new JpsModelImpl(null), null); serializer.loadExtension(jpsProject, createSampleData()); final JpsSimpleElement<CloverPluginConfig> data = jpsProject.getContainer().getChild(CloverJpsProjectConfigurationSerializer.CloverProjectConfigurationRole.INSTANCE); assertNotNull(data); final CloverPluginConfig config = data.getData(); assertEquals(true, config.isLoadPerTestData()); assertEquals(ProjectRebuild.ALWAYS, config.getProjectRebuild()); assertEquals(false, config.isRelativeInitString()); assertEquals(false, config.isPeriodicRefresh()); assertEquals(CloverPluginConfig.DIRECTED_FLUSHING, config.getFlushPolicy()); assertEquals("1.3", config.getLanguageLevel()); assertEquals("myclover.db", config.getManualInitString()); assertEquals(5000, config.getFlushInterval()); assertEquals(true, config.isEnabled()); assertEquals(null, config.getExcludes()); assertEquals(null, config.getIncludes()); assertEquals("", config.getContextFilterSpec()); assertEquals(false, config.getUseGeneratedInitString()); final Regexp methodRegExp = createRegExp(0, null, ".*appendMoney.*", true, "method_appendMoney", true); final Regexp statementRegExp = createRegExp(1, null, "if.*", true, "stmt_if", false); assertEquals(2, config.getRegexpContexts().size()); assertThat(config.getRegexpContexts(), IsCollectionContaining.hasItem(methodRegExp)); assertThat(config.getRegexpContexts(), IsCollectionContaining.hasItem(statementRegExp)); assertEquals("0 days", config.getSpan()); assertEquals(".clover\\coverage.db", config.getGeneratedInitString()); assertEquals(true, config.isInstrumentTests()); assertEquals(true, config.isBuildWithClover()); }