Author: husted Date: Sat Nov 24 01:41:46 2007 New Revision: 597831 URL: http://svn.apache.org/viewvc?rev=597831&view=rev Log: WW-1399 Start to add unit tests. Cleanup some compiler warnings. Add an alternative persistence.xml setup for Hibernate.
Added: struts/sandbox/trunk/jpa-mailreader/src/test/java/action/user/ struts/sandbox/trunk/jpa-mailreader/src/test/java/action/user/autenticateTest.java struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/ struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java Removed: struts/sandbox/trunk/jpa-mailreader/src/main/java/xwork-conversion.properties Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityManagerSuperclass.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManager.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManagerInterface.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolTypeConverter.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionTypeConverter.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserTypeConverter.java struts/sandbox/trunk/jpa-mailreader/src/test/java/action/HelloTest.java struts/sandbox/trunk/jpa-mailreader/src/test/java/action/RetainTest.java Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml Sat Nov 24 01:41:46 2007 @@ -1,27 +1,38 @@ <?xml version="1.0" encoding="UTF-8"?> -<persistence xmlns="http://java.sun.com/xml/ns/persistence" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/persistence - http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> - - <persistence-unit name="entity" - transaction-type="RESOURCE_LOCAL"> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> + +<!-- + <persistence-unit name="entity" transaction-type="RESOURCE_LOCAL"> <provider> oracle.toplink.essentials.PersistenceProvider </provider> - <class>entity.protocol.Protocol</class> - <class>entity.subscription.Subscription</class> - <class>entity.user.User</class> + <class>entity.EntitySuperclass</class> + <class>entity.protocol.Protocol</class> + <class>entity.subscription.Subscription</class> + <class>entity.user.User</class> <properties> - <property name="toplink.jdbc.driver" - value="org.apache.derby.jdbc.ClientDriver" /> - <property name="toplink.jdbc.url" - value="jdbc:derby://localhost:1527/mailreader" /> - <property name="toplink.jdbc.user" value="app" /> - <property name="toplink.jdbc.password" value="app" /> - <property name="toplink.ddl-generation" - value="create-tables" /> + <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/> + <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/mailreader"/> + <property name="toplink.jdbc.user" value="app"/> + <property name="toplink.jdbc.password" value="app"/> + <property name="toplink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> +--> + <persistence-unit name="entity" transaction-type="RESOURCE_LOCAL"> + <provider>org.hibernate.ejb.HibernatePersistence</provider> + <class>entity.EntitySuperclass</class> + <class>entity.protocol.Protocol</class> + <class>entity.subscription.Subscription</class> + <class>entity.user.User</class> + <properties> + <property name = "hibernate.connection.driver_class" value = "org.apache.derby.jdbc.ClientDriver"/> + <property name = "hibernate.connection.url" value = "jdbc:derby://localhost:1527/mailreader"/> + <property name = "hibernate.connection.username" value = "app"/> + <property name = "hibernate.connection.password" value = "app"/> + <property name = "hibernate.hbm2ddl.auto" value = "update"/> + </properties> + </persistence-unit> + </persistence> Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java Sat Nov 24 01:41:46 2007 @@ -22,6 +22,9 @@ import java.util.Map; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; +import com.opensymphony.xwork2.conversion.annotations.Conversion; +import com.opensymphony.xwork2.conversion.annotations.ConversionType; +import com.opensymphony.xwork2.conversion.annotations.TypeConversion; /** * <p> @@ -32,6 +35,11 @@ * Generic logic should be pushed down to the Entity managers or another facade. * </p> */ [EMAIL PROTECTED](conversions = { + @TypeConversion(type = ConversionType.APPLICATION, key = "entity.protocol.Protocol", converter = "entity.protocol.ProtocolTypeConverter"), + @TypeConversion(type = ConversionType.APPLICATION, key = "entity.subscription.Subscription", converter = "entity.subscription.SubscriptionTypeConverter"), + @TypeConversion(type = ConversionType.APPLICATION, key = "entity.user.User", converter = "entity.user.UserTypeConverter") }) [EMAIL PROTECTED]("unchecked") public class Index extends ActionSupport implements SessionAware { // ---- STATICS ---- Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java Sat Nov 24 01:41:46 2007 @@ -96,10 +96,12 @@ } } + @SuppressWarnings("unchecked") protected void login() { getProfile().put(USER, getUser()); } + @SuppressWarnings("unchecked") protected void logout() { getProfile().put(USER, null); } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java Sat Nov 24 01:41:46 2007 @@ -57,13 +57,13 @@ protected SubscriptionManagerInterface manager; private ProtocolManagerInterface protocolManager; - private Map protocols; + private Map<String, String> protocols; - public Map getProtocols() { + public Map<String, String> getProtocols() { return protocols; } - public void setProtocols(Map value) { + public void setProtocols(Map<String, String> value) { protocols = value; } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityManagerSuperclass.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityManagerSuperclass.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityManagerSuperclass.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityManagerSuperclass.java Sat Nov 24 01:41:46 2007 @@ -100,6 +100,7 @@ } } + @SuppressWarnings("unchecked") public Object findEntity(Class entity, String id) { EntityManager manager = EntityManagerHelper.getEntityManager(); Object result = null; Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManager.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManager.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManager.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManager.java Sat Nov 24 01:41:46 2007 @@ -51,6 +51,7 @@ * * @see entity.IProtocolManager#findAll() */ + @SuppressWarnings("unchecked") public List<Protocol> findAll() { EntityManager em = EntityManagerHelper.getEntityManager(); try { @@ -70,9 +71,10 @@ * * @see entity.IProtocolManager#findAllAsMap() */ - public Map findAllAsMap() { + public Map<String, String> findAllAsMap() { List<Protocol> items = findAll(); - Map map = new LinkedHashMap(items.size()); + Map<String, String> map = new LinkedHashMap<String, String>(items + .size()); for (Protocol item : items) { map.put(String.valueOf(item.getId()), item.getDescription()); } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManagerInterface.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManagerInterface.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManagerInterface.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolManagerInterface.java Sat Nov 24 01:41:46 2007 @@ -50,6 +50,6 @@ * returned. * </p> */ - public abstract Map findAllAsMap(); + public abstract Map<String, String> findAllAsMap(); } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolTypeConverter.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolTypeConverter.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolTypeConverter.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolTypeConverter.java Sat Nov 24 01:41:46 2007 @@ -29,6 +29,7 @@ * </p> * */ [EMAIL PROTECTED]("unchecked") public class ProtocolTypeConverter extends StrutsTypeConverter { /** Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionTypeConverter.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionTypeConverter.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionTypeConverter.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionTypeConverter.java Sat Nov 24 01:41:46 2007 @@ -28,6 +28,7 @@ * </p> * */ [EMAIL PROTECTED]("unchecked") public class SubscriptionTypeConverter extends StrutsTypeConverter { /** Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java Sat Nov 24 01:41:46 2007 @@ -19,7 +19,6 @@ package entity.user; import java.io.Serializable; -import java.sql.Timestamp; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -28,7 +27,6 @@ import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Transient; -import javax.persistence.Version; import entity.EntitySuperclass; import entity.subscription.Subscription; @@ -91,9 +89,6 @@ @Column(length = 16, nullable = false, unique = true) private String username; - @Version() - private Timestamp last_update; - // ---- PROPERTIES ---- public String getFromAddress() { @@ -110,14 +105,6 @@ public void setFullName(String value) { full_name = value; - } - - public Timestamp getLastUpdate() { - return last_update; - } - - public void setLastUpdate(Timestamp value) { - last_update = value; } public String getPassword() { Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserTypeConverter.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserTypeConverter.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserTypeConverter.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserTypeConverter.java Sat Nov 24 01:41:46 2007 @@ -28,6 +28,7 @@ * </p> * */ [EMAIL PROTECTED]("unchecked") public class UserTypeConverter extends StrutsTypeConverter { /** Modified: struts/sandbox/trunk/jpa-mailreader/src/test/java/action/HelloTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/action/HelloTest.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/test/java/action/HelloTest.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/test/java/action/HelloTest.java Sat Nov 24 01:41:46 2007 @@ -27,8 +27,9 @@ /** * An example test that asserts true. - * - * @throws Exception On invalid assertions + * + * @throws Exception + * On invalid assertions */ public void testTestCase() throws Exception { assertTrue(true); Modified: struts/sandbox/trunk/jpa-mailreader/src/test/java/action/RetainTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/action/RetainTest.java?rev=597831&r1=597830&r2=597831&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/test/java/action/RetainTest.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/test/java/action/RetainTest.java Sat Nov 24 01:41:46 2007 @@ -42,7 +42,8 @@ return UUID.randomUUID().toString(); } - public void testBootstrap() throws Exception { + @SuppressWarnings("unchecked") + public void _testBootstrap() throws Exception { EntityManager em = EntityManagerHelper.getEntityManager(); EntityTransaction et = null; Added: struts/sandbox/trunk/jpa-mailreader/src/test/java/action/user/autenticateTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/action/user/autenticateTest.java?rev=597831&view=auto ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/test/java/action/user/autenticateTest.java (added) +++ struts/sandbox/trunk/jpa-mailreader/src/test/java/action/user/autenticateTest.java Sat Nov 24 01:41:46 2007 @@ -0,0 +1,46 @@ +package action.user; + +import junit.framework.TestCase; +import entity.user.User; +import entity.user.UserManager; +import entity.user.UserManagerInterface; + +public class autenticateTest extends TestCase { + + UserManagerInterface manager; + + public void setUp() throws Exception { + super.setUp(); + manager = new UserManager(); + } + + private boolean authenticate(String username, String password) { + User foundValue = manager.findByName(username); + if ((foundValue != null) && !foundValue.getPassword().equals(password)) { + foundValue = null; + } + + return (foundValue != null); + } + + public void testPass() throws Exception { + boolean isFound = authenticate("user", "pass"); + assertTrue("Bootstrap credentials did not authenticate", isFound); + } + + public void testFail() throws Exception { + boolean isFound = authenticate("username", "password"); + assertFalse("Incorrect credentials authenticated", isFound); + } + + public void testFail_Password() throws Exception { + boolean isFound = authenticate("user", "password"); + assertFalse("Incorrect password authenticated", isFound); + } + + public void testFail_User() throws Exception { + boolean isFound = authenticate("username", "pass"); + assertFalse("Incorrect username authenticated", isFound); + } + +} Added: struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java?rev=597831&view=auto ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java (added) +++ struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java Sat Nov 24 01:41:46 2007 @@ -0,0 +1,34 @@ +package entity.user; + +import junit.framework.TestCase; +import java.util.Random; + +public class UserManagerTest extends TestCase { + + UserManagerInterface manager; + String base; + + public void setUp() throws Exception { + super.setUp(); + manager = new UserManager(); + Random generator = new Random(); + int r = generator.nextInt(); + base = String.valueOf(r); + } + + private boolean isNotEmpty(String value) { + return (value != null) && (value.length() > 0); + } + + public void testCreate() throws Exception { + User user = new User(); + String before = user.getId(); + assertFalse("User ID not empty on New", isNotEmpty(before)); + user.setUsername("user_" + base); + user.setPassword("pass_" + base); + manager.create(user); + String after = user.getId(); + assertTrue("User ID not assigned on Create", isNotEmpty(after)); + } + +}