1   // Copyright (c) 2003, Chad Woolley, All rights reserved.
2   
3   package org.virtualmock.util;
4   
5   import junit.framework.Test;
6   import junit.framework.TestCase;
7   import org.hansel.CoverageDecorator;
8   import org.virtualmock.call.CallManager;
9   import org.virtualmock.call.InvokedCallQueue;
10  import org.virtualmock.call.RecordedCallQueue;
11  
12  
13  /***
14   * Tests the Toolbox class
15   *
16   * @author Chad Woolley
17   * @version $Revision: 1.6 $
18   */
19  public class ToolboxTest extends TestCase {
20      /***
21       * Set up the test
22       *
23       * @throws Exception any exception thrown during setup.
24       */
25      public void setUp() throws Exception {
26          super.setUp();
27          Toolbox.deregisterAllComponents();
28      }
29  
30      /***
31       * Hansel support
32       *
33       * @return the decorated Test
34       */
35      public static Test suite() {
36          CoverageDecorator cd =
37              new CoverageDecorator(ToolboxTest.class, new Class[] {Toolbox.class});
38          cd.setDisplayStatistics(true);
39  
40          return cd;
41      }
42  
43      /***
44       * Tear down the test
45       *
46       * @throws Exception any exception thrown during teardown.
47       */
48      public void tearDown() throws Exception {
49          super.tearDown();
50      }
51  
52      /***
53       * Test that toolbox can deregister previously registered component
54       */
55      public void testCanDeregisterComponent() {
56          String key = "KEY";
57          Object component = new Object();
58          Toolbox.registerComponent(key, component);
59          Toolbox.deregisterComponent(key);
60  
61          Object retrievedComponent = Toolbox.getComponent(key);
62          assertNull(retrievedComponent);
63      }
64  
65      /***
66       * Test that toolbox can create a new CallManager
67       */
68      public void testCanGetNewCallManager() {
69          CallManager callManager = Toolbox.getCallManager();
70          assertNotNull(callManager);
71      }
72  
73      /***
74       * Test that toolbox can register and return a previously created
75       * CallManager
76       */
77      public void testCanGetRegisteredCallManager() {
78          CallManager newCallManager =
79              new CallManager(new InvokedCallQueue(), new RecordedCallQueue());
80          Toolbox.registerComponent(Toolbox.CALL_MANAGER, newCallManager);
81  
82          CallManager callManager = Toolbox.getCallManager();
83          assertEquals(newCallManager, callManager);
84      }
85  }