You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2006/01/06 12:35:50 UTC
svn commit: r366481 - in
/struts/sandbox/trunk/mailreader-course/lab-1-3-src: ./ junitbook/
junitbook/jumpstart/ test/ test/org/ test/org/apache/
test/org/apache/struts/ test/org/apache/struts/apps/
test/org/apache/struts/apps/mailreader/ test/org/apac...
Author: husted
Date: Fri Jan 6 03:35:39 2006
New Revision: 366481
URL: http://svn.apache.org/viewcvs?rev=366481&view=rev
Log:
MailReader Training Course
* Add example code for session 1-3
Added:
struts/sandbox/trunk/mailreader-course/lab-1-3-src/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/Calculator.java (with props)
struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator.java (with props)
struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator2.java (with props)
struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator3.java (with props)
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/commons-logging.properties (with props)
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/BaseTestUserDatabase.java (with props)
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/
struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/MemoryUserDatabaseTest.java (with props)
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/Calculator.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/Calculator.java?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/Calculator.java (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/Calculator.java Fri Jan 6 03:35:39 2006
@@ -0,0 +1,67 @@
+/*
+ * =================================================================
+ *
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001-2003 The Apache Software Foundation. All
+ * rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software
+ * itself, if and wherever such third-party acknowlegements
+ * normally appear.
+ *
+ * 4. The names "The Jakarta Project", "junitbook", "jia",
+ * "JUnit in Action" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software
+ * without prior written permission. For written permission,
+ * please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ * =================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For
+ * more information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package jumpstart;
+
+public class Calculator
+{
+ public double add(double number1, double number2)
+ {
+ return number1 + number2;
+ }
+}
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/Calculator.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator.java?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator.java (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator.java Fri Jan 6 03:35:39 2006
@@ -0,0 +1,72 @@
+/*
+ * =================================================================
+ *
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001-2003 The Apache Software Foundation. All
+ * rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software
+ * itself, if and wherever such third-party acknowlegements
+ * normally appear.
+ *
+ * 4. The names "The Jakarta Project", "junitbook", "jia",
+ * "JUnit in Action" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software
+ * without prior written permission. For written permission,
+ * please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ * =================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For
+ * more information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package jumpstart;
+
+public class TestCalculator
+{
+ public static void main(String[] args)
+ {
+ Calculator calculator = new Calculator();
+ double result = calculator.add(10, 50);
+ if (result != 60)
+ {
+ System.out.println("Bad result: " + result);
+ }
+ }
+}
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator2.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator2.java?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator2.java (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator2.java Fri Jan 6 03:35:39 2006
@@ -0,0 +1,94 @@
+/*
+ * =================================================================
+ *
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001-2003 The Apache Software Foundation. All
+ * rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software
+ * itself, if and wherever such third-party acknowlegements
+ * normally appear.
+ *
+ * 4. The names "The Jakarta Project", "junitbook", "jia",
+ * "JUnit in Action" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software
+ * without prior written permission. For written permission,
+ * please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ * =================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For
+ * more information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package jumpstart;
+
+public class TestCalculator2
+{
+ private int nbErrors = 0;
+
+ public void testAdd()
+ {
+ Calculator calculator = new Calculator();
+ double result = calculator.add(10, 50);
+ if (result != 60)
+ {
+ throw new RuntimeException("Bad result: " + result);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ TestCalculator2 test = new TestCalculator2();
+ try
+ {
+ test.testAdd();
+ }
+ catch (Throwable e)
+ {
+ test.nbErrors++;
+ e.printStackTrace();
+ }
+
+ if (test.nbErrors > 0)
+ {
+ throw new RuntimeException("There were " + test.nbErrors
+ + " error(s)");
+ }
+ }
+}
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator2.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator3.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator3.java?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator3.java (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator3.java Fri Jan 6 03:35:39 2006
@@ -0,0 +1,71 @@
+/*
+ * =================================================================
+ *
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001-2003 The Apache Software Foundation. All
+ * rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software
+ * itself, if and wherever such third-party acknowlegements
+ * normally appear.
+ *
+ * 4. The names "The Jakarta Project", "junitbook", "jia",
+ * "JUnit in Action" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software
+ * without prior written permission. For written permission,
+ * please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ * =================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For
+ * more information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package jumpstart;
+
+import junit.framework.TestCase;
+
+public class TestCalculator3 extends TestCase
+{
+ public void testAdd()
+ {
+ Calculator calculator = new Calculator();
+ double result = calculator.add(10, 50);
+ assertEquals(60, result, 0);
+ }
+}
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/junitbook/jumpstart/TestCalculator3.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/commons-logging.properties
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/commons-logging.properties?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/commons-logging.properties (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/commons-logging.properties Fri Jan 6 03:35:39 2006
@@ -0,0 +1,12 @@
+#
+# commons-logging.properties
+#
+
+#------------------------------------------------------------------------------
+# Select LogFactory:
+#------------------------------------------------------------------------------
+# Dynamically selects logging implementation class according to the following:
+#
+org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
+org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
+
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/commons-logging.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/BaseTestUserDatabase.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/BaseTestUserDatabase.java?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/BaseTestUserDatabase.java (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/BaseTestUserDatabase.java Fri Jan 6 03:35:39 2006
@@ -0,0 +1,321 @@
+/*
+ * $Id: Subscription.java 149009 2005-01-29 05:33:02Z jmitchell $
+ *
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.struts.apps.mailreader.dao;
+
+import junit.framework.TestCase;
+
+/**
+ * We have use case tests for:
+ * - [01 ] findUser(existing) [DONE]
+ * - [02 ] findUser(bogus) [DONE]
+ * - [03 ] findUsers() [DONE]
+ * ---------------------------------------------------------------
+ * lab 1-3 - Complete some or all of the remaining use cases
+ * ---------------------------------------------------------------
+ * - [04 ] createUser1, find(new one 1) [DONE]
+ * - [04a] createUser1, find(new one 1) find subscr [DONE]
+ * - [05 ] createUser2, find(existing) [DONE]
+ * - [05a] createUser2, find(existing) find subscr [DONE]
+ * - [06 ] createUser3, findUsers(all) [DONE]
+ * - [06a] createUser4 (duplicate) [DONE]
+ * - [07 ] findUsers(all) [DONE]
+ * - [08 ] create, save, close, open find(new one) [DONE]
+ * - [09 ] create, save, close, open findUsers(all) [DONE]
+ * - [10 ] find(bogus) [DONE]
+ * - [11 ] create, remove, find(valid), find(invalid) [DONE]
+ *
+ */
+
+public abstract class BaseTestUserDatabase extends TestCase {
+
+ protected UserDatabase userDatabase;
+ private int userCt = 10;
+ private int subscriptionCt = 20;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ userDatabase = getNewUserDatabase();
+ generateUsers(userCt, subscriptionCt, "");
+ }
+
+
+ /**
+ *
+ */
+ private void generateUsers(int users, int subs, String prefix) {
+ for (int i = 0; i < users; i++) {
+ User user = getNewUser(userDatabase, prefix + "user" + i);
+ user.setFromAddress(prefix + "fromAddress" + i);
+ user.setFullName(prefix + "fullName" + i);
+ user.setPassword(prefix + "password" + i);
+
+ for (int j = 0; j < subs; j++) {
+ Subscription subscription = getNewSubscription(user, prefix + "host" + j);
+ subscription.setAutoConnect(j % 1 == 0);
+ subscription.setUsername(prefix + "subscriptionUserName" + j);
+ subscription.setPassword(prefix + "subscriptionPassword" + j);
+ subscription.setType(prefix + "type" + j);
+ }
+ }
+ }
+
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ userDatabase.close();
+ }
+
+
+ // findUser(existing)
+ public void testCase01() throws Exception{
+ User user = userDatabase.findUser("user5");
+ assertTrue("Check username", "user5".equals(user.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress5".equals(user.getFromAddress()));
+ assertTrue("Check fullName", "fullName5".equals(user.getFullName()));
+ assertTrue("Check password", "password5".equals(user.getPassword()));
+ assertNull("Check replyToAddress", user.getReplyToAddress());
+
+ }
+
+ // findUser(bogus)
+ public void testCase02() throws Exception{
+ User user = userDatabase.findUser("bogusName");
+ assertNull(user);
+ }
+
+ // findUsers()
+ public void testCase03() throws Exception{
+ User[] users = userDatabase.findUsers();
+ assertTrue("Check users", users.length == userCt);
+ }
+
+ // createUser1, find(new one 1)
+ public void testCase04() throws Exception{
+ String newUserName = "newUser04";
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User newUser2 = userDatabase.findUser(newUserName);
+ assertTrue("Check username", newUserName.equals(newUser2.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress1".equals(newUser2.getFromAddress()));
+ assertTrue("Check replyToAddress", "replyToAddress1".equals(newUser2.getReplyToAddress()));
+ assertTrue("Check password", "pass1".equals(newUser2.getPassword()));
+ assertNull("Check fullName", newUser2.getFullName());
+ }
+
+ // createUser1, find(new one 1) find subscr
+ public void testCase04a() throws Exception{
+ String newUserName = "newUser04a";
+ int subs = 5;
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User newUser2 = userDatabase.findUser(newUserName);
+ assertTrue("Check username", newUserName.equals(newUser2.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress1".equals(newUser2.getFromAddress()));
+ assertTrue("Check replyToAddress", "replyToAddress1".equals(newUser2.getReplyToAddress()));
+ assertTrue("Check password", "pass1".equals(newUser2.getPassword()));
+ assertNull("Check fullName", newUser2.getFullName());
+
+ generateUsers(3, subs, "04a");
+
+ User newUser3 = userDatabase.findUser("04auser1");
+ Subscription[] subscriptions = newUser3.getSubscriptions();
+ assertTrue ("Testing subscriptions length", subscriptions.length == subs);
+ newUser3.removeSubscription(subscriptions[0]);
+
+ // TODO this is a problem
+// assertTrue ("Testing subscriptions length", subscriptions.length < subs);
+
+ }
+
+ // createUser2, find(existing)
+ public void testCase05() throws Exception{
+ String newUserName = "anotherNewUser05";
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User newUser5 = userDatabase.findUser("user5");
+ assertTrue("Check username", "user5".equals(newUser5.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress5".equals(newUser5.getFromAddress()));
+ assertTrue("Check fullName", "fullName5".equals(newUser5.getFullName()));
+ assertTrue("Check password", "password5".equals(newUser5.getPassword()));
+ assertNull("Check replyToAddress", newUser5.getReplyToAddress());
+
+ }
+
+ // createUser2, find(existing) find subscr
+ public void testCase05a() throws Exception{
+ String newUserName = "anotherNewUser05a";
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User newUser5a = userDatabase.findUser("user5");
+ assertTrue("Check username", "user5".equals(newUser5a.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress5".equals(newUser5a.getFromAddress()));
+ assertTrue("Check fullName", "fullName5".equals(newUser5a.getFullName()));
+ assertTrue("Check password", "password5".equals(newUser5a.getPassword()));
+ assertNull("Check replyToAddress", newUser5a.getReplyToAddress());
+
+ Subscription[] subscriptions = newUser5a.getSubscriptions();
+ assertTrue ("Testing subscriptions length", subscriptions.length == subscriptionCt);
+
+ }
+
+ // createUser3, findUsers(all)
+ public void testCase06() throws Exception{
+ String newUserName = "anotherNewUser06";
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User user6 = userDatabase.findUser("user6");
+ assertTrue("Check username", "user6".equals(user6.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress6".equals(user6.getFromAddress()));
+ assertTrue("Check fullName", "fullName6".equals(user6.getFullName()));
+ assertTrue("Check password", "password6".equals(user6.getPassword()));
+ assertNull("Check replyToAddress", user6.getReplyToAddress());
+
+ }
+
+ // createUser4 (duplicate)
+ // public void testCase06a() throws Exception{
+
+ // findUsers(all)
+ public void testCase07() throws Exception{
+ String newUserName = "anotherNewUser07";
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User user7 = userDatabase.findUser("user7");
+ assertTrue("Check username", "user7".equals(user7.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress7".equals(user7.getFromAddress()));
+ assertTrue("Check fullName", "fullName7".equals(user7.getFullName()));
+ assertTrue("Check password", "password7".equals(user7.getPassword()));
+ assertNull("Check replyToAddress", user7.getReplyToAddress());
+
+ User[] users = userDatabase.findUsers();
+ assertTrue("Check users", users.length == userCt + 1);
+
+ }
+
+ // create, save, close, open find(new one)
+ public void testCase08() throws Exception{
+ String newUserName = "newUser08";
+ int subs = 5;
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ // TODO fix me, this is not releasing the internal state on close
+ // userDatabase.save();
+ // userDatabase.close();
+ // userDatabase.open();
+
+ User newUser2 = userDatabase.findUser(newUserName);
+ assertTrue("Check username", newUserName.equals(newUser2.getUsername()));
+ assertTrue("Check fromAddress", "fromAddress1".equals(newUser2.getFromAddress()));
+ assertTrue("Check replyToAddress", "replyToAddress1".equals(newUser2.getReplyToAddress()));
+ assertTrue("Check password", "pass1".equals(newUser2.getPassword()));
+ assertNull("Check fullName", newUser2.getFullName());
+
+ generateUsers(3, subs, "08");
+
+ User newUser3 = userDatabase.findUser("08user1");
+ Subscription[] subscriptions = newUser3.getSubscriptions();
+ assertTrue ("Testing subscriptions length", subscriptions.length == subs);
+
+ // userDatabase.save();
+ // userDatabase.close();
+ // userDatabase.open();
+
+ User newUser4 = userDatabase.findUser("08user1");
+ Subscription[] subscriptions2 = newUser4.getSubscriptions();
+ assertTrue ("Testing subscriptions length", subscriptions2.length == subs);
+
+ }
+
+ // create, save, close, open findUsers(all)
+ public void testCase09() throws Exception{
+
+ // TODO fix me, this is not releasing the internal state on close
+// userDatabase.save();
+// userDatabase.close();
+// userDatabase.open();
+
+ User[] users = userDatabase.findUsers();
+ assertTrue("Testing users count", users.length == userCt);
+
+ }
+
+ // find(bogus)
+ public void testCase010() throws Exception{
+
+ // TODO fix me, this is not releasing the internal state on close
+// userDatabase.save();
+// userDatabase.close();
+// userDatabase.open();
+
+ User user = userDatabase.findUser("bogus user");
+ assertNull("Find non-existing user", user);
+
+ }
+
+ // create, remove, find(valid), find(invalid)
+ public void testCase011() throws Exception{
+
+ String newUserName = "newUser11";
+
+ User newUser = userDatabase.createUser(newUserName);
+ newUser.setPassword("pass1");
+ newUser.setFromAddress("fromAddress1");
+ newUser.setReplyToAddress("replyToAddress1");
+
+ User user = userDatabase.findUser(newUserName);
+ assertNotNull("Find new user", user);
+
+ userDatabase.removeUser(user);
+ User user2 = userDatabase.findUser(newUserName);
+ assertNull("Remove new user", user2);
+
+ }
+
+ protected abstract UserDatabase getNewUserDatabase();
+ protected abstract User getNewUser(UserDatabase db, String userName);
+ protected abstract Subscription getNewSubscription(User user, String host);
+
+}
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/BaseTestUserDatabase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/MemoryUserDatabaseTest.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/MemoryUserDatabaseTest.java?rev=366481&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/MemoryUserDatabaseTest.java (added)
+++ struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/MemoryUserDatabaseTest.java Fri Jan 6 03:35:39 2006
@@ -0,0 +1,53 @@
+/*
+ * $Id: Subscription.java 149009 2005-01-29 05:33:02Z jmitchell $
+ *
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.struts.apps.mailreader.dao.impl.memory;
+
+import org.apache.struts.apps.mailreader.dao.BaseTestUserDatabase;
+import org.apache.struts.apps.mailreader.dao.Subscription;
+import org.apache.struts.apps.mailreader.dao.User;
+import org.apache.struts.apps.mailreader.dao.UserDatabase;
+
+
+
+public class MemoryUserDatabaseTest extends BaseTestUserDatabase {
+
+ protected String defaultPathName = "test-database.xml";
+
+ protected UserDatabase getNewUserDatabase(){
+ // using default impl
+ MemoryUserDatabase memoryUserDatabase = new MemoryUserDatabase();
+ memoryUserDatabase.setPathname(defaultPathName);
+ userDatabase = memoryUserDatabase;
+ return memoryUserDatabase;
+
+ }
+ protected User getNewUser(UserDatabase db, String userName){
+ // using default impl
+ return db.createUser(userName);
+ }
+ protected Subscription getNewSubscription(User user, String host) {
+ return user.createSubscription(host);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ // force write to disk
+ userDatabase.close();
+ }
+}
Propchange: struts/sandbox/trunk/mailreader-course/lab-1-3-src/test/org/apache/struts/apps/mailreader/dao/impl/memory/MemoryUserDatabaseTest.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org