Author: echatellier Date: 2012-01-18 11:41:26 +0100 (Wed, 18 Jan 2012) New Revision: 1335 Url: http://nuiton.org/repositories/revision/wikitty/1335 Log: Begin #1006 : new wikitty client tests. Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/PegasusImpl.java trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/WikittyClientJdbcTest.java trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/WikittyClientLuceneTest.java Modified: trunk/wikitty-api/src/test/xmi/multiinheritance.zargo Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java (rev 0) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-18 10:41:26 UTC (rev 1335) @@ -0,0 +1,145 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package org.nuiton.wikitty; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.Assert; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.wikitty.entities.WikittyTreeNode; +import org.nuiton.wikitty.entities.WikittyTreeNodeImpl; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryParser; +import org.nuiton.wikitty.services.WikittyServiceInMemory; +import org.nuiton.wikitty.test.Pegasus; +import org.nuiton.wikitty.test.PegasusImpl; + +/** + * Wikitty client test to test for client use. + * + * This test is designed to be overridden and change {@link WikittyClient} + * implementation. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class WikittyClientTest { + + protected static ApplicationConfig wikittyConfig; + + protected WikittyClient wikittyClient; + + /** + * Init {@link ApplicationConfig} class. + */ + @BeforeClass + public static void setUpConfig() { + // can't call parse method here + wikittyConfig = new ApplicationConfig( + WikittyConfigOption.class, WikittyConfigAction.class, + null, null); + } + + /** + * Override to method in sub tests to change wikitty client implementation. + * + * @return wikitty client implementation to use in current test case instance + */ + protected WikittyClient getWikittyClient() { + WikittyService wikittyService = new WikittyServiceInMemory(wikittyConfig); + WikittyClient client = new WikittyClient(wikittyConfig, wikittyService); + return client; + } + + /** + * Clear all data and add some test data for all tests. + */ + @Before + public void setUpTestData() { + wikittyClient = getWikittyClient(); + wikittyClient.clear(); + addTestDataInClient(wikittyClient); + } + + /** + * Add some wikitty in client. + * + * @param wikittyClient wikitty client + */ + protected void addTestDataInClient(WikittyClient wikittyClient) { + // some tree nodes + WikittyTreeNode rootNode = new WikittyTreeNodeImpl(); + rootNode.setName("rootnode"); + WikittyTreeNode subNode = new WikittyTreeNodeImpl(); + subNode.setName("subnode"); + + List<WikittyTreeNode> allNodes = new ArrayList<WikittyTreeNode>(); + allNodes.add(rootNode); + allNodes.add(subNode); + wikittyClient.store(allNodes); + + // Pegasus (multiple inheritance) + Pegasus pegasus = new PegasusImpl(); + pegasus.setFly(2); + pegasus.setColor("black"); + pegasus.setColorFromBird("white"); + wikittyClient.store(pegasus); + } + + /** + * Test a query with query maker. + */ + @Test + public void testFindByQueryMaker() { + WikittyQuery query = new WikittyQueryMaker().and() + .eq(Pegasus.ELEMENT_FIELD_HORSE_COLOR, "black") + .eq(Pegasus.ELEMENT_FIELD_BIRD_COLOR, "white") + .end(); + + Pegasus pegasus = wikittyClient.findByQuery(Pegasus.class, query); + Assert.assertEquals("[Pegasus]black/white", pegasus.getReference()); + } + + /** + * Test a query with query parser. + */ + @Test + public void testFindQueryParser() { + WikittyQuery query = WikittyQueryParser.parse( + "Horse.color=black Bird.color=white"); + Pegasus pegasus = wikittyClient.findByQuery(Pegasus.class, query); + Assert.assertEquals(2, pegasus.getFly()); + } +} Property changes on: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/PegasusImpl.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/PegasusImpl.java (rev 0) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/PegasusImpl.java 2012-01-18 10:41:26 UTC (rev 1335) @@ -0,0 +1,61 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package org.nuiton.wikitty.test; + +import org.nuiton.wikitty.entities.BusinessEntityImpl; +import org.nuiton.wikitty.entities.Wikitty; + +/** + * TODO add comment here. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class PegasusImpl extends PegasusAbstract { + + public PegasusImpl() { + super(); + } + + public PegasusImpl(Wikitty wikitty) { + super(wikitty); + } + + public PegasusImpl(BusinessEntityImpl businessEntityImpl) { + super(businessEntityImpl.getWikitty()); + } + + /* + * @see org.nuiton.wikitty.test.Pegasus#getReference() + */ + @Override + public String getReference() { + return "[Pegasus]" + getColor() + "/" + getColorFromBird(); + } +} Property changes on: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/PegasusImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/wikitty-api/src/test/xmi/multiinheritance.zargo =================================================================== (Binary files differ) Added: trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/WikittyClientJdbcTest.java =================================================================== --- trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/WikittyClientJdbcTest.java (rev 0) +++ trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/WikittyClientJdbcTest.java 2012-01-18 10:41:26 UTC (rev 1335) @@ -0,0 +1,59 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package org.nuiton.wikitty; + +import org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC; +import org.nuiton.wikitty.jdbc.WikittyStorageJDBC; +import org.nuiton.wikitty.services.WikittyServiceStorage; +import org.nuiton.wikitty.storage.WikittyExtensionStorage; +import org.nuiton.wikitty.storage.WikittySearchEngine; +import org.nuiton.wikitty.storage.WikittyStorage; +import org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr; + +/** + * Wikitty client test over JDBC implementation. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class WikittyClientJdbcTest extends WikittyClientTest { + + @Override + protected WikittyClient getWikittyClient() { + + WikittyExtensionStorage extStorage = new WikittyExtensionStorageJDBC(wikittyConfig); + WikittyStorage wikittyStorage = new WikittyStorageJDBC(wikittyConfig, extStorage); + WikittySearchEngine searchEngine = new WikittySearchEngineSolr(wikittyConfig, extStorage); + + WikittyServiceStorage wikittyService = new WikittyServiceStorage(wikittyConfig, + extStorage, wikittyStorage, searchEngine); + WikittyClient client = new WikittyClient(wikittyConfig, wikittyService); + return client; + } +} Property changes on: trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/WikittyClientJdbcTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/WikittyClientLuceneTest.java =================================================================== --- trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/WikittyClientLuceneTest.java (rev 0) +++ trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/WikittyClientLuceneTest.java 2012-01-18 10:41:26 UTC (rev 1335) @@ -0,0 +1,59 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package org.nuiton.wikitty; + +import org.nuiton.wikitty.services.WikittyServiceStorage; +import org.nuiton.wikitty.storage.WikittyExtensionStorage; +import org.nuiton.wikitty.storage.WikittyExtensionStorageInMemory; +import org.nuiton.wikitty.storage.WikittySearchEngine; +import org.nuiton.wikitty.storage.WikittyStorage; +import org.nuiton.wikitty.storage.WikittyStorageInMemory; +import org.nuiton.wikitty.storage.lucene.WikittySearchEngineLucene; + +/** + * Test on wikitty client over lucene. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class WikittyClientLuceneTest extends WikittyClientTest { + + @Override + protected WikittyClient getWikittyClient() { + + WikittyExtensionStorage extStorage = new WikittyExtensionStorageInMemory(); + WikittyStorage wikittyStorage = new WikittyStorageInMemory(); + WikittySearchEngine searchEngine = new WikittySearchEngineLucene(wikittyConfig, extStorage); + + WikittyServiceStorage wikittyService = new WikittyServiceStorage(wikittyConfig, + extStorage, wikittyStorage, searchEngine); + WikittyClient client = new WikittyClient(wikittyConfig, wikittyService); + return client; + } +} Property changes on: trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/WikittyClientLuceneTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL