import junit.framework.TestCase; | |
import org.apache.struts.apps.mailreader.dao.Subscription; | |
import org.apache.struts.apps.mailreader.dao.User; | |
import org.apache.struts.apps.mailreader.dao.UserDatabase; | |
import org.apache.struts.apps.mailreader.dao.impl.memory.MemoryUserDatabase; | |
public class RetainTest extends TestCase { | |
protected UserDatabase database; | |
protected String testName = "test-database.xml"; | |
public void setUp() throws Exception { | |
super.setUp(); | |
MemoryUserDatabase memoryUserDatabase = new MemoryUserDatabase(); | |
memoryUserDatabase.setPathname(testName); | |
database = memoryUserDatabase; | |
} | |
public void testDatabaseClean() throws Exception { | |
User user = database.findUser("user"); | |
assertNull("Expected user to be missing", user); | |
} | |
// Add your test methods here. | |
// The setUp method will run between each test. | |
public void testCreateUser() throws Exception { | |
User user = database.createUser("user"); | |
assertNotNull(user); | |
} | |
public void testFindUser() throws Exception { | |
User user1 = database.createUser("user"); | |
User user2 = database.findUser("user"); | |
assertSame("Expected users to match", user1, user2); | |
} | |
public void testCreateSubscription() throws Exception { | |
Subscription sub = database.createUser("user").createSubscription("mail.yahoo.com"); | |
assertNotNull("Expected subscription to be created", sub); | |
} | |
public void testFindSubscription() throws Exception { | |
Subscription sub1 = database.createUser("user").createSubscription("mail.yahoo.com"); | |
Subscription sub2 = database.findUser("user").findSubscription("mail.yahoo.com"); | |
assertSame("Expected Subscriptions to match", sub1, sub2); | |
} | |
public void testDatabsaeSave() throws Exception { | |
User user = database.createUser("user"); | |
user.setPassword("pass"); | |
user.setFullName("John Q. User"); | |
user.setFromAddress("John.User@somewhere.com"); | |
Subscription sub1 = user.createSubscription("mail.hotmail.com"); | |
sub1.setUsername("user1234"); | |
sub1.setAutoConnect(false); | |
sub1.setType("pop3"); | |
sub1.setPassword("bar"); | |
Subscription sub2 = user.createSubscription("mail.yahoo.com"); | |
sub2.setUsername("jquser"); | |
sub2.setAutoConnect(false); | |
sub2.setType("imap"); | |
sub2.setPassword("foo"); | |
database.save(); | |
} | |
// Extra credit | |
public void testFinderUserBogus() throws Exception { | |
User user1 = database.findUser("bogus"); | |
assertNull("Expected bogus user to be not found", user1); | |
User user2 = database.createUser("user"); | |
assertNotNull("Expected user to be created", user2); | |
user1 = database.findUser("bogus"); | |
assertNull("Expected bogus user to be not found", user1); | |
user1 = database.findUser("user"); | |
assertNotNull("Expected user to be found", user1); | |
} | |
public void testFindSubBogus() throws Exception { | |
User user = database.createUser("user"); | |
Subscription sub = user.findSubscription("mail.bogus.com"); | |
assertNull(sub); | |
sub = database.findUser("user").createSubscription("mail.hotmail.com"); | |
assertNotNull(sub); | |
Subscription sub2 = user.findSubscription("mail.bogus.com"); | |
assertNull(sub2); | |
Subscription sub3 = user.findSubscription("mail.hotmail.com"); | |
assertSame(sub, sub3); | |
} | |
} |