Author: fdesbois Date: 2011-04-16 18:07:52 +0200 (Sat, 16 Apr 2011) New Revision: 2258 Url: http://nuiton.org/repositories/revision/topia/2258 Log: Add createBook test Added: trunk/topia-tutorial/src/main/java/org/nuiton/topia/tutorial/library/LibraryConfig.java trunk/topia-tutorial/src/main/resources/log4j.properties trunk/topia-tutorial/src/test/java/org/ trunk/topia-tutorial/src/test/java/org/nuiton/ trunk/topia-tutorial/src/test/java/org/nuiton/topia/ trunk/topia-tutorial/src/test/java/org/nuiton/topia/tutorial/ trunk/topia-tutorial/src/test/java/org/nuiton/topia/tutorial/library/ trunk/topia-tutorial/src/test/java/org/nuiton/topia/tutorial/library/MainTest.java Modified: trunk/topia-tutorial/pom.xml trunk/topia-tutorial/src/main/resources/library-config.properties Modified: trunk/topia-tutorial/pom.xml =================================================================== --- trunk/topia-tutorial/pom.xml 2011-04-16 14:29:27 UTC (rev 2257) +++ trunk/topia-tutorial/pom.xml 2011-04-16 16:07:52 UTC (rev 2258) @@ -9,19 +9,50 @@ <properties> - <topiaVersion>2.5.3</topiaVersion> + <maven.compiler.source>1.6</maven.compiler.source> + <maven.compiler.target>1.6</maven.compiler.target> + + <topiaVersion>2.5.4-SNAPSHOT</topiaVersion> <eugeneVersion>2.3.3</eugeneVersion> + <nuitonUtilsVersion>2.1.1</nuitonUtilsVersion> </properties> <dependencies> <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + <version>${nuitonUtilsVersion}</version> + </dependency> + + <dependency> <groupId>org.nuiton.topia</groupId> <artifactId>topia-persistence</artifactId> <version>${topiaVersion}</version> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.5.8</version> + </dependency> + + <!-- BD H2 for testing --> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>1.2.128</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.2</version> + <scope>test</scope> + </dependency> + </dependencies> <!-- ************************************************************* --> Added: trunk/topia-tutorial/src/main/java/org/nuiton/topia/tutorial/library/LibraryConfig.java =================================================================== --- trunk/topia-tutorial/src/main/java/org/nuiton/topia/tutorial/library/LibraryConfig.java (rev 0) +++ trunk/topia-tutorial/src/main/java/org/nuiton/topia/tutorial/library/LibraryConfig.java 2011-04-16 16:07:52 UTC (rev 2258) @@ -0,0 +1,45 @@ +package org.nuiton.topia.tutorial.library; + +import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.tutorial.library.model.LibraryDAOHelper; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.ArgumentsParserException; + +import java.util.Properties; + +/** + * Created: 16/04/11 + * + * @author fdesbois <desbois@codelutin.com> + * $Id$ + */ +public class LibraryConfig { + + protected static final String CONFIG_FILENAME = "library-config.properties"; + + protected ApplicationConfig config; + + public LibraryConfig() throws ArgumentsParserException { + + // New ApplicationConfig + config = new ApplicationConfig(); + + // Parse options in config, this will retrieve all properties from + // library-config.properties file in src/main/resources + config.setConfigFileName(CONFIG_FILENAME); + config.parse(); + + // Add option to tell Topia to use which entity classes are managed + // It's a prerequisite otherwise entities will be unknown + config.setOption(TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, + LibraryDAOHelper.getImplementationClassesAsString()); + } + + /** + * @return all application properties + */ + public Properties getProperties() { + return config.getFlatOptions(); + } + +} Modified: trunk/topia-tutorial/src/main/resources/library-config.properties =================================================================== --- trunk/topia-tutorial/src/main/resources/library-config.properties 2011-04-16 14:29:27 UTC (rev 2257) +++ trunk/topia-tutorial/src/main/resources/library-config.properties 2011-04-16 16:07:52 UTC (rev 2258) @@ -0,0 +1,13 @@ +# Default url to database, this path will delete the database on mvn clean +# You can override this configuration using an other properties file in user directory +# For linux system : ~/.local/library/library-config.properties +hibernate.connection.url=jdbc:h2:file:target/db/h2data + +# Other database configuration +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.connection.username=sa +hibernate.connection.password= +hibernate.connection.driver_class=org.h2.Driver + +hibernate.hbm2ddl.auto=update +hibernate.show_sql=true \ No newline at end of file Added: trunk/topia-tutorial/src/main/resources/log4j.properties =================================================================== --- trunk/topia-tutorial/src/main/resources/log4j.properties (rev 0) +++ trunk/topia-tutorial/src/main/resources/log4j.properties 2011-04-16 16:07:52 UTC (rev 2258) @@ -0,0 +1,34 @@ +### +# #%L +# ToPIA :: Persistence +# +# $Id: log4j.properties 2245 2011-04-14 12:47:09Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/topia/trunk/topia-persistence/src/test/resources/l... $ +# %% +# Copyright (C) 2004 - 2010 CodeLutin +# %% +# 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% +### +#\u00a0This log is used to display trace in generation + +# Global logging configuration +log4j.rootLogger=WARN, stdout +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n +# package level +log4j.logger.org.nuiton.topia=INFO Added: trunk/topia-tutorial/src/test/java/org/nuiton/topia/tutorial/library/MainTest.java =================================================================== --- trunk/topia-tutorial/src/test/java/org/nuiton/topia/tutorial/library/MainTest.java (rev 0) +++ trunk/topia-tutorial/src/test/java/org/nuiton/topia/tutorial/library/MainTest.java 2011-04-16 16:07:52 UTC (rev 2258) @@ -0,0 +1,55 @@ +package org.nuiton.topia.tutorial.library; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.tutorial.library.model.Book; +import org.nuiton.topia.tutorial.library.model.BookDAO; +import org.nuiton.topia.tutorial.library.model.BookImpl; +import org.nuiton.topia.tutorial.library.model.LibraryDAOHelper; + +/** + * Created: 16/04/11 + * + * @author fdesbois <desbois@codelutin.com> + * $Id$ + */ +public class MainTest { + + protected TopiaContext transaction; + + @Before + public void setUp() throws Exception { + LibraryConfig config = new LibraryConfig(); + TopiaContext rootContext = + TopiaContextFactory.getContext(config.getProperties()); + transaction = rootContext.beginTransaction(); + } + + @After + public void tearDown() throws Exception { + transaction.closeContext(); + } + + @Test + public void testCreateBook() throws Exception { + + BookDAO dao = LibraryDAOHelper.getBookDAO(transaction); + + Book book = new BookImpl(); + book.setName("Topia for dummies"); + book.setIsbn("T12"); + + dao.create(book); + + transaction.commitTransaction(); + + Book bookLoaded = dao.findByTopiaId(book.getTopiaId()); + + Assert.assertEquals(bookLoaded, book); + } + +}