1   /* ====================================================================
2    * The Apache Software License, Version 1.1
3    *
4    * Copyright (c) 2000 The Apache Software Foundation.  All rights
5    * reserved.
6    *
7    * Redistribution and use in source and binary forms, with or without
8    * modification, are permitted provided that the following conditions
9    * are met:
10   *
11   * 1. Redistributions of source code must retain the above copyright
12   *    notice, this list of conditions and the following disclaimer.
13   *
14   * 2. Redistributions in binary form must reproduce the above copyright
15   *    notice, this list of conditions and the following disclaimer in
16   *    the documentation and/or other materials provided with the
17   *    distribution.
18   *
19   * 3. The end-user documentation included with the redistribution,
20   *    if any, must include the following acknowledgment:
21   *       "This product includes software developed by the
22   *        Apache Software Foundation (http://www.apache.org/)."
23   *    Alternately, this acknowledgment may appear in the software itself,
24   *    if and wherever such third-party acknowledgments normally appear.
25   *
26   * 4. The names "Apache" and "Apache Software Foundation" must
27   *    not be used to endorse or promote products derived from this
28   *    software without prior written permission. For written
29   *    permission, please contact apache@apache.org.
30   *
31   * 5. Products derived from this software may not be called "Apache",
32   *    nor may "Apache" appear in their name, without prior written
33   *    permission of the Apache Software Foundation.
34   *
35   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46   * SUCH DAMAGE.
47   * ====================================================================
48   *
49   * This software consists of voluntary contributions made by many
50   * individuals on behalf of the Apache Software Foundation.  For more
51   * information on the Apache Software Foundation, please see
52   * <http://www.apache.org/>.
53   *
54   * Portions of this software are based upon public domain software
55   * originally written at the National Center for Supercomputing Applications,
56   * University of Illinois, Urbana-Champaign.
57   */
58  
59  package org.troublescope.evaluation;
60  
61  import junit.framework.Test;
62  import junit.framework.TestCase;
63  
64  import org.troublescope.ApplicationContext;
65  import org.troublescope.TestUtilities;
66  import org.troublescope.util.NameValuePair;
67  
68  /***
69   * Test {@link TestSuite}.
70   */
71  public class TestSuiteTest extends TestCase
72  {
73  
74     /***
75      * Create a new <code>TestSuiteTest</code>.
76      */
77     public TestSuiteTest(String name)
78     {
79        super(name);
80     }
81  
82     /***
83      * The the properties accessor/modifiers.
84      */
85     public void testProperties() throws Exception
86     {
87        TestSuite suite = new TestSuite();
88        suite.setName("test_name");
89        suite.setDescription("test_description");
90        assertEquals("name", "test_name", suite.getName());
91        assertEquals("description", "test_description", suite.getDescription());
92     }
93  
94     /***
95      * Test {@link TestSuite#createTestSuite(ApplicationContext)}.
96      */
97     public void testCreateTestSuite() throws Exception
98     {
99        ApplicationContext ctx = new ApplicationContext();
100       ctx.setAttribute(ApplicationContext.APPLICATION_HOME,
101                        TestUtilities.getTestDirectory().getAbsolutePath());
102       TestSuite suite = createTestInstance();
103       junit.framework.TestSuite realSuite = suite.getActualSuite(ctx);
104       assertTrue("suite #1", realSuite instanceof MockjUnitTestSuite);
105       assertEquals("suite #1 - test count", 1, realSuite.testCount());
106       assertEquals("suite #1 - test", MockTestCase.class.getName(),
107                    ((junit.framework.TestSuite) realSuite.testAt(0)).testAt(0).getClass().getName());
108 
109       suite.setTestSuiteClassName(MockTestCase.class.getName());
110       realSuite = suite.getActualSuite(ctx);
111       assertTrue("suite #2", realSuite instanceof junit.framework.TestSuite);
112       assertEquals("suite #2 - test count", 1, realSuite.testCount());
113       Test test = ((junit.framework.TestSuite) realSuite.testAt(0)).testAt(0);
114       assertEquals("suite #2 - test", MockTestCase.class.getName(),
115                    test.getClass().getName());
116       assertEquals("test config", suite.getConfig(), ((MockTestCase) test).getConfig());
117       assertEquals("test context", ctx, ((MockTestCase) test).getContext());
118    }
119 
120    /***
121     * Create a new test suite class for testing.
122     */
123    public static TestSuite createTestInstance()
124    {
125       TestSuite suite = new TestSuite();
126       suite.addInitParameter(new NameValuePair("filename", "foo.txt"));
127       suite.setTestSuiteClassName(MockjUnitTestSuite.class.getName());
128       suite.setResolutionName("test_result_id");
129       suite.setName("test_summary");
130       suite.setDescription("test_description");
131       return suite;
132    }
133 
134 }
This page was automatically generated by Maven