Author: bpoussin Date: 2010-12-10 23:23:35 +0100 (Fri, 10 Dec 2010) New Revision: 597 Url: http://nuiton.org/repositories/revision/wikitty/597 Log: de fil en aiguille je me suis tout de meme apercu qu'il y a une grosse classe de test qui n'etait plus jouee :( Je remis en marche (et vire spring des tests du meme coup). Mais maintenant il y a 4 failds :( Mais ca pas l'air simple. Mais je prefere qu'il y ait des failds que de laisse sans test :( Je repare au plus vite (si je trouve les bugs) Sinon faite des skip sur le test de jdbc pour l'instant Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/importexport/ImportExportCSVTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/ImportExportTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceBenchMark.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-12-10 22:23:35 UTC (rev 597) @@ -35,6 +35,7 @@ import org.nuiton.wikitty.services.WikittyEvent; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -176,6 +177,7 @@ w = store(w); return e; } + public Wikitty store(Wikitty w) { long start = timeTrace.getTime(); WikittyEvent resp = wikittyService.store(securityToken, w); @@ -210,11 +212,26 @@ for (Wikitty w : wikitties) { resp.update(w); } - + timeTrace.add(start, "store<list>"); return objets; } + public List<Wikitty> storeWikitty(List<Wikitty> wikitties) { + long start = timeTrace.getTime(); + + // call the service with Wikitty + WikittyEvent resp = wikittyService.store(securityToken, wikitties); + + // update object + for (Wikitty w : wikitties) { + resp.update(w); + } + + timeTrace.add(start, "storeWikitty<list>"); + return wikitties; + } + /** * Restore wikitty entity with specified id or {@code null} if entity can't be found. * @@ -299,6 +316,21 @@ /** * Restore wikitty entity with specified id or {@code null} if entity can't be be found. + * + * @param id entity id + * @return wikitty entity with specified id or {@code null} if entity can't be found + */ + public List<Wikitty> restore(List<String> id) { + long start = timeTrace.getTime(); + + List<Wikitty> result = wikittyService.restore(securityToken, id); + + timeTrace.add(start, "restoreWikitty<list>"); + return result; + } + + /** + * Restore wikitty entity with specified id or {@code null} if entity can't be be found. * * @param <E> object type * @param clazz entity class @@ -490,11 +522,19 @@ long start = timeTrace.getTime(); PagedResult<String> resultId = wikittyService.findAllByCriteria(securityToken, criteria); PagedResult<Wikitty> result = resultId.cast(securityToken, wikittyService); - + timeTrace.add(start, "findAllByCriteria"); return result; } - + + public PagedResult<String> findAllIdByCriteria(Criteria criteria) { + long start = timeTrace.getTime(); + PagedResult<String> result = wikittyService.findAllByCriteria(securityToken, criteria); + + timeTrace.add(start, "findAllByCriteria"); + return result; + } + public <E extends BusinessEntity> E findByCriteria(Class<E> clazz, Criteria criteria) { long start = timeTrace.getTime(); BusinessEntityImpl sample = @@ -744,7 +784,21 @@ timeTrace.add(start, "restoreExtensionLastVersion"); return extension; } - + + public void deleteExtension(String extName) { + long start = timeTrace.getTime(); + wikittyService.deleteExtension(securityToken, extName); + + timeTrace.add(start, "deleteExtension"); + } + + public void deleteExtension(Collection<String> extNames) { + long start = timeTrace.getTime(); + wikittyService.deleteExtension(securityToken, extNames); + + timeTrace.add(start, "deleteExtension<list>"); + } + /** * Return all extension id (ex: "extName[version])"). * Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java 2010-12-10 22:23:35 UTC (rev 597) @@ -19,7 +19,6 @@ import org.nuiton.wikitty.WikittyTree; import org.nuiton.wikitty.entities.BusinessEntity; import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.entities.WikittyAccessStat; import org.nuiton.wikitty.entities.WikittyAccessStatHelper; import org.nuiton.wikitty.entities.WikittyAccessStatImpl; import org.nuiton.wikitty.entities.WikittyTokenHelper; @@ -83,9 +82,15 @@ super(service); this.statStorage = statStorage; if (statStorage == null) { - log.warn("No AccessStatStorage available, access stat can't work"); + if (log.isWarnEnabled()) { + String statSto = config.getOption(WikittyConfig.WikittyOption. + WIKITTY_WIKITTYSERICEACCESSSTAT_COMPONENTS.getKey()); + log.warn(String.format( + "No AccessStatStorage available, access stat can't work (%s)", + statSto)); + } } else { - // if no statStorage, make extensions to never call statStorage + // if no statStorage, make empty extensions to never call statStorage List<String> exts = config.getOptionAsList(WikittyConfig.WikittyOption. WIKITTY_ACCESSSTAT_EXTENSIONS.getKey()).getOption(); if (log.isInfoEnabled()) { @@ -142,6 +147,9 @@ * @param wikitties */ protected void addStat(String securityToken, Collection wikitties) { + if (statStorage == null) { + return; + } boolean userLoaded = false; String user = null; @@ -177,8 +185,9 @@ stats.add(stat.getWikitty()); } } - - statStorage.store(this, securityToken, stats); + if (stats.size() > 0 ) { + statStorage.store(this, securityToken, stats); + } } @Override Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java 2010-12-10 22:23:35 UTC (rev 597) @@ -83,6 +83,10 @@ return delete(securityToken, Collections.singleton(id)); } + public WikittyEvent deleteExtension(String securityToken, String extName) { + return deleteExtension(securityToken, Collections.singleton(extName)); + } + /** * Conveniant static method usefull in other WikittyService implementation * where we don't wan't instanciate WikittyServiceEnhanced Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/importexport/ImportExportCSVTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/importexport/ImportExportCSVTest.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/importexport/ImportExportCSVTest.java 2010-12-10 22:23:35 UTC (rev 597) @@ -25,14 +25,16 @@ package org.nuiton.wikitty.addons.importexport; -import org.nuiton.wikitty.addons.importexport.ImportExportCSV; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; -import org.junit.runner.RunWith; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; @@ -43,12 +45,10 @@ import org.nuiton.wikitty.addons.WikittyImportExportService; import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyService; +import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.search.operators.Element; import org.nuiton.wikitty.search.Search; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Test for CSV import export class @@ -59,13 +59,25 @@ * Last update : $Date$ * By : $Author$ */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations="classpath:META-INF/spring/wikitty-test.xml") public class ImportExportCSVTest { - @Autowired - protected WikittyService ws ; + private final static Log log = LogFactory.getLog(ImportExportCSVTest.class); + + static protected WikittyService ws ; + @BeforeClass + static public void loadWikittyService() throws Exception { + WikittyConfig config = new WikittyConfig(); // default config for in memory + String msg = "Try to passe test with "+ config.getPrintableConfig("wikitty.*", 50); + log.info(msg); + ws = WikittyServiceFactory.buildWikittyService(config); + } + + @Before + public void clearStorage() throws Exception { + ws.clear(null); + } + public WikittyService getWikittyService() { return ws; } Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java 2010-12-10 22:23:35 UTC (rev 597) @@ -26,7 +26,6 @@ import java.text.ParseException; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map.Entry; @@ -35,7 +34,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.runner.RunWith; +import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.entities.FieldType.TYPE; import org.nuiton.wikitty.entities.Wikitty; @@ -43,19 +42,14 @@ import org.nuiton.wikitty.entities.WikittyImpl; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations="classpath:META-INF/spring/wikitty-test.xml") public abstract class AbstractTestConformance { public static final String EXTNAME = "wikittyExt"; public static final String EXTREQUIRED = "wikittyRequired"; public static final String EXTREQUIRES = "wikittyRequires"; - protected final static Log log = LogFactory.getLog(AbstractTestConformance.class); + private final static Log log = LogFactory.getLog(AbstractTestConformance.class); public static final WikittyExtension EXT_REQUIRED = createExtension(EXTREQUIRED, null); @@ -69,10 +63,18 @@ createType(TYPE.NUMERIC, 1, 1), createType(TYPE.DATE, 1, 1) ); - - @Autowired - protected WikittyService ws ; - + + /** must be static child set ws in @BeforeClass method */ + static protected WikittyService ws ; + protected WikittyProxy proxy = null; + + public WikittyProxy getProxy() { + if (proxy == null) { + proxy = new WikittyProxy(ws); + } + return proxy; + } + public WikittyService getWikittyService() { return ws; } Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/ImportExportTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/ImportExportTest.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/ImportExportTest.java 2010-12-10 22:23:35 UTC (rev 597) @@ -40,10 +40,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.addons.WikittyImportExportService; import org.nuiton.wikitty.search.operators.Element; import org.nuiton.wikitty.search.Search; @@ -54,10 +57,23 @@ public class ImportExportTest extends AbstractTestConformance { - protected final static Log log = LogFactory.getLog(ImportExportTest.class); + private static Log log = LogFactory.getLog(ImportExportTest.class); protected WikittyImportExportService ieService; + @BeforeClass + static public void loadWikittyService() throws Exception { + WikittyConfig config = new WikittyConfig(); // default config for in memory + String msg = "Try to passe test with "+ config.getPrintableConfig("wikitty.*", 50); + log.info(msg); + ws = WikittyServiceFactory.buildWikittyService(config); + } + + @Before + public void clearStorage() throws Exception { + ws.clear(null); + } + protected WikittyImportExportService getImportExportService() { if (ieService == null) { WikittyConfig config = new WikittyConfig(); @@ -68,7 +84,6 @@ @Test public void testExport() throws Exception { - ws.clear(null); // Database must be clean before create and export final List<Wikitty> wikitties = createSampleWikitty(ws); Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, AbstractTestConformance.EXTNAME).criteria(); Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceBenchMark.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceBenchMark.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceBenchMark.java 2010-12-10 22:23:35 UTC (rev 597) @@ -32,16 +32,16 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; -import org.junit.runner.RunWith; +import org.nuiton.wikitty.WikittyConfig; import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.entities.WikittyImpl; import org.nuiton.wikitty.WikittyService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.nuiton.wikitty.WikittyServiceFactory; /** * This class is <strong>NOT</strong> a test. It's a benchlark that @@ -54,17 +54,27 @@ * Last update: $Date$ * by : $Author$ */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations="classpath:META-INF/spring/wikitty-test.xml") public class PerformanceBenchMark { protected final static Log log = LogFactory.getLog(PerformanceBenchMark.class); protected final static int WIKITTY_SIZE = 10000; - @Autowired - protected WikittyService wikittyService; + static protected WikittyService ws; + @BeforeClass + static public void loadWikittyService() throws Exception { + WikittyConfig config = new WikittyConfig(); // default config for in memory + String msg = "Try to passe test with "+ config.getPrintableConfig("wikitty.*", 50); + log.info(msg); + ws = WikittyServiceFactory.buildWikittyService(config); + } + + @Before + public void clearStorage() throws Exception { + ws.clear(null); + } + @Test public void testPerformanceWikitty() throws Exception { testPerformanceWikitty(3); @@ -78,7 +88,7 @@ FieldType fieldType = new FieldType(FieldType.TYPE.STRING, 1, 1); extension.addField("field" + i, fieldType); } - wikittyService.storeExtension(null, Arrays.asList(extension)); + ws.storeExtension(null, Arrays.asList(extension)); Collection<Wikitty> wikitties = new ArrayList<Wikitty>(WIKITTY_SIZE); for (int i = 0; i < WIKITTY_SIZE; i++) { @@ -90,7 +100,7 @@ wikitties.add(wikitty); } long start = System.currentTimeMillis(); - wikittyService.store(null, wikitties, false); + ws.store(null, wikitties, false); long end = System.currentTimeMillis(); log.info("[Performance" + fieldSize + "] Write times : " + ((end - start) / 1000) + "s"); @@ -98,7 +108,7 @@ start = System.currentTimeMillis(); for (int i = 0; i < WIKITTY_SIZE; i++) { int nextInt = random.nextInt(WIKITTY_SIZE); - wikittyService.restore(null, Arrays.asList("Performance" + fieldSize + "id" + nextInt)); + ws.restore(null, Arrays.asList("Performance" + fieldSize + "id" + nextInt)); } end = System.currentTimeMillis(); log.info("[Performance" + fieldSize + "] Read times : " + ((end - start) / 1000) + "s"); Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java 2010-12-10 22:23:35 UTC (rev 597) @@ -28,8 +28,14 @@ import java.util.LinkedList; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; +import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.entities.ExtensionFactory; import org.nuiton.wikitty.entities.FieldType.TYPE; @@ -42,6 +48,21 @@ public class SearchTest extends AbstractTestConformance { + private final static Log log = LogFactory.getLog(AbstractTestConformance.class); + + @BeforeClass + static public void loadWikittyService() throws Exception { + WikittyConfig config = new WikittyConfig(); // default config for in memory + String msg = "Try to passe test with "+ config.getPrintableConfig("wikitty.*", 50); + log.info(msg); + ws = WikittyServiceFactory.buildWikittyService(config); + } + + @Before + public void clearStorage() throws Exception { + ws.clear(null); + } + /* * TODO Will contains all conformance tests to the search features. */ Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java 2010-12-10 22:23:35 UTC (rev 597) @@ -61,20 +61,19 @@ import org.nuiton.wikitty.services.WikittyServiceEnhanced; import org.nuiton.wikitty.services.WikittyEvent; import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.entities.FieldFactory; import org.nuiton.wikitty.entities.WikittyTreeNodeHelper; import org.nuiton.wikitty.search.operators.Element; import org.nuiton.wikitty.search.Search; public abstract class StorageTest extends AbstractTestConformance { - protected final static Log log = LogFactory.getLog(StorageTest.class); + private final static Log log = LogFactory.getLog(StorageTest.class); @Test public void testStoreRestoreBasics() throws Exception { Wikitty w = createBasicWikitty(); String id = w.getId(); - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); w = WikittyServiceEnhanced.restore(ws, null, id); assertTrue(w.hasExtension(EXTNAME)); for ( int i = 0; i < 3; i++ ) { @@ -85,31 +84,31 @@ @Test public void testExtensionMethod() throws Exception { { - ws.storeExtension(null, Collections.singletonList(EXT_TEST)); + getProxy().storeExtension(EXT_TEST); List<String> extIds = ws.getAllExtensionIds(null); log.debug("extIds: " + extIds); assertEquals(1, extIds.size()); - WikittyExtension ext = ws.restoreExtension(null, extIds.get(0)); + WikittyExtension ext = getProxy().restoreExtension(extIds.get(0)); assertEquals(EXT_TEST.getName(), ext.getName()); assertEquals(EXT_TEST.getVersion(), ext.getVersion()); assertEquals(EXT_TEST, ext); } { // test de la suppression de l'extension - ws.deleteExtension(null, Collections.singleton(EXT_TEST.getName())); + getProxy().deleteExtension(EXT_TEST.getName()); List<String> extIds = ws.getAllExtensionIds(null); assertEquals(0, extIds.size()); } { // test que la suppression echoue si l'extension est utilisee - ws.storeExtension(null, Collections.singletonList(EXT_TEST)); + getProxy().storeExtension(EXT_TEST); Wikitty w = new WikittyImpl(); w.addExtension(EXT_TEST); - ws.store(null, Collections.singleton(w), false); - + w = getProxy().store(w); + try { - ws.deleteExtension(null, Collections.singleton(EXT_TEST.getName())); + getProxy().deleteExtension(EXT_TEST.getName()); assertTrue(false); // il doit y avoir une exception, donc on ne passe pas la } catch (WikittyException eee) { assertTrue(true); @@ -121,12 +120,12 @@ @Test public void testExtensionRequires() throws Exception { - ws.storeExtension(null, Arrays.asList(EXT_REQUIRED, EXT_REQUIRES)); - List<String> extIds = ws.getAllExtensionsRequires(null, EXTREQUIRED); + getProxy().storeExtension(Arrays.asList(EXT_REQUIRED, EXT_REQUIRES)); + List<String> extIds = getProxy().getAllExtensionsRequires(EXTREQUIRED); log.debug("extIds: " + extIds); assertEquals(1, extIds.size()); - WikittyExtension ext = ws.restoreExtension(null, extIds.get(0)); + WikittyExtension ext = getProxy().restoreExtension(extIds.get(0)); assertEquals(EXT_REQUIRES.getName(), ext.getName()); assertEquals(EXT_REQUIRES.getVersion(), ext.getVersion()); assertEquals(EXT_REQUIRES, ext); @@ -157,9 +156,9 @@ wikitties.add( w ); ids.add( w.getId() ); } - ws.store(null, wikitties, false); + wikitties = getProxy().storeWikitty(wikitties); - wikitties = ws.restore(null, ids); + wikitties = getProxy().restore(ids); int wIndex = 0; for ( String wValue : wValues ) { Wikitty w = wikitties.get(wIndex); @@ -197,7 +196,7 @@ Wikitty w = null; // should be ignored (?) try { - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); fail("store(null) Must throw an exception !"); } catch (Exception e) { // OK ! @@ -205,8 +204,8 @@ w = new WikittyImpl(); String id = w.getId(); - ws.store(null, Collections.singletonList(w), false); - w = WikittyServiceEnhanced.restore(ws, null, id); + w = getProxy().store(w); + w = getProxy().restore(id); assertEquals( id, w.getId() ); } @@ -219,12 +218,12 @@ "String other[0-n] unique=true notNull=true" )); - ws.storeExtension(null, Collections.singletonList(ext)); + getProxy().storeExtension(ext); Wikitty w = new WikittyImpl(); w.addExtension(ext); try { - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); Assert.fail("not null contraint don't work on String"); } catch (WikittyException eee) { eee.printStackTrace(); @@ -233,7 +232,7 @@ w.setField("TestConstraint", "id", "toto"); try { - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); Assert.fail("not null contraint don't work in Collection"); } catch (WikittyException eee) { eee.printStackTrace(); @@ -241,18 +240,18 @@ } w.addToField("TestConstraint", "other", "titi"); - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); w.addToField("TestConstraint", "ext", "tata"); w.addToField("TestConstraint", "ext", "titi"); - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); - Wikitty w2 = WikittyServiceEnhanced.restore(ws, null, w.getId()); + Wikitty w2 = getProxy().restore(w.getId()); w2.addToField("TestConstraint", "ext", "tata"); // tata ne doit pas s'ajouter w2.addToField("TestConstraint", "ext", "toto"); - ws.store(null, Collections.singletonList(w2), false); - Wikitty w3 = WikittyServiceEnhanced.restore(ws, null, w.getId()); + w2 = getProxy().store(w2); + Wikitty w3 = getProxy().restore(w.getId()); HashSet set = new HashSet(Arrays.asList("tata", "titi", "toto")); assertEquals(set, w3.getFieldAsSet("TestConstraint", "ext", String.class)); @@ -283,7 +282,7 @@ Wikitty w = createWikitty( wValue, EXTNAME, EXT_TEST ); wikitties.add( w ); } - ws.store(null, wikitties, false); + wikitties = getProxy().storeWikitty(wikitties); // search test Wikitty w = new WikittyImpl(); @@ -291,10 +290,10 @@ w.setField(EXT_TEST.getName(), "fieldName1", "003309"); Criteria criteria = Search.query(w).criteria() .addSortDescending(EXT_TEST.getName() + ".fieldName0"); - PagedResult<String> resultFind = ws.findAllByCriteria(null, criteria); + PagedResult<String> resultFind = getProxy().findAllIdByCriteria(criteria); assertEquals(2, resultFind.size()); - List<Wikitty> wikittyFind = ws.restore(null, resultFind.getAll()); + List<Wikitty> wikittyFind = getProxy().restore(resultFind.getAll()); assertEquals(wikitties.subList(0, 2), wikittyFind); } @@ -328,7 +327,7 @@ Wikitty w = createWikitty( wValue, EXTNAME, EXT_TEST ); wikitties.add( w ); } - ws.store(null, wikitties, false); + wikitties = getProxy().storeWikitty(wikitties); // search test Wikitty w = new WikittyImpl(); @@ -338,7 +337,7 @@ .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS) .addFacetField(EXT_TEST.getName()+".fieldName0") .addFacetField(EXT_TEST.getName()+".fieldName1"); - PagedResult<String> resultFind = ws.findAllByCriteria(null, criteria); + PagedResult<String> resultFind = getProxy().findAllIdByCriteria(criteria); List<String> facetNames = new ArrayList<String>(resultFind.getFacetNames()); Collections.sort(facetNames); @@ -349,6 +348,15 @@ assertEquals(2, resultFind.getTopic(EXT_TEST.getName()+".fieldName0").size()); // with must have 1 topic: 663300 assertEquals(1, resultFind.getTopic(EXT_TEST.getName()+".fieldName1").size()); + + + // essai de facettiser sur les extensions + criteria = Search.query().keyword("*").criteria() + .setFirstIndex(0).setEndIndex(0) + .addFacetField("extensions"); + resultFind = getProxy().findAllIdByCriteria(criteria); + assertEquals(1, resultFind.getFacetNames().size()); + assertNotNull(resultFind.getFacets().get("extensions")); } @Test @@ -395,7 +403,7 @@ w.addExtension(EXT_TEST); w.setField(EXT_TEST.getName(), "fieldName0", "chaiseICI"); Criteria criteria = Search.query(w).criteria(); - Wikitty resultFind = ws.findByCriteria(null, criteria); + Wikitty resultFind = getProxy().findByCriteria(criteria); Wikitty wikittySource = wikitties.get(1); assertEquals(w.getFieldAsString(EXT_TEST.getName(), "fieldName0"), @@ -416,18 +424,17 @@ // test to find deleted wikitty // test if solr index is coherent with database Criteria criteria1 = Search.query().eq(Element.ELT_ID, wikittySource.getId()).criteria(); - Wikitty searchedWikitty1 = ws.findByCriteria(null, criteria1); + Wikitty searchedWikitty1 = getProxy().findByCriteria(criteria1); Assert.assertNotNull(searchedWikitty1); - ws.delete(null, Collections.singletonList(wikittySource.getId())); - Wikitty deletedObject = - WikittyServiceEnhanced.restore(ws, null, wikittySource.getId()); + getProxy().delete(wikittySource.getId()); + Wikitty deletedObject = getProxy().restore(wikittySource.getId()); assertNull(deletedObject); // test to find deleted wikitty // test if solr index is coherent with database Criteria criteria2 = Search.query().eq(Element.ELT_ID, wikittySource.getId()).criteria(); - Wikitty searchedWikitty2 = ws.findByCriteria(null, criteria2); + Wikitty searchedWikitty2 = getProxy().findByCriteria(criteria2); Assert.assertNull(searchedWikitty2); } @@ -443,26 +450,24 @@ List<Wikitty> wikitties = createSampleWikitty(ws); long ts = new Date().getTime(); - WikittyProxy proxy = new WikittyProxy(ws); - // labelisation test Wikitty w1 = wikitties.get(0); - WikittyLabelUtil.addLabel(proxy, w1.getId(), "titi"+ts); - WikittyLabelUtil.addLabel(proxy, w1.getId(), "toto"+ts); + WikittyLabelUtil.addLabel(getProxy(), w1.getId(), "titi"+ts); + WikittyLabelUtil.addLabel(getProxy(), w1.getId(), "toto"+ts); Wikitty w2 = wikitties.get(1); - WikittyLabelUtil.addLabel(proxy, w2.getId(), "tata"+ts); - WikittyLabelUtil.addLabel(proxy, w2.getId(), "titi"+ts); + WikittyLabelUtil.addLabel(getProxy(), w2.getId(), "tata"+ts); + WikittyLabelUtil.addLabel(getProxy(), w2.getId(), "titi"+ts); Wikitty w3 = wikitties.get(2); - WikittyLabelUtil.addLabel(proxy, w3.getId(), "tutu"+ts); - WikittyLabelUtil.addLabel(proxy, w3.getId(), "titi"+ts); + WikittyLabelUtil.addLabel(getProxy(), w3.getId(), "tutu"+ts); + WikittyLabelUtil.addLabel(getProxy(), w3.getId(), "titi"+ts); - Wikitty wt = WikittyLabelUtil.findByLabel(proxy, "toto"+ts ); + Wikitty wt = WikittyLabelUtil.findByLabel(getProxy(), "toto"+ts ); assertEquals(w1, wt); - Set<String> labels = WikittyLabelUtil.findAllAppliedLabels(proxy, w2.getId()); + Set<String> labels = WikittyLabelUtil.findAllAppliedLabels(getProxy(), w2.getId()); assertEquals(new HashSet(Arrays.asList("tata"+ts, "titi"+ts)), labels); } @@ -491,7 +496,7 @@ // leaf.addChild( subLeaf.getWikittyId() ); } } - ws.store(null, wikittyNodes, false); // store treeNodes. + wikittyNodes = getProxy().storeWikitty(wikittyNodes); // store treeNodes. Wikitty table = wikitties.get(0); Wikitty chaise = wikitties.get(1); @@ -501,7 +506,7 @@ assign( table, root, "cat-1" ); assign( bureau, root, "cat-2/subcat-2-4" ); - WikittyTree t = ws.restoreTree(null, root.getWikitty().getId() ); + WikittyTree t = getProxy().restoreTree(root.getWikitty().getId() ); t.getName().equals("MyCategoryRoot"); @@ -516,8 +521,8 @@ Criteria criteria = Search.query(node.getWikitty()).criteria() .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - List<String> wikittiesId = ws.findAllByCriteria(null, criteria).getAll(); - List<Wikitty> wikitties = ws.restore(null, wikittiesId); + List<String> wikittiesId = getProxy().findAllIdByCriteria(criteria).getAll(); + List<Wikitty> wikitties = getProxy().restore(wikittiesId); for ( Wikitty child : wikitties ) { if (!child.hasExtension(WikittyTreeNode.EXT_WIKITTYTREENODE)) { continue; @@ -531,7 +536,7 @@ fail( "Unable to find node " + nodeName + " inside " + currentNode.getName() ); } currentNode.addAttachment(wikitty.getId()); - ws.store(null, Collections.singletonList(currentNode.getWikitty()), false); + getProxy().store(currentNode.getWikitty()); } /** @@ -552,23 +557,21 @@ */ @Test public void testCast() { - WikittyProxy wikittyProxy = new WikittyProxy(); - wikittyProxy.setWikittyService(ws); WikittyTreeNode node = new WikittyTreeNodeImpl(); node.setName("nodeName"); // cast, different business object, same wikitty - WikittyLabel label = wikittyProxy.cast(node, WikittyLabel.class); + WikittyLabel label = getProxy().cast(node, WikittyLabel.class); label.addLabels("toto"); - label = wikittyProxy.store(label); + label = getProxy().store(label); String wikittyId = label.getWikittyId(); - WikittyTreeNode node2 = wikittyProxy.restore(WikittyTreeNode.class, wikittyId); + WikittyTreeNode node2 = getProxy().restore(WikittyTreeNode.class, wikittyId); Assert.assertEquals("nodeName", node2.getName()); - WikittyLabel label2 = wikittyProxy.cast(node, WikittyLabel.class); + WikittyLabel label2 = getProxy().cast(node, WikittyLabel.class); List<String> labels = new ArrayList<String>(label2.getLabels()); Assert.assertFalse(labels.isEmpty()); Assert.assertEquals("toto", labels.get(0)); @@ -583,24 +586,25 @@ // store 1 Wikitty myWikitty = new WikittyImpl(); myWikitty.addExtension(WikittyTreeNodeImpl.extensions); - myWikitty.setField(WikittyTreeNode.EXT_WIKITTYTREENODE, WikittyTreeNode.FIELD_WIKITTYTREENODE_NAME, "name"); - ws.store(null, Collections.singletonList(myWikitty), false); + WikittyTreeNodeHelper.setName(myWikitty, "name"); + myWikitty = getProxy().store(myWikitty); Assert.assertEquals("1.0", myWikitty.getVersion()); // store 2 : no modification - ws.store(null, Collections.singletonList(myWikitty), false); + myWikitty = getProxy().store(myWikitty); Assert.assertEquals("1.0", myWikitty.getVersion()); // store 3 : modification - myWikitty.setField(WikittyTreeNode.EXT_WIKITTYTREENODE, WikittyTreeNode.FIELD_WIKITTYTREENODE_NAME, "new name"); - ws.store(null, Collections.singletonList(myWikitty), false); + WikittyTreeNodeHelper.setName(myWikitty, "new name"); + myWikitty = getProxy().store(myWikitty); Assert.assertEquals("2.0", myWikitty.getVersion()); // store 4 : new wikitty with same wikitty id (obsolete) Wikitty myNewWikitty = new WikittyImpl(myWikitty.getId()); - myWikitty.setField(WikittyTreeNode.EXT_WIKITTYTREENODE, WikittyTreeNode.FIELD_WIKITTYTREENODE_NAME, "new wikitty"); + myNewWikitty.addExtension(WikittyTreeNodeImpl.extensions); + WikittyTreeNodeHelper.setName(myWikitty, "new wikitty"); try { - ws.store(null, Collections.singletonList(myNewWikitty), false); + myWikitty = getProxy().store(myWikitty); Assert.fail("Test must throw WikittyObsoleteException"); } catch (WikittyObsoleteException ex) { @@ -630,18 +634,16 @@ myWikitty.addExtension(WikittyTreeNodeImpl.extensions); WikittyTreeNodeHelper.setName(myWikitty, "name"); - ws.store(null, Collections.singletonList(myWikitty), false); + myWikitty = getProxy().store(myWikitty); // delete - ws.delete(null, Collections.singletonList(myWikitty.getId())); - Wikitty restoredWikitty = - WikittyServiceEnhanced.restore(ws, null, myWikitty.getId()); + getProxy().delete(myWikitty.getId()); + Wikitty restoredWikitty = getProxy().restore(myWikitty.getId()); Assert.assertNull(restoredWikitty); // store again - ws.store(null, Collections.singletonList(myWikitty), false); - restoredWikitty = - WikittyServiceEnhanced.restore(ws, null, myWikitty.getId()); + myWikitty = getProxy().store(myWikitty); + restoredWikitty = getProxy().restore(myWikitty.getId()); Assert.assertNotNull(restoredWikitty); } @@ -661,10 +663,9 @@ w.setField(extName, "name", "LeBin"); w.setField(extName, "content", bytes); - ws.store(null, Collections.singletonList(w), false); + w = getProxy().store(w); - Wikitty restoredWikitty = - WikittyServiceEnhanced.restore(ws, null, w.getId()); + Wikitty restoredWikitty = getProxy().restore(w.getId()); Assert.assertNotNull(restoredWikitty); Assert.assertEquals("LeBin", restoredWikitty.getFieldAsString(extName, "name")); Assert.assertEquals(bytes, restoredWikitty.getFieldAsBytes(extName, "content")); Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java 2010-12-10 22:23:35 UTC (rev 597) @@ -35,7 +35,6 @@ import org.jivesoftware.smackx.muc.MultiUserChat; import org.junit.Test; import org.nuiton.wikitty.WikittyConfig; -import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.services.WikittyEvent; import org.nuiton.wikitty.services.WikittyServiceNotifier; Modified: trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java =================================================================== --- trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java 2010-12-10 18:06:23 UTC (rev 596) +++ trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java 2010-12-10 22:23:35 UTC (rev 597) @@ -25,15 +25,14 @@ package org.nuiton.wikitty.jdbc.test; -import org.junit.Assume; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Before; +import org.junit.BeforeClass; import org.nuiton.wikitty.WikittyConfig; -import org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC; -import org.nuiton.wikitty.jdbc.WikittyServiceJDBC; import org.nuiton.wikitty.conform.StorageTest; -import java.io.InputStream; -import java.util.Properties; +import org.nuiton.wikitty.WikittyServiceFactory; /** * @@ -43,75 +42,21 @@ * Last update: $Date$ * by : $Author$ */ -public abstract class StorageJDBCTest extends StorageTest { +public class StorageJDBCTest extends StorageTest { - @Before - public void deleteAll() throws Exception { - String configFileName = getConfigFileName(); + protected final static Log log = LogFactory.getLog(StorageJDBCTest.class); - // If not null use secific config file - // else using H2 by default - if (configFileName != null) { - - // Be sure to not read other config files - InputStream input = WikittyConfig.class.getResourceAsStream(configFileName); - Properties options = new Properties(); - options.load(input); - WikittyConfig config = new WikittyConfig(options); - - try { - canConnectWithConfig(config); - } catch (Exception eee) { - if (log.isWarnEnabled()) { - log.warn("Failled to run test with config '" + configFileName + '"'); - } - if (log.isDebugEnabled()) { - log.debug("An error is occured : ", eee); - } - Assume.assumeNoException(eee); - } - - log.info("Using config file : " + configFileName); - ws = new WikittyServiceJDBC(config); - } - - WikittyServiceJDBC service = ((WikittyServiceJDBC) ws); - service.clear(null); + @BeforeClass + static public void loadWikittyService() throws Exception { + WikittyConfig config = new WikittyConfig("wikitty-config-sample-standalone"); + String msg = "Try to passe test with "+ config.getPrintableConfig("wikitty.*", 50); + log.info(msg); + ws = WikittyServiceFactory.buildWikittyService(config); } - public void canConnectWithConfig(WikittyConfig config) throws Exception { - new WikittyExtensionStorageJDBC(config); + @Before + public void clearStorage() throws Exception { + ws.clear(null); } - public abstract String getConfigFileName(); - - /** - *@author sletellier - */ - public class H2StorageJDBCTest extends StorageJDBCTest { - - @Override - public String getConfigFileName() { - - // Use H2 by default - return null; - } - - } - - /** - * You must configure an postgres database and configure - * postgres-wikitty-config.properties to run this test - * <p> - * (see http://jdbc.postgresql.org/development/intro.html#Test+Suite) - * - * @author sletellier - */ - public class PostgresqlStorageJDBCTest extends StorageJDBCTest { - - @Override - public String getConfigFileName() { - return "/postrges-wikitty-config.properties"; - } - } }